{"id":"4bb3eb0a0f7502c214a41e3acfaf9fb3","_format":"hh-sol-build-info-1","solcVersion":"0.7.6","solcLongVersion":"0.7.6+commit.7338295f","input":{"language":"Solidity","sources":{"@airdao/astra-cl-core/contracts/interfaces/IAstraCLPool.sol":{"content":"// SPDX-License-Identifier: GPL-2.0-or-later\npragma solidity >=0.5.0;\n\nimport {IAstraCLPoolActions} from './pool/IAstraCLPoolActions.sol';\nimport {IAstraCLPoolDerivedState} from './pool/IAstraCLPoolDerivedState.sol';\nimport {IAstraCLPoolEvents} from './pool/IAstraCLPoolEvents.sol';\nimport {IAstraCLPoolImmutables} from './pool/IAstraCLPoolImmutables.sol';\nimport {IAstraCLPoolOwnerActions} from './pool/IAstraCLPoolOwnerActions.sol';\nimport {IAstraCLPoolState} from './pool/IAstraCLPoolState.sol';\n\n/// @title The interface for a Astra CL Pool\n/// @notice An Astra pool facilitates swapping and automated market making between any two assets that strictly conform\n/// to the ERC20 specification\n/// @dev The pool interface is broken up into many smaller pieces\ninterface IAstraCLPool is\n    IAstraCLPoolImmutables,\n    IAstraCLPoolState,\n    IAstraCLPoolDerivedState,\n    IAstraCLPoolActions,\n    IAstraCLPoolOwnerActions,\n    IAstraCLPoolEvents\n{}\n"},"@airdao/astra-cl-core/contracts/interfaces/pool/IAstraCLPoolActions.sol":{"content":"// SPDX-License-Identifier: GPL-2.0-or-later\npragma solidity >=0.5.0;\n\n/// @title Permissionless pool actions\n/// @notice Contains pool methods that can be called by anyone\ninterface IAstraCLPoolActions {\n    /// @notice Sets the initial price for the pool\n    /// @dev Price is represented as a sqrt(amountToken1/amountToken0) Q64.96 value\n    /// @param sqrtPriceX96 the initial sqrt price of the pool as a Q64.96\n    function initialize(uint160 sqrtPriceX96) external;\n\n    /// @notice Adds liquidity for the given recipient/tickLower/tickUpper position\n    /// @dev The caller of this method receives a callback in the form of IAstraCLMintCallback.sol#astraCLMintCallback\n    /// in which they must pay any token0 or token1 owed for the liquidity. The amount of token0/token1 due depends\n    /// on tickLower, tickUpper, the amount of liquidity, and the current price.\n    /// @param recipient The address for which the liquidity will be created\n    /// @param tickLower The lower tick of the position in which to add liquidity\n    /// @param tickUpper The upper tick of the position in which to add liquidity\n    /// @param amount The amount of liquidity to mint\n    /// @param data Any data that should be passed through to the callback\n    /// @return amount0 The amount of token0 that was paid to mint the given amount of liquidity. Matches the value in the callback\n    /// @return amount1 The amount of token1 that was paid to mint the given amount of liquidity. Matches the value in the callback\n    function mint(\n        address recipient,\n        int24 tickLower,\n        int24 tickUpper,\n        uint128 amount,\n        bytes calldata data\n    ) external returns (uint256 amount0, uint256 amount1);\n\n    /// @notice Collects tokens owed to a position\n    /// @dev Does not recompute fees earned, which must be done either via mint or burn of any amount of liquidity.\n    /// Collect must be called by the position owner. To withdraw only token0 or only token1, amount0Requested or\n    /// amount1Requested may be set to zero. To withdraw all tokens owed, caller may pass any value greater than the\n    /// actual tokens owed, e.g. type(uint128).max. Tokens owed may be from accumulated swap fees or burned liquidity.\n    /// @param recipient The address which should receive the fees collected\n    /// @param tickLower The lower tick of the position for which to collect fees\n    /// @param tickUpper The upper tick of the position for which to collect fees\n    /// @param amount0Requested How much token0 should be withdrawn from the fees owed\n    /// @param amount1Requested How much token1 should be withdrawn from the fees owed\n    /// @return amount0 The amount of fees collected in token0\n    /// @return amount1 The amount of fees collected in token1\n    function collect(\n        address recipient,\n        int24 tickLower,\n        int24 tickUpper,\n        uint128 amount0Requested,\n        uint128 amount1Requested\n    ) external returns (uint128 amount0, uint128 amount1);\n\n    /// @notice Burn liquidity from the sender and account tokens owed for the liquidity to the position\n    /// @dev Can be used to trigger a recalculation of fees owed to a position by calling with an amount of 0\n    /// @dev Fees must be collected separately via a call to #collect\n    /// @param tickLower The lower tick of the position for which to burn liquidity\n    /// @param tickUpper The upper tick of the position for which to burn liquidity\n    /// @param amount How much liquidity to burn\n    /// @return amount0 The amount of token0 sent to the recipient\n    /// @return amount1 The amount of token1 sent to the recipient\n    function burn(int24 tickLower, int24 tickUpper, uint128 amount) external returns (uint256 amount0, uint256 amount1);\n\n    /// @notice Swap token0 for token1, or token1 for token0\n    /// @dev The caller of this method receives a callback in the form of IAstraCLSwapCallback.sol#astraCLSwapCallback\n    /// @param recipient The address to receive the output of the swap\n    /// @param zeroForOne The direction of the swap, true for token0 to token1, false for token1 to token0\n    /// @param amountSpecified The amount of the swap, which implicitly configures the swap as exact input (positive), or exact output (negative)\n    /// @param sqrtPriceLimitX96 The Q64.96 sqrt price limit. If zero for one, the price cannot be less than this\n    /// value after the swap. If one for zero, the price cannot be greater than this value after the swap\n    /// @param data Any data to be passed through to the callback\n    /// @return amount0 The delta of the balance of token0 of the pool, exact when negative, minimum when positive\n    /// @return amount1 The delta of the balance of token1 of the pool, exact when negative, minimum when positive\n    function swap(\n        address recipient,\n        bool zeroForOne,\n        int256 amountSpecified,\n        uint160 sqrtPriceLimitX96,\n        bytes calldata data\n    ) external returns (int256 amount0, int256 amount1);\n\n    /// @notice Receive token0 and/or token1 and pay it back, plus a fee, in the callback\n    /// @dev The caller of this method receives a callback in the form of IAstraCLFlashCallback.sol#astraCLFlashCallback\n    /// @dev Can be used to donate underlying tokens pro-rata to currently in-range liquidity providers by calling\n    /// with 0 amount{0,1} and sending the donation amount(s) from the callback\n    /// @param recipient The address which will receive the token0 and token1 amounts\n    /// @param amount0 The amount of token0 to send\n    /// @param amount1 The amount of token1 to send\n    /// @param data Any data to be passed through to the callback\n    function flash(address recipient, uint256 amount0, uint256 amount1, bytes calldata data) external;\n\n    /// @notice Increase the maximum number of price and liquidity observations that this pool will store\n    /// @dev This method is no-op if the pool already has an observationCardinalityNext greater than or equal to\n    /// the input observationCardinalityNext.\n    /// @param observationCardinalityNext The desired minimum number of observations for the pool to store\n    function increaseObservationCardinalityNext(uint16 observationCardinalityNext) external;\n}\n"},"@airdao/astra-cl-core/contracts/interfaces/pool/IAstraCLPoolDerivedState.sol":{"content":"// SPDX-License-Identifier: GPL-2.0-or-later\npragma solidity >=0.5.0;\n\n/// @title Pool state that is not stored\n/// @notice Contains view functions to provide information about the pool that is computed rather than stored on the\n/// blockchain. The functions here may have variable gas costs.\ninterface IAstraCLPoolDerivedState {\n    /// @notice Returns the cumulative tick and liquidity as of each timestamp `secondsAgo` from the current block timestamp\n    /// @dev To get a time weighted average tick or liquidity-in-range, you must call this with two values, one representing\n    /// the beginning of the period and another for the end of the period. E.g., to get the last hour time-weighted average tick,\n    /// you must call it with secondsAgos = [3600, 0].\n    /// @dev The time weighted average tick represents the geometric time weighted average price of the pool, in\n    /// log base sqrt(1.0001) of token1 / token0. The TickMath library can be used to go from a tick value to a ratio.\n    /// @param secondsAgos From how long ago each cumulative tick and liquidity value should be returned\n    /// @return tickCumulatives Cumulative tick values as of each `secondsAgos` from the current block timestamp\n    /// @return secondsPerLiquidityCumulativeX128s Cumulative seconds per liquidity-in-range value as of each `secondsAgos` from the current block\n    /// timestamp\n    function observe(\n        uint32[] calldata secondsAgos\n    ) external view returns (int56[] memory tickCumulatives, uint160[] memory secondsPerLiquidityCumulativeX128s);\n\n    /// @notice Returns a snapshot of the tick cumulative, seconds per liquidity and seconds inside a tick range\n    /// @dev Snapshots must only be compared to other snapshots, taken over a period for which a position existed.\n    /// I.e., snapshots cannot be compared if a position is not held for the entire period between when the first\n    /// snapshot is taken and the second snapshot is taken.\n    /// @param tickLower The lower tick of the range\n    /// @param tickUpper The upper tick of the range\n    /// @return tickCumulativeInside The snapshot of the tick accumulator for the range\n    /// @return secondsPerLiquidityInsideX128 The snapshot of seconds per liquidity for the range\n    /// @return secondsInside The snapshot of seconds per liquidity for the range\n    function snapshotCumulativesInside(\n        int24 tickLower,\n        int24 tickUpper\n    ) external view returns (int56 tickCumulativeInside, uint160 secondsPerLiquidityInsideX128, uint32 secondsInside);\n}\n"},"@airdao/astra-cl-core/contracts/interfaces/pool/IAstraCLPoolEvents.sol":{"content":"// SPDX-License-Identifier: GPL-2.0-or-later\npragma solidity >=0.5.0;\n\n/// @title Events emitted by a pool\n/// @notice Contains all events emitted by the pool\ninterface IAstraCLPoolEvents {\n    /// @notice Emitted exactly once by a pool when #initialize is first called on the pool\n    /// @dev Mint/Burn/Swap cannot be emitted by the pool before Initialize\n    /// @param sqrtPriceX96 The initial sqrt price of the pool, as a Q64.96\n    /// @param tick The initial tick of the pool, i.e. log base 1.0001 of the starting price of the pool\n    event Initialize(uint160 sqrtPriceX96, int24 tick);\n\n    /// @notice Emitted when liquidity is minted for a given position\n    /// @param sender The address that minted the liquidity\n    /// @param owner The owner of the position and recipient of any minted liquidity\n    /// @param tickLower The lower tick of the position\n    /// @param tickUpper The upper tick of the position\n    /// @param amount The amount of liquidity minted to the position range\n    /// @param amount0 How much token0 was required for the minted liquidity\n    /// @param amount1 How much token1 was required for the minted liquidity\n    event Mint(\n        address sender,\n        address indexed owner,\n        int24 indexed tickLower,\n        int24 indexed tickUpper,\n        uint128 amount,\n        uint256 amount0,\n        uint256 amount1\n    );\n\n    /// @notice Emitted when fees are collected by the owner of a position\n    /// @dev Collect events may be emitted with zero amount0 and amount1 when the caller chooses not to collect fees\n    /// @param owner The owner of the position for which fees are collected\n    /// @param tickLower The lower tick of the position\n    /// @param tickUpper The upper tick of the position\n    /// @param amount0 The amount of token0 fees collected\n    /// @param amount1 The amount of token1 fees collected\n    event Collect(\n        address indexed owner,\n        address recipient,\n        int24 indexed tickLower,\n        int24 indexed tickUpper,\n        uint128 amount0,\n        uint128 amount1\n    );\n\n    /// @notice Emitted when a position's liquidity is removed\n    /// @dev Does not withdraw any fees earned by the liquidity position, which must be withdrawn via #collect\n    /// @param owner The owner of the position for which liquidity is removed\n    /// @param tickLower The lower tick of the position\n    /// @param tickUpper The upper tick of the position\n    /// @param amount The amount of liquidity to remove\n    /// @param amount0 The amount of token0 withdrawn\n    /// @param amount1 The amount of token1 withdrawn\n    event Burn(\n        address indexed owner,\n        int24 indexed tickLower,\n        int24 indexed tickUpper,\n        uint128 amount,\n        uint256 amount0,\n        uint256 amount1\n    );\n\n    /// @notice Emitted by the pool for any swaps between token0 and token1\n    /// @param sender The address that initiated the swap call, and that received the callback\n    /// @param recipient The address that received the output of the swap\n    /// @param amount0 The delta of the token0 balance of the pool\n    /// @param amount1 The delta of the token1 balance of the pool\n    /// @param sqrtPriceX96 The sqrt(price) of the pool after the swap, as a Q64.96\n    /// @param liquidity The liquidity of the pool after the swap\n    /// @param tick The log base 1.0001 of price of the pool after the swap\n    event Swap(\n        address indexed sender,\n        address indexed recipient,\n        int256 amount0,\n        int256 amount1,\n        uint160 sqrtPriceX96,\n        uint128 liquidity,\n        int24 tick\n    );\n\n    /// @notice Emitted by the pool for any flashes of token0/token1\n    /// @param sender The address that initiated the swap call, and that received the callback\n    /// @param recipient The address that received the tokens from flash\n    /// @param amount0 The amount of token0 that was flashed\n    /// @param amount1 The amount of token1 that was flashed\n    /// @param paid0 The amount of token0 paid for the flash, which can exceed the amount0 plus the fee\n    /// @param paid1 The amount of token1 paid for the flash, which can exceed the amount1 plus the fee\n    event Flash(\n        address indexed sender,\n        address indexed recipient,\n        uint256 amount0,\n        uint256 amount1,\n        uint256 paid0,\n        uint256 paid1\n    );\n\n    /// @notice Emitted by the pool for increases to the number of observations that can be stored\n    /// @dev observationCardinalityNext is not the observation cardinality until an observation is written at the index\n    /// just before a mint/swap/burn.\n    /// @param observationCardinalityNextOld The previous value of the next observation cardinality\n    /// @param observationCardinalityNextNew The updated value of the next observation cardinality\n    event IncreaseObservationCardinalityNext(\n        uint16 observationCardinalityNextOld,\n        uint16 observationCardinalityNextNew\n    );\n\n    /// @notice Emitted when the protocol fee is changed by the pool\n    /// @param feeProtocol0Old The previous value of the token0 protocol fee\n    /// @param feeProtocol1Old The previous value of the token1 protocol fee\n    /// @param feeProtocol0New The updated value of the token0 protocol fee\n    /// @param feeProtocol1New The updated value of the token1 protocol fee\n    event SetFeeProtocol(uint8 feeProtocol0Old, uint8 feeProtocol1Old, uint8 feeProtocol0New, uint8 feeProtocol1New);\n\n    /// @notice Emitted when the collected protocol fees are withdrawn by the factory owner\n    /// @param sender The address that collects the protocol fees\n    /// @param recipient The address that receives the collected protocol fees\n    /// @param amount0 The amount of token0 protocol fees that is withdrawn\n    /// @param amount0 The amount of token1 protocol fees that is withdrawn\n    event CollectProtocol(address indexed sender, address indexed recipient, uint128 amount0, uint128 amount1);\n}\n"},"@airdao/astra-cl-core/contracts/interfaces/pool/IAstraCLPoolImmutables.sol":{"content":"// SPDX-License-Identifier: GPL-2.0-or-later\npragma solidity >=0.5.0;\n\n/// @title Pool state that never changes\n/// @notice These parameters are fixed for a pool forever, i.e., the methods will always return the same values\ninterface IAstraCLPoolImmutables {\n    /// @notice The contract that deployed the pool, which must adhere to the IAstraCLFactory interface\n    /// @return The contract address\n    function factory() external view returns (address);\n\n    /// @notice The first of the two tokens of the pool, sorted by address\n    /// @return The token contract address\n    function token0() external view returns (address);\n\n    /// @notice The second of the two tokens of the pool, sorted by address\n    /// @return The token contract address\n    function token1() external view returns (address);\n\n    /// @notice The pool's fee in hundredths of a bip, i.e. 1e-6\n    /// @return The fee\n    function fee() external view returns (uint24);\n\n    /// @notice The pool tick spacing\n    /// @dev Ticks can only be used at multiples of this value, minimum of 1 and always positive\n    /// e.g.: a tickSpacing of 3 means ticks can be initialized every 3rd tick, i.e., ..., -6, -3, 0, 3, 6, ...\n    /// This value is an int24 to avoid casting even though it is always positive.\n    /// @return The tick spacing\n    function tickSpacing() external view returns (int24);\n\n    /// @notice The maximum amount of position liquidity that can use any tick in the range\n    /// @dev This parameter is enforced per tick to prevent liquidity from overflowing a uint128 at any point, and\n    /// also prevents out-of-range liquidity from being used to prevent adding in-range liquidity to a pool\n    /// @return The max amount of liquidity per tick\n    function maxLiquidityPerTick() external view returns (uint128);\n}\n"},"@airdao/astra-cl-core/contracts/interfaces/pool/IAstraCLPoolOwnerActions.sol":{"content":"// SPDX-License-Identifier: GPL-2.0-or-later\npragma solidity >=0.5.0;\n\n/// @title Permissioned pool actions\n/// @notice Contains pool methods that may only be called by the factory owner\ninterface IAstraCLPoolOwnerActions {\n    /// @notice Set the denominator of the protocol's % share of the fees\n    /// @param feeProtocol0 new protocol fee for token0 of the pool\n    /// @param feeProtocol1 new protocol fee for token1 of the pool\n    function setFeeProtocol(uint8 feeProtocol0, uint8 feeProtocol1) external;\n\n    /// @notice Collect the protocol fee accrued to the pool\n    /// @param recipient The address to which collected protocol fees should be sent\n    /// @param amount0Requested The maximum amount of token0 to send, can be 0 to collect fees in only token1\n    /// @param amount1Requested The maximum amount of token1 to send, can be 0 to collect fees in only token0\n    /// @return amount0 The protocol fee collected in token0\n    /// @return amount1 The protocol fee collected in token1\n    function collectProtocol(\n        address recipient,\n        uint128 amount0Requested,\n        uint128 amount1Requested\n    ) external returns (uint128 amount0, uint128 amount1);\n}\n"},"@airdao/astra-cl-core/contracts/interfaces/pool/IAstraCLPoolState.sol":{"content":"// SPDX-License-Identifier: GPL-2.0-or-later\npragma solidity >=0.5.0;\n\n/// @title Pool state that can change\n/// @notice These methods compose the pool's state, and can change with any frequency including multiple times\n/// per transaction\ninterface IAstraCLPoolState {\n    /// @notice The 0th storage slot in the pool stores many values, and is exposed as a single method to save gas\n    /// when accessed externally.\n    /// @return sqrtPriceX96 The current price of the pool as a sqrt(token1/token0) Q64.96 value\n    /// tick The current tick of the pool, i.e. according to the last tick transition that was run.\n    /// This value may not always be equal to SqrtTickMath.getTickAtSqrtRatio(sqrtPriceX96) if the price is on a tick\n    /// boundary.\n    /// observationIndex The index of the last oracle observation that was written,\n    /// observationCardinality The current maximum number of observations stored in the pool,\n    /// observationCardinalityNext The next maximum number of observations, to be updated when the observation.\n    /// feeProtocol The protocol fee for both tokens of the pool.\n    /// Encoded as two 4 bit values, where the protocol fee of token1 is shifted 4 bits and the protocol fee of token0\n    /// is the lower 4 bits. Used as the denominator of a fraction of the swap fee, e.g. 4 means 1/4th of the swap fee.\n    /// unlocked Whether the pool is currently locked to reentrancy\n    function slot0()\n        external\n        view\n        returns (\n            uint160 sqrtPriceX96,\n            int24 tick,\n            uint16 observationIndex,\n            uint16 observationCardinality,\n            uint16 observationCardinalityNext,\n            uint8 feeProtocol,\n            bool unlocked\n        );\n\n    /// @notice The fee growth as a Q128.128 fees of token0 collected per unit of liquidity for the entire life of the pool\n    /// @dev This value can overflow the uint256\n    function feeGrowthGlobal0X128() external view returns (uint256);\n\n    /// @notice The fee growth as a Q128.128 fees of token1 collected per unit of liquidity for the entire life of the pool\n    /// @dev This value can overflow the uint256\n    function feeGrowthGlobal1X128() external view returns (uint256);\n\n    /// @notice The amounts of token0 and token1 that are owed to the protocol\n    /// @dev Protocol fees will never exceed uint128 max in either token\n    function protocolFees() external view returns (uint128 token0, uint128 token1);\n\n    /// @notice The currently in range liquidity available to the pool\n    /// @dev This value has no relationship to the total liquidity across all ticks\n    function liquidity() external view returns (uint128);\n\n    /// @notice Look up information about a specific tick in the pool\n    /// @param tick The tick to look up\n    /// @return liquidityGross the total amount of position liquidity that uses the pool either as tick lower or\n    /// tick upper,\n    /// liquidityNet how much liquidity changes when the pool price crosses the tick,\n    /// feeGrowthOutside0X128 the fee growth on the other side of the tick from the current tick in token0,\n    /// feeGrowthOutside1X128 the fee growth on the other side of the tick from the current tick in token1,\n    /// tickCumulativeOutside the cumulative tick value on the other side of the tick from the current tick\n    /// secondsPerLiquidityOutsideX128 the seconds spent per liquidity on the other side of the tick from the current tick,\n    /// secondsOutside the seconds spent on the other side of the tick from the current tick,\n    /// initialized Set to true if the tick is initialized, i.e. liquidityGross is greater than 0, otherwise equal to false.\n    /// Outside values can only be used if the tick is initialized, i.e. if liquidityGross is greater than 0.\n    /// In addition, these values are only relative and must be used only in comparison to previous snapshots for\n    /// a specific position.\n    function ticks(\n        int24 tick\n    )\n        external\n        view\n        returns (\n            uint128 liquidityGross,\n            int128 liquidityNet,\n            uint256 feeGrowthOutside0X128,\n            uint256 feeGrowthOutside1X128,\n            int56 tickCumulativeOutside,\n            uint160 secondsPerLiquidityOutsideX128,\n            uint32 secondsOutside,\n            bool initialized\n        );\n\n    /// @notice Returns 256 packed tick initialized boolean values. See TickBitmap for more information\n    function tickBitmap(int16 wordPosition) external view returns (uint256);\n\n    /// @notice Returns the information about a position by the position's key\n    /// @param key The position's key is a hash of a preimage composed by the owner, tickLower and tickUpper\n    /// @return _liquidity The amount of liquidity in the position,\n    /// Returns feeGrowthInside0LastX128 fee growth of token0 inside the tick range as of the last mint/burn/poke,\n    /// Returns feeGrowthInside1LastX128 fee growth of token1 inside the tick range as of the last mint/burn/poke,\n    /// Returns tokensOwed0 the computed amount of token0 owed to the position as of the last mint/burn/poke,\n    /// Returns tokensOwed1 the computed amount of token1 owed to the position as of the last mint/burn/poke\n    function positions(\n        bytes32 key\n    )\n        external\n        view\n        returns (\n            uint128 _liquidity,\n            uint256 feeGrowthInside0LastX128,\n            uint256 feeGrowthInside1LastX128,\n            uint128 tokensOwed0,\n            uint128 tokensOwed1\n        );\n\n    /// @notice Returns data about a specific observation index\n    /// @param index The element of the observations array to fetch\n    /// @dev You most likely want to use #observe() instead of this method to get an observation as of some amount of time\n    /// ago, rather than at a specific index in the array.\n    /// @return blockTimestamp The timestamp of the observation,\n    /// Returns tickCumulative the tick multiplied by seconds elapsed for the life of the pool as of the observation timestamp,\n    /// Returns secondsPerLiquidityCumulativeX128 the seconds per in range liquidity for the life of the pool as of the observation timestamp,\n    /// Returns initialized whether the observation has been initialized and the values are safe to use\n    function observations(\n        uint256 index\n    )\n        external\n        view\n        returns (\n            uint32 blockTimestamp,\n            int56 tickCumulative,\n            uint160 secondsPerLiquidityCumulativeX128,\n            bool initialized\n        );\n}\n"},"@airdao/astra-cl-core/contracts/libraries/BitMath.sol":{"content":"// SPDX-License-Identifier: GPL-2.0-or-later\npragma solidity >=0.5.0;\n\n/// @title BitMath\n/// @dev This library provides functionality for computing bit properties of an unsigned integer\nlibrary BitMath {\n    /// @notice Returns the index of the most significant bit of the number,\n    ///     where the least significant bit is at index 0 and the most significant bit is at index 255\n    /// @dev The function satisfies the property:\n    ///     x >= 2**mostSignificantBit(x) and x < 2**(mostSignificantBit(x)+1)\n    /// @param x the value for which to compute the most significant bit, must be greater than 0\n    /// @return r the index of the most significant bit\n    function mostSignificantBit(uint256 x) internal pure returns (uint8 r) {\n        require(x > 0);\n\n        if (x >= 0x100000000000000000000000000000000) {\n            x >>= 128;\n            r += 128;\n        }\n        if (x >= 0x10000000000000000) {\n            x >>= 64;\n            r += 64;\n        }\n        if (x >= 0x100000000) {\n            x >>= 32;\n            r += 32;\n        }\n        if (x >= 0x10000) {\n            x >>= 16;\n            r += 16;\n        }\n        if (x >= 0x100) {\n            x >>= 8;\n            r += 8;\n        }\n        if (x >= 0x10) {\n            x >>= 4;\n            r += 4;\n        }\n        if (x >= 0x4) {\n            x >>= 2;\n            r += 2;\n        }\n        if (x >= 0x2) r += 1;\n    }\n\n    /// @notice Returns the index of the least significant bit of the number,\n    ///     where the least significant bit is at index 0 and the most significant bit is at index 255\n    /// @dev The function satisfies the property:\n    ///     (x & 2**leastSignificantBit(x)) != 0 and (x & (2**(leastSignificantBit(x)) - 1)) == 0)\n    /// @param x the value for which to compute the least significant bit, must be greater than 0\n    /// @return r the index of the least significant bit\n    function leastSignificantBit(uint256 x) internal pure returns (uint8 r) {\n        require(x > 0);\n\n        r = 255;\n        if (x & type(uint128).max > 0) {\n            r -= 128;\n        } else {\n            x >>= 128;\n        }\n        if (x & type(uint64).max > 0) {\n            r -= 64;\n        } else {\n            x >>= 64;\n        }\n        if (x & type(uint32).max > 0) {\n            r -= 32;\n        } else {\n            x >>= 32;\n        }\n        if (x & type(uint16).max > 0) {\n            r -= 16;\n        } else {\n            x >>= 16;\n        }\n        if (x & type(uint8).max > 0) {\n            r -= 8;\n        } else {\n            x >>= 8;\n        }\n        if (x & 0xf > 0) {\n            r -= 4;\n        } else {\n            x >>= 4;\n        }\n        if (x & 0x3 > 0) {\n            r -= 2;\n        } else {\n            x >>= 2;\n        }\n        if (x & 0x1 > 0) r -= 1;\n    }\n}\n"},"@airdao/astra-cl-core/contracts/libraries/FullMath.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity >=0.4.0 <0.8.0;\n\n/// @title Contains 512-bit math functions\n/// @notice Facilitates multiplication and division that can have overflow of an intermediate value without any loss of precision\n/// @dev Handles \"phantom overflow\" i.e., allows multiplication and division where an intermediate value overflows 256 bits\nlibrary FullMath {\n    /// @notice Calculates floor(a×b÷denominator) with full precision. Throws if result overflows a uint256 or denominator == 0\n    /// @param a The multiplicand\n    /// @param b The multiplier\n    /// @param denominator The divisor\n    /// @return result The 256-bit result\n    /// @dev Credit to Remco Bloemen under MIT license https://xn--2-umb.com/21/muldiv\n    function mulDiv(uint256 a, uint256 b, uint256 denominator) internal pure returns (uint256 result) {\n        // 512-bit multiply [prod1 prod0] = a * b\n        // Compute the product mod 2**256 and mod 2**256 - 1\n        // then use the Chinese Remainder Theorem to reconstruct\n        // the 512 bit result. The result is stored in two 256\n        // variables such that product = prod1 * 2**256 + prod0\n        uint256 prod0; // Least significant 256 bits of the product\n        uint256 prod1; // Most significant 256 bits of the product\n        assembly {\n            let mm := mulmod(a, b, not(0))\n            prod0 := mul(a, b)\n            prod1 := sub(sub(mm, prod0), lt(mm, prod0))\n        }\n\n        // Handle non-overflow cases, 256 by 256 division\n        if (prod1 == 0) {\n            require(denominator > 0);\n            assembly {\n                result := div(prod0, denominator)\n            }\n            return result;\n        }\n\n        // Make sure the result is less than 2**256.\n        // Also prevents denominator == 0\n        require(denominator > prod1);\n\n        ///////////////////////////////////////////////\n        // 512 by 256 division.\n        ///////////////////////////////////////////////\n\n        // Make division exact by subtracting the remainder from [prod1 prod0]\n        // Compute remainder using mulmod\n        uint256 remainder;\n        assembly {\n            remainder := mulmod(a, b, denominator)\n        }\n        // Subtract 256 bit number from 512 bit number\n        assembly {\n            prod1 := sub(prod1, gt(remainder, prod0))\n            prod0 := sub(prod0, remainder)\n        }\n\n        // Factor powers of two out of denominator\n        // Compute largest power of two divisor of denominator.\n        // Always >= 1.\n        uint256 twos = -denominator & denominator;\n        // Divide denominator by power of two\n        assembly {\n            denominator := div(denominator, twos)\n        }\n\n        // Divide [prod1 prod0] by the factors of two\n        assembly {\n            prod0 := div(prod0, twos)\n        }\n        // Shift in bits from prod1 into prod0. For this we need\n        // to flip `twos` such that it is 2**256 / twos.\n        // If twos is zero, then it becomes one\n        assembly {\n            twos := add(div(sub(0, twos), twos), 1)\n        }\n        prod0 |= prod1 * twos;\n\n        // Invert denominator mod 2**256\n        // Now that denominator is an odd number, it has an inverse\n        // modulo 2**256 such that denominator * inv = 1 mod 2**256.\n        // Compute the inverse by starting with a seed that is correct\n        // correct for four bits. That is, denominator * inv = 1 mod 2**4\n        uint256 inv = (3 * denominator) ^ 2;\n        // Now use Newton-Raphson iteration to improve the precision.\n        // Thanks to Hensel's lifting lemma, this also works in modular\n        // arithmetic, doubling the correct bits in each step.\n        inv *= 2 - denominator * inv; // inverse mod 2**8\n        inv *= 2 - denominator * inv; // inverse mod 2**16\n        inv *= 2 - denominator * inv; // inverse mod 2**32\n        inv *= 2 - denominator * inv; // inverse mod 2**64\n        inv *= 2 - denominator * inv; // inverse mod 2**128\n        inv *= 2 - denominator * inv; // inverse mod 2**256\n\n        // Because the division is now exact we can divide by multiplying\n        // with the modular inverse of denominator. This will give us the\n        // correct result modulo 2**256. Since the precoditions guarantee\n        // that the outcome is less than 2**256, this is the final result.\n        // We don't need to compute the high bits of the result and prod1\n        // is no longer required.\n        result = prod0 * inv;\n        return result;\n    }\n\n    /// @notice Calculates ceil(a×b÷denominator) with full precision. Throws if result overflows a uint256 or denominator == 0\n    /// @param a The multiplicand\n    /// @param b The multiplier\n    /// @param denominator The divisor\n    /// @return result The 256-bit result\n    function mulDivRoundingUp(uint256 a, uint256 b, uint256 denominator) internal pure returns (uint256 result) {\n        result = mulDiv(a, b, denominator);\n        if (mulmod(a, b, denominator) > 0) {\n            require(result < type(uint256).max);\n            result++;\n        }\n    }\n}\n"},"@airdao/astra-cl-core/contracts/libraries/TickMath.sol":{"content":"// SPDX-License-Identifier: GPL-2.0-or-later\npragma solidity >=0.5.0 <0.8.0;\n\n/// @title Math library for computing sqrt prices from ticks and vice versa\n/// @notice Computes sqrt price for ticks of size 1.0001, i.e. sqrt(1.0001^tick) as fixed point Q64.96 numbers. Supports\n/// prices between 2**-128 and 2**128\nlibrary TickMath {\n    /// @dev The minimum tick that may be passed to #getSqrtRatioAtTick computed from log base 1.0001 of 2**-128\n    int24 internal constant MIN_TICK = -887272;\n    /// @dev The maximum tick that may be passed to #getSqrtRatioAtTick computed from log base 1.0001 of 2**128\n    int24 internal constant MAX_TICK = -MIN_TICK;\n\n    /// @dev The minimum value that can be returned from #getSqrtRatioAtTick. Equivalent to getSqrtRatioAtTick(MIN_TICK)\n    uint160 internal constant MIN_SQRT_RATIO = 4295128739;\n    /// @dev The maximum value that can be returned from #getSqrtRatioAtTick. Equivalent to getSqrtRatioAtTick(MAX_TICK)\n    uint160 internal constant MAX_SQRT_RATIO = 1461446703485210103287273052203988822378723970342;\n\n    /// @notice Calculates sqrt(1.0001^tick) * 2^96\n    /// @dev Throws if |tick| > max tick\n    /// @param tick The input tick for the above formula\n    /// @return sqrtPriceX96 A Fixed point Q64.96 number representing the sqrt of the ratio of the two assets (token1/token0)\n    /// at the given tick\n    function getSqrtRatioAtTick(int24 tick) internal pure returns (uint160 sqrtPriceX96) {\n        uint256 absTick = tick < 0 ? uint256(-int256(tick)) : uint256(int256(tick));\n        require(absTick <= uint256(MAX_TICK), 'T');\n\n        uint256 ratio = absTick & 0x1 != 0 ? 0xfffcb933bd6fad37aa2d162d1a594001 : 0x100000000000000000000000000000000;\n        if (absTick & 0x2 != 0) ratio = (ratio * 0xfff97272373d413259a46990580e213a) >> 128;\n        if (absTick & 0x4 != 0) ratio = (ratio * 0xfff2e50f5f656932ef12357cf3c7fdcc) >> 128;\n        if (absTick & 0x8 != 0) ratio = (ratio * 0xffe5caca7e10e4e61c3624eaa0941cd0) >> 128;\n        if (absTick & 0x10 != 0) ratio = (ratio * 0xffcb9843d60f6159c9db58835c926644) >> 128;\n        if (absTick & 0x20 != 0) ratio = (ratio * 0xff973b41fa98c081472e6896dfb254c0) >> 128;\n        if (absTick & 0x40 != 0) ratio = (ratio * 0xff2ea16466c96a3843ec78b326b52861) >> 128;\n        if (absTick & 0x80 != 0) ratio = (ratio * 0xfe5dee046a99a2a811c461f1969c3053) >> 128;\n        if (absTick & 0x100 != 0) ratio = (ratio * 0xfcbe86c7900a88aedcffc83b479aa3a4) >> 128;\n        if (absTick & 0x200 != 0) ratio = (ratio * 0xf987a7253ac413176f2b074cf7815e54) >> 128;\n        if (absTick & 0x400 != 0) ratio = (ratio * 0xf3392b0822b70005940c7a398e4b70f3) >> 128;\n        if (absTick & 0x800 != 0) ratio = (ratio * 0xe7159475a2c29b7443b29c7fa6e889d9) >> 128;\n        if (absTick & 0x1000 != 0) ratio = (ratio * 0xd097f3bdfd2022b8845ad8f792aa5825) >> 128;\n        if (absTick & 0x2000 != 0) ratio = (ratio * 0xa9f746462d870fdf8a65dc1f90e061e5) >> 128;\n        if (absTick & 0x4000 != 0) ratio = (ratio * 0x70d869a156d2a1b890bb3df62baf32f7) >> 128;\n        if (absTick & 0x8000 != 0) ratio = (ratio * 0x31be135f97d08fd981231505542fcfa6) >> 128;\n        if (absTick & 0x10000 != 0) ratio = (ratio * 0x9aa508b5b7a84e1c677de54f3e99bc9) >> 128;\n        if (absTick & 0x20000 != 0) ratio = (ratio * 0x5d6af8dedb81196699c329225ee604) >> 128;\n        if (absTick & 0x40000 != 0) ratio = (ratio * 0x2216e584f5fa1ea926041bedfe98) >> 128;\n        if (absTick & 0x80000 != 0) ratio = (ratio * 0x48a170391f7dc42444e8fa2) >> 128;\n\n        if (tick > 0) ratio = type(uint256).max / ratio;\n\n        // this divides by 1<<32 rounding up to go from a Q128.128 to a Q128.96.\n        // we then downcast because we know the result always fits within 160 bits due to our tick input constraint\n        // we round up in the division so getTickAtSqrtRatio of the output price is always consistent\n        sqrtPriceX96 = uint160((ratio >> 32) + (ratio % (1 << 32) == 0 ? 0 : 1));\n    }\n\n    /// @notice Calculates the greatest tick value such that getRatioAtTick(tick) <= ratio\n    /// @dev Throws in case sqrtPriceX96 < MIN_SQRT_RATIO, as MIN_SQRT_RATIO is the lowest value getRatioAtTick may\n    /// ever return.\n    /// @param sqrtPriceX96 The sqrt ratio for which to compute the tick as a Q64.96\n    /// @return tick The greatest tick for which the ratio is less than or equal to the input ratio\n    function getTickAtSqrtRatio(uint160 sqrtPriceX96) internal pure returns (int24 tick) {\n        // second inequality must be < because the price can never reach the price at the max tick\n        require(sqrtPriceX96 >= MIN_SQRT_RATIO && sqrtPriceX96 < MAX_SQRT_RATIO, 'R');\n        uint256 ratio = uint256(sqrtPriceX96) << 32;\n\n        uint256 r = ratio;\n        uint256 msb = 0;\n\n        assembly {\n            let f := shl(7, gt(r, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF))\n            msb := or(msb, f)\n            r := shr(f, r)\n        }\n        assembly {\n            let f := shl(6, gt(r, 0xFFFFFFFFFFFFFFFF))\n            msb := or(msb, f)\n            r := shr(f, r)\n        }\n        assembly {\n            let f := shl(5, gt(r, 0xFFFFFFFF))\n            msb := or(msb, f)\n            r := shr(f, r)\n        }\n        assembly {\n            let f := shl(4, gt(r, 0xFFFF))\n            msb := or(msb, f)\n            r := shr(f, r)\n        }\n        assembly {\n            let f := shl(3, gt(r, 0xFF))\n            msb := or(msb, f)\n            r := shr(f, r)\n        }\n        assembly {\n            let f := shl(2, gt(r, 0xF))\n            msb := or(msb, f)\n            r := shr(f, r)\n        }\n        assembly {\n            let f := shl(1, gt(r, 0x3))\n            msb := or(msb, f)\n            r := shr(f, r)\n        }\n        assembly {\n            let f := gt(r, 0x1)\n            msb := or(msb, f)\n        }\n\n        if (msb >= 128) r = ratio >> (msb - 127);\n        else r = ratio << (127 - msb);\n\n        int256 log_2 = (int256(msb) - 128) << 64;\n\n        assembly {\n            r := shr(127, mul(r, r))\n            let f := shr(128, r)\n            log_2 := or(log_2, shl(63, f))\n            r := shr(f, r)\n        }\n        assembly {\n            r := shr(127, mul(r, r))\n            let f := shr(128, r)\n            log_2 := or(log_2, shl(62, f))\n            r := shr(f, r)\n        }\n        assembly {\n            r := shr(127, mul(r, r))\n            let f := shr(128, r)\n            log_2 := or(log_2, shl(61, f))\n            r := shr(f, r)\n        }\n        assembly {\n            r := shr(127, mul(r, r))\n            let f := shr(128, r)\n            log_2 := or(log_2, shl(60, f))\n            r := shr(f, r)\n        }\n        assembly {\n            r := shr(127, mul(r, r))\n            let f := shr(128, r)\n            log_2 := or(log_2, shl(59, f))\n            r := shr(f, r)\n        }\n        assembly {\n            r := shr(127, mul(r, r))\n            let f := shr(128, r)\n            log_2 := or(log_2, shl(58, f))\n            r := shr(f, r)\n        }\n        assembly {\n            r := shr(127, mul(r, r))\n            let f := shr(128, r)\n            log_2 := or(log_2, shl(57, f))\n            r := shr(f, r)\n        }\n        assembly {\n            r := shr(127, mul(r, r))\n            let f := shr(128, r)\n            log_2 := or(log_2, shl(56, f))\n            r := shr(f, r)\n        }\n        assembly {\n            r := shr(127, mul(r, r))\n            let f := shr(128, r)\n            log_2 := or(log_2, shl(55, f))\n            r := shr(f, r)\n        }\n        assembly {\n            r := shr(127, mul(r, r))\n            let f := shr(128, r)\n            log_2 := or(log_2, shl(54, f))\n            r := shr(f, r)\n        }\n        assembly {\n            r := shr(127, mul(r, r))\n            let f := shr(128, r)\n            log_2 := or(log_2, shl(53, f))\n            r := shr(f, r)\n        }\n        assembly {\n            r := shr(127, mul(r, r))\n            let f := shr(128, r)\n            log_2 := or(log_2, shl(52, f))\n            r := shr(f, r)\n        }\n        assembly {\n            r := shr(127, mul(r, r))\n            let f := shr(128, r)\n            log_2 := or(log_2, shl(51, f))\n            r := shr(f, r)\n        }\n        assembly {\n            r := shr(127, mul(r, r))\n            let f := shr(128, r)\n            log_2 := or(log_2, shl(50, f))\n        }\n\n        int256 log_sqrt10001 = log_2 * 255738958999603826347141; // 128.128 number\n\n        int24 tickLow = int24((log_sqrt10001 - 3402992956809132418596140100660247210) >> 128);\n        int24 tickHi = int24((log_sqrt10001 + 291339464771989622907027621153398088495) >> 128);\n\n        tick = tickLow == tickHi\n            ? tickLow\n            : getSqrtRatioAtTick(tickHi) <= sqrtPriceX96\n                ? tickHi\n                : tickLow;\n    }\n}\n"},"@openzeppelin/contracts/math/SafeMath.sol":{"content":"// SPDX-License-Identifier: MIT\n\npragma solidity ^0.7.0;\n\n/**\n * @dev Wrappers over Solidity's arithmetic operations with added overflow\n * checks.\n *\n * Arithmetic operations in Solidity wrap on overflow. This can easily result\n * in bugs, because programmers usually assume that an overflow raises an\n * error, which is the standard behavior in high level programming languages.\n * `SafeMath` restores this intuition by reverting the transaction when an\n * operation overflows.\n *\n * Using this library instead of the unchecked operations eliminates an entire\n * class of bugs, so it's recommended to use it always.\n */\nlibrary SafeMath {\n    /**\n     * @dev Returns the addition of two unsigned integers, with an overflow flag.\n     *\n     * _Available since v3.4._\n     */\n    function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) {\n        uint256 c = a + b;\n        if (c < a) return (false, 0);\n        return (true, c);\n    }\n\n    /**\n     * @dev Returns the substraction of two unsigned integers, with an overflow flag.\n     *\n     * _Available since v3.4._\n     */\n    function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) {\n        if (b > a) return (false, 0);\n        return (true, a - b);\n    }\n\n    /**\n     * @dev Returns the multiplication of two unsigned integers, with an overflow flag.\n     *\n     * _Available since v3.4._\n     */\n    function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) {\n        // Gas optimization: this is cheaper than requiring 'a' not being zero, but the\n        // benefit is lost if 'b' is also tested.\n        // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522\n        if (a == 0) return (true, 0);\n        uint256 c = a * b;\n        if (c / a != b) return (false, 0);\n        return (true, c);\n    }\n\n    /**\n     * @dev Returns the division of two unsigned integers, with a division by zero flag.\n     *\n     * _Available since v3.4._\n     */\n    function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) {\n        if (b == 0) return (false, 0);\n        return (true, a / b);\n    }\n\n    /**\n     * @dev Returns the remainder of dividing two unsigned integers, with a division by zero flag.\n     *\n     * _Available since v3.4._\n     */\n    function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) {\n        if (b == 0) return (false, 0);\n        return (true, a % b);\n    }\n\n    /**\n     * @dev Returns the addition of two unsigned integers, reverting on\n     * overflow.\n     *\n     * Counterpart to Solidity's `+` operator.\n     *\n     * Requirements:\n     *\n     * - Addition cannot overflow.\n     */\n    function add(uint256 a, uint256 b) internal pure returns (uint256) {\n        uint256 c = a + b;\n        require(c >= a, \"SafeMath: addition overflow\");\n        return c;\n    }\n\n    /**\n     * @dev Returns the subtraction of two unsigned integers, reverting on\n     * overflow (when the result is negative).\n     *\n     * Counterpart to Solidity's `-` operator.\n     *\n     * Requirements:\n     *\n     * - Subtraction cannot overflow.\n     */\n    function sub(uint256 a, uint256 b) internal pure returns (uint256) {\n        require(b <= a, \"SafeMath: subtraction overflow\");\n        return a - b;\n    }\n\n    /**\n     * @dev Returns the multiplication of two unsigned integers, reverting on\n     * overflow.\n     *\n     * Counterpart to Solidity's `*` operator.\n     *\n     * Requirements:\n     *\n     * - Multiplication cannot overflow.\n     */\n    function mul(uint256 a, uint256 b) internal pure returns (uint256) {\n        if (a == 0) return 0;\n        uint256 c = a * b;\n        require(c / a == b, \"SafeMath: multiplication overflow\");\n        return c;\n    }\n\n    /**\n     * @dev Returns the integer division of two unsigned integers, reverting on\n     * division by zero. The result is rounded towards zero.\n     *\n     * Counterpart to Solidity's `/` operator. Note: this function uses a\n     * `revert` opcode (which leaves remaining gas untouched) while Solidity\n     * uses an invalid opcode to revert (consuming all remaining gas).\n     *\n     * Requirements:\n     *\n     * - The divisor cannot be zero.\n     */\n    function div(uint256 a, uint256 b) internal pure returns (uint256) {\n        require(b > 0, \"SafeMath: division by zero\");\n        return a / b;\n    }\n\n    /**\n     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\n     * reverting when dividing by zero.\n     *\n     * Counterpart to Solidity's `%` operator. This function uses a `revert`\n     * opcode (which leaves remaining gas untouched) while Solidity uses an\n     * invalid opcode to revert (consuming all remaining gas).\n     *\n     * Requirements:\n     *\n     * - The divisor cannot be zero.\n     */\n    function mod(uint256 a, uint256 b) internal pure returns (uint256) {\n        require(b > 0, \"SafeMath: modulo by zero\");\n        return a % b;\n    }\n\n    /**\n     * @dev Returns the subtraction of two unsigned integers, reverting with custom message on\n     * overflow (when the result is negative).\n     *\n     * CAUTION: This function is deprecated because it requires allocating memory for the error\n     * message unnecessarily. For custom revert reasons use {trySub}.\n     *\n     * Counterpart to Solidity's `-` operator.\n     *\n     * Requirements:\n     *\n     * - Subtraction cannot overflow.\n     */\n    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {\n        require(b <= a, errorMessage);\n        return a - b;\n    }\n\n    /**\n     * @dev Returns the integer division of two unsigned integers, reverting with custom message on\n     * division by zero. The result is rounded towards zero.\n     *\n     * CAUTION: This function is deprecated because it requires allocating memory for the error\n     * message unnecessarily. For custom revert reasons use {tryDiv}.\n     *\n     * Counterpart to Solidity's `/` operator. Note: this function uses a\n     * `revert` opcode (which leaves remaining gas untouched) while Solidity\n     * uses an invalid opcode to revert (consuming all remaining gas).\n     *\n     * Requirements:\n     *\n     * - The divisor cannot be zero.\n     */\n    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {\n        require(b > 0, errorMessage);\n        return a / b;\n    }\n\n    /**\n     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\n     * reverting with custom message when dividing by zero.\n     *\n     * CAUTION: This function is deprecated because it requires allocating memory for the error\n     * message unnecessarily. For custom revert reasons use {tryMod}.\n     *\n     * Counterpart to Solidity's `%` operator. This function uses a `revert`\n     * opcode (which leaves remaining gas untouched) while Solidity uses an\n     * invalid opcode to revert (consuming all remaining gas).\n     *\n     * Requirements:\n     *\n     * - The divisor cannot be zero.\n     */\n    function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {\n        require(b > 0, errorMessage);\n        return a % b;\n    }\n}\n"},"@openzeppelin/contracts/math/SignedSafeMath.sol":{"content":"// SPDX-License-Identifier: MIT\n\npragma solidity ^0.7.0;\n\n/**\n * @title SignedSafeMath\n * @dev Signed math operations with safety checks that revert on error.\n */\nlibrary SignedSafeMath {\n    int256 constant private _INT256_MIN = -2**255;\n\n    /**\n     * @dev Returns the multiplication of two signed integers, reverting on\n     * overflow.\n     *\n     * Counterpart to Solidity's `*` operator.\n     *\n     * Requirements:\n     *\n     * - Multiplication cannot overflow.\n     */\n    function mul(int256 a, int256 b) internal pure returns (int256) {\n        // Gas optimization: this is cheaper than requiring 'a' not being zero, but the\n        // benefit is lost if 'b' is also tested.\n        // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522\n        if (a == 0) {\n            return 0;\n        }\n\n        require(!(a == -1 && b == _INT256_MIN), \"SignedSafeMath: multiplication overflow\");\n\n        int256 c = a * b;\n        require(c / a == b, \"SignedSafeMath: multiplication overflow\");\n\n        return c;\n    }\n\n    /**\n     * @dev Returns the integer division of two signed integers. Reverts on\n     * division by zero. The result is rounded towards zero.\n     *\n     * Counterpart to Solidity's `/` operator. Note: this function uses a\n     * `revert` opcode (which leaves remaining gas untouched) while Solidity\n     * uses an invalid opcode to revert (consuming all remaining gas).\n     *\n     * Requirements:\n     *\n     * - The divisor cannot be zero.\n     */\n    function div(int256 a, int256 b) internal pure returns (int256) {\n        require(b != 0, \"SignedSafeMath: division by zero\");\n        require(!(b == -1 && a == _INT256_MIN), \"SignedSafeMath: division overflow\");\n\n        int256 c = a / b;\n\n        return c;\n    }\n\n    /**\n     * @dev Returns the subtraction of two signed integers, reverting on\n     * overflow.\n     *\n     * Counterpart to Solidity's `-` operator.\n     *\n     * Requirements:\n     *\n     * - Subtraction cannot overflow.\n     */\n    function sub(int256 a, int256 b) internal pure returns (int256) {\n        int256 c = a - b;\n        require((b >= 0 && c <= a) || (b < 0 && c > a), \"SignedSafeMath: subtraction overflow\");\n\n        return c;\n    }\n\n    /**\n     * @dev Returns the addition of two signed integers, reverting on\n     * overflow.\n     *\n     * Counterpart to Solidity's `+` operator.\n     *\n     * Requirements:\n     *\n     * - Addition cannot overflow.\n     */\n    function add(int256 a, int256 b) internal pure returns (int256) {\n        int256 c = a + b;\n        require((b >= 0 && c >= a) || (b < 0 && c < a), \"SignedSafeMath: addition overflow\");\n\n        return c;\n    }\n}\n"},"@openzeppelin/contracts/utils/Strings.sol":{"content":"// SPDX-License-Identifier: MIT\n\npragma solidity ^0.7.0;\n\n/**\n * @dev String operations.\n */\nlibrary Strings {\n    /**\n     * @dev Converts a `uint256` to its ASCII `string` representation.\n     */\n    function toString(uint256 value) internal pure returns (string memory) {\n        // Inspired by OraclizeAPI's implementation - MIT licence\n        // https://github.com/oraclize/ethereum-api/blob/b42146b063c7d6ee1358846c198246239e9360e8/oraclizeAPI_0.4.25.sol\n\n        if (value == 0) {\n            return \"0\";\n        }\n        uint256 temp = value;\n        uint256 digits;\n        while (temp != 0) {\n            digits++;\n            temp /= 10;\n        }\n        bytes memory buffer = new bytes(digits);\n        uint256 index = digits - 1;\n        temp = value;\n        while (temp != 0) {\n            buffer[index--] = bytes1(uint8(48 + temp % 10));\n            temp /= 10;\n        }\n        return string(buffer);\n    }\n}\n"},"base64-sol/base64.sol":{"content":"// SPDX-License-Identifier: MIT\n\n/// @title Base64\n/// @author Brecht Devos - <brecht@loopring.org>\n/// @notice Provides a function for encoding some bytes in base64\nlibrary Base64 {\n    string internal constant TABLE = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n\n    function encode(bytes memory data) internal pure returns (string memory) {\n        if (data.length == 0) return '';\n        \n        // load the table into memory\n        string memory table = TABLE;\n\n        // multiply by 4/3 rounded up\n        uint256 encodedLen = 4 * ((data.length + 2) / 3);\n\n        // add some extra buffer at the end required for the writing\n        string memory result = new string(encodedLen + 32);\n\n        assembly {\n            // set the actual output length\n            mstore(result, encodedLen)\n            \n            // prepare the lookup table\n            let tablePtr := add(table, 1)\n            \n            // input ptr\n            let dataPtr := data\n            let endPtr := add(dataPtr, mload(data))\n            \n            // result ptr, jump over length\n            let resultPtr := add(result, 32)\n            \n            // run over the input, 3 bytes at a time\n            for {} lt(dataPtr, endPtr) {}\n            {\n               dataPtr := add(dataPtr, 3)\n               \n               // read 3 bytes\n               let input := mload(dataPtr)\n               \n               // write 4 characters\n               mstore(resultPtr, shl(248, mload(add(tablePtr, and(shr(18, input), 0x3F)))))\n               resultPtr := add(resultPtr, 1)\n               mstore(resultPtr, shl(248, mload(add(tablePtr, and(shr(12, input), 0x3F)))))\n               resultPtr := add(resultPtr, 1)\n               mstore(resultPtr, shl(248, mload(add(tablePtr, and(shr( 6, input), 0x3F)))))\n               resultPtr := add(resultPtr, 1)\n               mstore(resultPtr, shl(248, mload(add(tablePtr, and(        input,  0x3F)))))\n               resultPtr := add(resultPtr, 1)\n            }\n            \n            // padding with '='\n            switch mod(mload(data), 3)\n            case 1 { mstore(sub(resultPtr, 2), shl(240, 0x3d3d)) }\n            case 2 { mstore(sub(resultPtr, 1), shl(248, 0x3d)) }\n        }\n        \n        return result;\n    }\n}\n"},"contracts/libraries/HexStrings.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity =0.7.6;\n\nlibrary HexStrings {\n    bytes16 internal constant ALPHABET = '0123456789abcdef';\n\n    /// @notice Converts a `uint256` to its ASCII `string` hexadecimal representation with fixed length.\n    /// @dev Credit to Open Zeppelin under MIT license https://github.com/OpenZeppelin/openzeppelin-contracts/blob/243adff49ce1700e0ecb99fe522fb16cff1d1ddc/contracts/utils/Strings.sol#L55\n    function toHexString(uint256 value, uint256 length) internal pure returns (string memory) {\n        bytes memory buffer = new bytes(2 * length + 2);\n        buffer[0] = '0';\n        buffer[1] = 'x';\n        for (uint256 i = 2 * length + 1; i > 1; --i) {\n            buffer[i] = ALPHABET[value & 0xf];\n            value >>= 4;\n        }\n        require(value == 0, 'Strings: hex length insufficient');\n        return string(buffer);\n    }\n\n    function toHexStringNoPrefix(uint256 value, uint256 length) internal pure returns (string memory) {\n        bytes memory buffer = new bytes(2 * length);\n        for (uint256 i = buffer.length; i > 0; i--) {\n            buffer[i - 1] = ALPHABET[value & 0xf];\n            value >>= 4;\n        }\n        return string(buffer);\n    }\n}\n"},"contracts/libraries/NFTDescriptor.sol":{"content":"// SPDX-License-Identifier: GPL-2.0-or-later\npragma solidity >=0.7.0;\npragma abicoder v2;\n\n// TODO: change to import from @airdao/astra-cl-core\nimport '@airdao/astra-cl-core/contracts/interfaces/IAstraCLPool.sol';\n// TODO: change to import from @airdao/astra-cl-core\nimport '@airdao/astra-cl-core/contracts/libraries/TickMath.sol';\n// TODO: change to import from @airdao/astra-cl-core\nimport '@airdao/astra-cl-core/contracts/libraries/BitMath.sol';\n// TODO: change to import from @airdao/astra-cl-core\nimport '@airdao/astra-cl-core/contracts/libraries/FullMath.sol';\nimport '@openzeppelin/contracts/utils/Strings.sol';\nimport '@openzeppelin/contracts/math/SafeMath.sol';\nimport '@openzeppelin/contracts/math/SignedSafeMath.sol';\nimport 'base64-sol/base64.sol';\nimport './HexStrings.sol';\nimport './NFTSVG.sol';\n\nlibrary NFTDescriptor {\n    using TickMath for int24;\n    using Strings for uint256;\n    using SafeMath for uint256;\n    using SafeMath for uint160;\n    using SafeMath for uint8;\n    using SignedSafeMath for int256;\n    using HexStrings for uint256;\n\n    uint256 constant sqrt10X128 = 1076067327063303206878105757264492625226;\n\n    struct ConstructTokenURIParams {\n        uint256 tokenId;\n        address quoteTokenAddress;\n        address baseTokenAddress;\n        string quoteTokenSymbol;\n        string baseTokenSymbol;\n        uint8 quoteTokenDecimals;\n        uint8 baseTokenDecimals;\n        bool flipRatio;\n        int24 tickLower;\n        int24 tickUpper;\n        int24 tickCurrent;\n        int24 tickSpacing;\n        uint24 fee;\n        address poolAddress;\n    }\n\n    function constructTokenURI(ConstructTokenURIParams memory params) public pure returns (string memory) {\n        string memory name = generateName(params, feeToPercentString(params.fee));\n        string memory descriptionPartOne = generateDescriptionPartOne(\n            escapeQuotes(params.quoteTokenSymbol),\n            escapeQuotes(params.baseTokenSymbol),\n            addressToString(params.poolAddress)\n        );\n        string memory descriptionPartTwo = generateDescriptionPartTwo(\n            params.tokenId.toString(),\n            escapeQuotes(params.baseTokenSymbol),\n            addressToString(params.quoteTokenAddress),\n            addressToString(params.baseTokenAddress),\n            feeToPercentString(params.fee)\n        );\n        string memory image = Base64.encode(bytes(generateSVGImage(params)));\n\n        return\n            string(\n                abi.encodePacked(\n                    'data:application/json;base64,',\n                    Base64.encode(\n                        bytes(\n                            abi.encodePacked(\n                                '{\"name\":\"',\n                                name,\n                                '\", \"description\":\"',\n                                descriptionPartOne,\n                                descriptionPartTwo,\n                                '\", \"image\": \"',\n                                'data:image/svg+xml;base64,',\n                                image,\n                                '\"}'\n                            )\n                        )\n                    )\n                )\n            );\n    }\n\n    function escapeQuotes(string memory symbol) internal pure returns (string memory) {\n        bytes memory symbolBytes = bytes(symbol);\n        uint8 quotesCount = 0;\n        for (uint8 i = 0; i < symbolBytes.length; i++) {\n            if (symbolBytes[i] == '\"') {\n                quotesCount++;\n            }\n        }\n        if (quotesCount > 0) {\n            bytes memory escapedBytes = new bytes(symbolBytes.length + (quotesCount));\n            uint256 index;\n            for (uint8 i = 0; i < symbolBytes.length; i++) {\n                if (symbolBytes[i] == '\"') {\n                    escapedBytes[index++] = '\\\\';\n                }\n                escapedBytes[index++] = symbolBytes[i];\n            }\n            return string(escapedBytes);\n        }\n        return symbol;\n    }\n\n    function generateDescriptionPartOne(\n        string memory quoteTokenSymbol,\n        string memory baseTokenSymbol,\n        string memory poolAddress\n    ) private pure returns (string memory) {\n        return\n            string(\n                abi.encodePacked(\n                    'This NFT represents a liquidity position in a AstraDEX CL ',\n                    quoteTokenSymbol,\n                    '-',\n                    baseTokenSymbol,\n                    ' pool. ',\n                    'The owner of this NFT can modify or redeem the position.\\\\n',\n                    '\\\\nPool Address: ',\n                    poolAddress,\n                    '\\\\n',\n                    quoteTokenSymbol\n                )\n            );\n    }\n\n    function generateDescriptionPartTwo(\n        string memory tokenId,\n        string memory baseTokenSymbol,\n        string memory quoteTokenAddress,\n        string memory baseTokenAddress,\n        string memory feeTier\n    ) private pure returns (string memory) {\n        return\n            string(\n                abi.encodePacked(\n                    ' Address: ',\n                    quoteTokenAddress,\n                    '\\\\n',\n                    baseTokenSymbol,\n                    ' Address: ',\n                    baseTokenAddress,\n                    '\\\\nFee Tier: ',\n                    feeTier,\n                    '\\\\nToken ID: ',\n                    tokenId,\n                    '\\\\n\\\\n',\n                    unicode'⚠️ DISCLAIMER: Due diligence is imperative when assessing this NFT. Make sure token addresses match the expected tokens, as token symbols may be imitated.'\n                )\n            );\n    }\n\n    function generateName(\n        ConstructTokenURIParams memory params,\n        string memory feeTier\n    ) private pure returns (string memory) {\n        return\n            string(\n                abi.encodePacked(\n                    'Astra - ',\n                    feeTier,\n                    ' - ',\n                    escapeQuotes(params.quoteTokenSymbol),\n                    '/',\n                    escapeQuotes(params.baseTokenSymbol),\n                    ' - ',\n                    tickToDecimalString(\n                        !params.flipRatio ? params.tickLower : params.tickUpper,\n                        params.tickSpacing,\n                        params.baseTokenDecimals,\n                        params.quoteTokenDecimals,\n                        params.flipRatio\n                    ),\n                    '<>',\n                    tickToDecimalString(\n                        !params.flipRatio ? params.tickUpper : params.tickLower,\n                        params.tickSpacing,\n                        params.baseTokenDecimals,\n                        params.quoteTokenDecimals,\n                        params.flipRatio\n                    )\n                )\n            );\n    }\n\n    struct DecimalStringParams {\n        // significant figures of decimal\n        uint256 sigfigs;\n        // length of decimal string\n        uint8 bufferLength;\n        // ending index for significant figures (funtion works backwards when copying sigfigs)\n        uint8 sigfigIndex;\n        // index of decimal place (0 if no decimal)\n        uint8 decimalIndex;\n        // start index for trailing/leading 0's for very small/large numbers\n        uint8 zerosStartIndex;\n        // end index for trailing/leading 0's for very small/large numbers\n        uint8 zerosEndIndex;\n        // true if decimal number is less than one\n        bool isLessThanOne;\n        // true if string should include \"%\"\n        bool isPercent;\n    }\n\n    function generateDecimalString(DecimalStringParams memory params) private pure returns (string memory) {\n        bytes memory buffer = new bytes(params.bufferLength);\n        if (params.isPercent) {\n            buffer[buffer.length - 1] = '%';\n        }\n        if (params.isLessThanOne) {\n            buffer[0] = '0';\n            buffer[1] = '.';\n        }\n\n        // add leading/trailing 0's\n        for (uint256 zerosCursor = params.zerosStartIndex; zerosCursor < params.zerosEndIndex.add(1); zerosCursor++) {\n            buffer[zerosCursor] = bytes1(uint8(48));\n        }\n        // add sigfigs\n        while (params.sigfigs > 0) {\n            if (params.decimalIndex > 0 && params.sigfigIndex == params.decimalIndex) {\n                buffer[params.sigfigIndex--] = '.';\n            }\n            buffer[params.sigfigIndex--] = bytes1(uint8(uint256(48).add(params.sigfigs % 10)));\n            params.sigfigs /= 10;\n        }\n        return string(buffer);\n    }\n\n    function tickToDecimalString(\n        int24 tick,\n        int24 tickSpacing,\n        uint8 baseTokenDecimals,\n        uint8 quoteTokenDecimals,\n        bool flipRatio\n    ) internal pure returns (string memory) {\n        if (tick == (TickMath.MIN_TICK / tickSpacing) * tickSpacing) {\n            return !flipRatio ? 'MIN' : 'MAX';\n        } else if (tick == (TickMath.MAX_TICK / tickSpacing) * tickSpacing) {\n            return !flipRatio ? 'MAX' : 'MIN';\n        } else {\n            uint160 sqrtRatioX96 = TickMath.getSqrtRatioAtTick(tick);\n            if (flipRatio) {\n                sqrtRatioX96 = uint160(uint256(1 << 192).div(sqrtRatioX96));\n            }\n            return fixedPointToDecimalString(sqrtRatioX96, baseTokenDecimals, quoteTokenDecimals);\n        }\n    }\n\n    function sigfigsRounded(uint256 value, uint8 digits) private pure returns (uint256, bool) {\n        bool extraDigit;\n        if (digits > 5) {\n            value = value.div((10 ** (digits - 5)));\n        }\n        bool roundUp = value % 10 > 4;\n        value = value.div(10);\n        if (roundUp) {\n            value = value + 1;\n        }\n        // 99999 -> 100000 gives an extra sigfig\n        if (value == 100000) {\n            value /= 10;\n            extraDigit = true;\n        }\n        return (value, extraDigit);\n    }\n\n    function adjustForDecimalPrecision(\n        uint160 sqrtRatioX96,\n        uint8 baseTokenDecimals,\n        uint8 quoteTokenDecimals\n    ) private pure returns (uint256 adjustedSqrtRatioX96) {\n        uint256 difference = abs(int256(baseTokenDecimals).sub(int256(quoteTokenDecimals)));\n        if (difference > 0 && difference <= 18) {\n            if (baseTokenDecimals > quoteTokenDecimals) {\n                adjustedSqrtRatioX96 = sqrtRatioX96.mul(10 ** (difference.div(2)));\n                if (difference % 2 == 1) {\n                    adjustedSqrtRatioX96 = FullMath.mulDiv(adjustedSqrtRatioX96, sqrt10X128, 1 << 128);\n                }\n            } else {\n                adjustedSqrtRatioX96 = sqrtRatioX96.div(10 ** (difference.div(2)));\n                if (difference % 2 == 1) {\n                    adjustedSqrtRatioX96 = FullMath.mulDiv(adjustedSqrtRatioX96, 1 << 128, sqrt10X128);\n                }\n            }\n        } else {\n            adjustedSqrtRatioX96 = uint256(sqrtRatioX96);\n        }\n    }\n\n    function abs(int256 x) private pure returns (uint256) {\n        return uint256(x >= 0 ? x : -x);\n    }\n\n    // @notice Returns string that includes first 5 significant figures of a decimal number\n    // @param sqrtRatioX96 a sqrt price\n    function fixedPointToDecimalString(\n        uint160 sqrtRatioX96,\n        uint8 baseTokenDecimals,\n        uint8 quoteTokenDecimals\n    ) internal pure returns (string memory) {\n        uint256 adjustedSqrtRatioX96 = adjustForDecimalPrecision(sqrtRatioX96, baseTokenDecimals, quoteTokenDecimals);\n        uint256 value = FullMath.mulDiv(adjustedSqrtRatioX96, adjustedSqrtRatioX96, 1 << 64);\n\n        bool priceBelow1 = adjustedSqrtRatioX96 < 2 ** 96;\n        if (priceBelow1) {\n            // 10 ** 43 is precision needed to retreive 5 sigfigs of smallest possible price + 1 for rounding\n            value = FullMath.mulDiv(value, 10 ** 44, 1 << 128);\n        } else {\n            // leave precision for 4 decimal places + 1 place for rounding\n            value = FullMath.mulDiv(value, 10 ** 5, 1 << 128);\n        }\n\n        // get digit count\n        uint256 temp = value;\n        uint8 digits;\n        while (temp != 0) {\n            digits++;\n            temp /= 10;\n        }\n        // don't count extra digit kept for rounding\n        digits = digits - 1;\n\n        // address rounding\n        (uint256 sigfigs, bool extraDigit) = sigfigsRounded(value, digits);\n        if (extraDigit) {\n            digits++;\n        }\n\n        DecimalStringParams memory params;\n        if (priceBelow1) {\n            // 7 bytes ( \"0.\" and 5 sigfigs) + leading 0's bytes\n            params.bufferLength = uint8(uint8(7).add(uint8(43).sub(digits)));\n            params.zerosStartIndex = 2;\n            params.zerosEndIndex = uint8(uint256(43).sub(digits).add(1));\n            params.sigfigIndex = uint8(params.bufferLength.sub(1));\n        } else if (digits >= 9) {\n            // no decimal in price string\n            params.bufferLength = uint8(digits.sub(4));\n            params.zerosStartIndex = 5;\n            params.zerosEndIndex = uint8(params.bufferLength.sub(1));\n            params.sigfigIndex = 4;\n        } else {\n            // 5 sigfigs surround decimal\n            params.bufferLength = 6;\n            params.sigfigIndex = 5;\n            params.decimalIndex = uint8(digits.sub(5).add(1));\n        }\n        params.sigfigs = sigfigs;\n        params.isLessThanOne = priceBelow1;\n        params.isPercent = false;\n\n        return generateDecimalString(params);\n    }\n\n    // @notice Returns string as decimal percentage of fee amount.\n    // @param fee fee amount\n    function feeToPercentString(uint24 fee) internal pure returns (string memory) {\n        if (fee == 0) {\n            return '0%';\n        }\n        uint24 temp = fee;\n        uint256 digits;\n        uint8 numSigfigs;\n        while (temp != 0) {\n            if (numSigfigs > 0) {\n                // count all digits preceding least significant figure\n                numSigfigs++;\n            } else if (temp % 10 != 0) {\n                numSigfigs++;\n            }\n            digits++;\n            temp /= 10;\n        }\n\n        DecimalStringParams memory params;\n        uint256 nZeros;\n        if (digits >= 5) {\n            // if decimal > 1 (5th digit is the ones place)\n            uint256 decimalPlace = digits.sub(numSigfigs) >= 4 ? 0 : 1;\n            nZeros = digits.sub(5) < (numSigfigs.sub(1)) ? 0 : digits.sub(5).sub(numSigfigs.sub(1));\n            params.zerosStartIndex = numSigfigs;\n            params.zerosEndIndex = uint8(params.zerosStartIndex.add(nZeros).sub(1));\n            params.sigfigIndex = uint8(params.zerosStartIndex.sub(1).add(decimalPlace));\n            params.bufferLength = uint8(nZeros.add(numSigfigs.add(1)).add(decimalPlace));\n        } else {\n            // else if decimal < 1\n            nZeros = uint256(5).sub(digits);\n            params.zerosStartIndex = 2;\n            params.zerosEndIndex = uint8(nZeros.add(params.zerosStartIndex).sub(1));\n            params.bufferLength = uint8(nZeros.add(numSigfigs.add(2)));\n            params.sigfigIndex = uint8((params.bufferLength).sub(2));\n            params.isLessThanOne = true;\n        }\n        params.sigfigs = uint256(fee).div(10 ** (digits.sub(numSigfigs)));\n        params.isPercent = true;\n        params.decimalIndex = digits > 4 ? uint8(digits.sub(4)) : 0;\n\n        return generateDecimalString(params);\n    }\n\n    function addressToString(address addr) internal pure returns (string memory) {\n        return (uint256(addr)).toHexString(20);\n    }\n\n    function generateSVGImage(ConstructTokenURIParams memory params) internal pure returns (string memory svg) {\n        NFTSVG.SVGParams memory svgParams = NFTSVG.SVGParams({\n            quoteToken: addressToString(params.quoteTokenAddress),\n            baseToken: addressToString(params.baseTokenAddress),\n            poolAddress: params.poolAddress,\n            quoteTokenSymbol: params.quoteTokenSymbol,\n            baseTokenSymbol: params.baseTokenSymbol,\n            feeTier: feeToPercentString(params.fee),\n            tickLower: params.tickLower,\n            tickUpper: params.tickUpper,\n            tickSpacing: params.tickSpacing,\n            overRange: overRange(params.tickLower, params.tickUpper, params.tickCurrent),\n            tokenId: params.tokenId,\n            color0: tokenToColorHex(uint256(params.quoteTokenAddress), 136),\n            color1: tokenToColorHex(uint256(params.baseTokenAddress), 136),\n            color2: tokenToColorHex(uint256(params.quoteTokenAddress), 0),\n            color3: tokenToColorHex(uint256(params.baseTokenAddress), 0),\n            x1: scale(getCircleCoord(uint256(params.quoteTokenAddress), 16, params.tokenId), 0, 255, 16, 274),\n            y1: scale(getCircleCoord(uint256(params.baseTokenAddress), 16, params.tokenId), 0, 255, 100, 484),\n            x2: scale(getCircleCoord(uint256(params.quoteTokenAddress), 32, params.tokenId), 0, 255, 16, 274),\n            y2: scale(getCircleCoord(uint256(params.baseTokenAddress), 32, params.tokenId), 0, 255, 100, 484),\n            x3: scale(getCircleCoord(uint256(params.quoteTokenAddress), 48, params.tokenId), 0, 255, 16, 274),\n            y3: scale(getCircleCoord(uint256(params.baseTokenAddress), 48, params.tokenId), 0, 255, 100, 484)\n        });\n\n        return NFTSVG.generateSVG(svgParams);\n    }\n\n    function overRange(int24 tickLower, int24 tickUpper, int24 tickCurrent) private pure returns (int8) {\n        if (tickCurrent < tickLower) {\n            return -1;\n        } else if (tickCurrent > tickUpper) {\n            return 1;\n        } else {\n            return 0;\n        }\n    }\n\n    function scale(\n        uint256 n,\n        uint256 inMn,\n        uint256 inMx,\n        uint256 outMn,\n        uint256 outMx\n    ) private pure returns (string memory) {\n        return (n.sub(inMn).mul(outMx.sub(outMn)).div(inMx.sub(inMn)).add(outMn)).toString();\n    }\n\n    function tokenToColorHex(uint256 token, uint256 offset) internal pure returns (string memory str) {\n        return string((token >> offset).toHexStringNoPrefix(3));\n    }\n\n    function getCircleCoord(uint256 tokenAddress, uint256 offset, uint256 tokenId) internal pure returns (uint256) {\n        return (sliceTokenHex(tokenAddress, offset) * tokenId) % 255;\n    }\n\n    function sliceTokenHex(uint256 token, uint256 offset) internal pure returns (uint256) {\n        return uint256(uint8(token >> offset));\n    }\n}\n"},"contracts/libraries/NFTSVG.sol":{"content":"// SPDX-License-Identifier: GPL-2.0-or-later\npragma solidity >=0.7.6;\n\nimport '@openzeppelin/contracts/utils/Strings.sol';\n// TODO: change to import from @airdao/astra-cl-core\nimport '@airdao/astra-cl-core/contracts/libraries/BitMath.sol';\nimport 'base64-sol/base64.sol';\n\n/// @title NFTSVG\n/// @notice Provides a function for generating an SVG associated with a AstraDEX NFT\nlibrary NFTSVG {\n    using Strings for uint256;\n\n    string constant curve1 = 'M1 1C41 41 105 105 145 145';\n    string constant curve2 = 'M1 1C33 49 97 113 145 145';\n    string constant curve3 = 'M1 1C33 57 89 113 145 145';\n    string constant curve4 = 'M1 1C25 65 81 121 145 145';\n    string constant curve5 = 'M1 1C17 73 73 129 145 145';\n    string constant curve6 = 'M1 1C9 81 65 137 145 145';\n    string constant curve7 = 'M1 1C1 89 57.5 145 145 145';\n    string constant curve8 = 'M1 1C1 97 49 145 145 145';\n\n    struct SVGParams {\n        string quoteToken;\n        string baseToken;\n        address poolAddress;\n        string quoteTokenSymbol;\n        string baseTokenSymbol;\n        string feeTier;\n        int24 tickLower;\n        int24 tickUpper;\n        int24 tickSpacing;\n        int8 overRange;\n        uint256 tokenId;\n        string color0;\n        string color1;\n        string color2;\n        string color3;\n        string x1;\n        string y1;\n        string x2;\n        string y2;\n        string x3;\n        string y3;\n    }\n\n    function generateSVG(SVGParams memory params) internal pure returns (string memory svg) {\n        /*\n        address: \"0xe8ab59d3bcde16a29912de83a90eb39628cfc163\",\n        msg: \"Forged in SVG for Astra in 2024 by 0xe8ab59d3bcde16a29912de83a90eb39628cfc163\",\n        sig: \"0x2df0e99d9cbfec33a705d83f75666d98b22dea7c1af412c584f7d626d83f02875993df740dc87563b9c73378f8462426da572d7989de88079a382ad96c57b68d1b\",\n        version: \"2\"\n        */\n        return\n            string(\n                abi.encodePacked(\n                    generateSVGDefs(params),\n                    generateSVGBorderText(\n                        params.quoteToken,\n                        params.baseToken,\n                        params.quoteTokenSymbol,\n                        params.baseTokenSymbol\n                    ),\n                    generateSVGCardMantle(params.quoteTokenSymbol, params.baseTokenSymbol, params.feeTier),\n                    generageSvgCurve(params.tickLower, params.tickUpper, params.tickSpacing, params.overRange),\n                    generateSVGPositionDataAndLocationCurve(\n                        params.tokenId.toString(),\n                        params.tickLower,\n                        params.tickUpper\n                    ),\n                    generateSVGRareSparkle(params.tokenId, params.poolAddress),\n                    '</svg>'\n                )\n            );\n    }\n\n    function generateSVGDefs(SVGParams memory params) private pure returns (string memory svg) {\n        svg = string(\n            abi.encodePacked(\n                '<svg width=\"290\" height=\"500\" viewBox=\"0 0 290 500\" xmlns=\"http://www.w3.org/2000/svg\"',\n                \" xmlns:xlink='http://www.w3.org/1999/xlink'>\",\n                '<defs>',\n                '<filter id=\"f1\"><feImage result=\"p0\" xlink:href=\"data:image/svg+xml;base64,',\n                Base64.encode(\n                    bytes(\n                        abi.encodePacked(\n                            \"<svg width='290' height='500' viewBox='0 0 290 500' xmlns='http://www.w3.org/2000/svg'><rect width='290px' height='500px' fill='#\",\n                            params.color0,\n                            \"'/></svg>\"\n                        )\n                    )\n                ),\n                '\"/><feImage result=\"p1\" xlink:href=\"data:image/svg+xml;base64,',\n                Base64.encode(\n                    bytes(\n                        abi.encodePacked(\n                            \"<svg width='290' height='500' viewBox='0 0 290 500' xmlns='http://www.w3.org/2000/svg'><circle cx='\",\n                            params.x1,\n                            \"' cy='\",\n                            params.y1,\n                            \"' r='120px' fill='#\",\n                            params.color1,\n                            \"'/></svg>\"\n                        )\n                    )\n                ),\n                '\"/><feImage result=\"p2\" xlink:href=\"data:image/svg+xml;base64,',\n                Base64.encode(\n                    bytes(\n                        abi.encodePacked(\n                            \"<svg width='290' height='500' viewBox='0 0 290 500' xmlns='http://www.w3.org/2000/svg'><circle cx='\",\n                            params.x2,\n                            \"' cy='\",\n                            params.y2,\n                            \"' r='120px' fill='#\",\n                            params.color2,\n                            \"'/></svg>\"\n                        )\n                    )\n                ),\n                '\" />',\n                '<feImage result=\"p3\" xlink:href=\"data:image/svg+xml;base64,',\n                Base64.encode(\n                    bytes(\n                        abi.encodePacked(\n                            \"<svg width='290' height='500' viewBox='0 0 290 500' xmlns='http://www.w3.org/2000/svg'><circle cx='\",\n                            params.x3,\n                            \"' cy='\",\n                            params.y3,\n                            \"' r='100px' fill='#\",\n                            params.color3,\n                            \"'/></svg>\"\n                        )\n                    )\n                ),\n                '\" /><feBlend mode=\"overlay\" in=\"p0\" in2=\"p1\" /><feBlend mode=\"exclusion\" in2=\"p2\" /><feBlend mode=\"overlay\" in2=\"p3\" result=\"blendOut\" /><feGaussianBlur ',\n                'in=\"blendOut\" stdDeviation=\"42\" /></filter> <clipPath id=\"corners\"><rect width=\"290\" height=\"500\" rx=\"42\" ry=\"42\" /></clipPath>',\n                '<path id=\"text-path-a\" d=\"M40 12 H250 A28 28 0 0 1 278 40 V460 A28 28 0 0 1 250 488 H40 A28 28 0 0 1 12 460 V40 A28 28 0 0 1 40 12 z\" />',\n                '<path id=\"minimap\" d=\"M234 444C234 457.949 242.21 463 253 463\" />',\n                '<filter id=\"top-region-blur\"><feGaussianBlur in=\"SourceGraphic\" stdDeviation=\"24\" /></filter>',\n                '<linearGradient id=\"grad-up\" x1=\"1\" x2=\"0\" y1=\"1\" y2=\"0\"><stop offset=\"0.0\" stop-color=\"white\" stop-opacity=\"1\" />',\n                '<stop offset=\".9\" stop-color=\"white\" stop-opacity=\"0\" /></linearGradient>',\n                '<linearGradient id=\"grad-down\" x1=\"0\" x2=\"1\" y1=\"0\" y2=\"1\"><stop offset=\"0.0\" stop-color=\"white\" stop-opacity=\"1\" /><stop offset=\"0.9\" stop-color=\"white\" stop-opacity=\"0\" /></linearGradient>',\n                '<mask id=\"fade-up\" maskContentUnits=\"objectBoundingBox\"><rect width=\"1\" height=\"1\" fill=\"url(#grad-up)\" /></mask>',\n                '<mask id=\"fade-down\" maskContentUnits=\"objectBoundingBox\"><rect width=\"1\" height=\"1\" fill=\"url(#grad-down)\" /></mask>',\n                '<mask id=\"none\" maskContentUnits=\"objectBoundingBox\"><rect width=\"1\" height=\"1\" fill=\"white\" /></mask>',\n                '<linearGradient id=\"grad-symbol\"><stop offset=\"0.7\" stop-color=\"white\" stop-opacity=\"1\" /><stop offset=\".95\" stop-color=\"white\" stop-opacity=\"0\" /></linearGradient>',\n                '<mask id=\"fade-symbol\" maskContentUnits=\"userSpaceOnUse\"><rect width=\"290px\" height=\"200px\" fill=\"url(#grad-symbol)\" /></mask></defs>',\n                '<g clip-path=\"url(#corners)\">',\n                '<rect fill=\"',\n                params.color0,\n                '\" x=\"0px\" y=\"0px\" width=\"290px\" height=\"500px\" />',\n                '<rect style=\"filter: url(#f1)\" x=\"0px\" y=\"0px\" width=\"290px\" height=\"500px\" />',\n                ' <g style=\"filter:url(#top-region-blur); transform:scale(1.5); transform-origin:center top;\">',\n                '<rect fill=\"none\" x=\"0px\" y=\"0px\" width=\"290px\" height=\"500px\" />',\n                '<ellipse cx=\"50%\" cy=\"0px\" rx=\"180px\" ry=\"120px\" fill=\"#000\" opacity=\"0.85\" /></g>',\n                '<rect x=\"0\" y=\"0\" width=\"290\" height=\"500\" rx=\"42\" ry=\"42\" fill=\"rgba(0,0,0,0)\" stroke=\"rgba(255,255,255,0.2)\" /></g>'\n            )\n        );\n    }\n\n    function generateSVGBorderText(\n        string memory quoteToken,\n        string memory baseToken,\n        string memory quoteTokenSymbol,\n        string memory baseTokenSymbol\n    ) private pure returns (string memory svg) {\n        svg = string(\n            abi.encodePacked(\n                '<text text-rendering=\"optimizeSpeed\">',\n                '<textPath startOffset=\"-100%\" fill=\"white\" font-family=\"\\'Courier New\\', monospace\" font-size=\"10px\" xlink:href=\"#text-path-a\">',\n                baseToken,\n                unicode' • ',\n                baseTokenSymbol,\n                ' <animate additive=\"sum\" attributeName=\"startOffset\" from=\"0%\" to=\"100%\" begin=\"0s\" dur=\"30s\" repeatCount=\"indefinite\" />',\n                '</textPath> <textPath startOffset=\"0%\" fill=\"white\" font-family=\"\\'Courier New\\', monospace\" font-size=\"10px\" xlink:href=\"#text-path-a\">',\n                baseToken,\n                unicode' • ',\n                baseTokenSymbol,\n                ' <animate additive=\"sum\" attributeName=\"startOffset\" from=\"0%\" to=\"100%\" begin=\"0s\" dur=\"30s\" repeatCount=\"indefinite\" /> </textPath>',\n                '<textPath startOffset=\"50%\" fill=\"white\" font-family=\"\\'Courier New\\', monospace\" font-size=\"10px\" xlink:href=\"#text-path-a\">',\n                quoteToken,\n                unicode' • ',\n                quoteTokenSymbol,\n                ' <animate additive=\"sum\" attributeName=\"startOffset\" from=\"0%\" to=\"100%\" begin=\"0s\" dur=\"30s\"',\n                ' repeatCount=\"indefinite\" /></textPath><textPath startOffset=\"-50%\" fill=\"white\" font-family=\"\\'Courier New\\', monospace\" font-size=\"10px\" xlink:href=\"#text-path-a\">',\n                quoteToken,\n                unicode' • ',\n                quoteTokenSymbol,\n                ' <animate additive=\"sum\" attributeName=\"startOffset\" from=\"0%\" to=\"100%\" begin=\"0s\" dur=\"30s\" repeatCount=\"indefinite\" /></textPath></text>'\n            )\n        );\n    }\n\n    function generateSVGCardMantle(\n        string memory quoteTokenSymbol,\n        string memory baseTokenSymbol,\n        string memory feeTier\n    ) private pure returns (string memory svg) {\n        svg = string(\n            abi.encodePacked(\n                '<g mask=\"url(#fade-symbol)\"><rect fill=\"none\" x=\"0px\" y=\"0px\" width=\"290px\" height=\"200px\" /> <text y=\"70px\" x=\"32px\" fill=\"white\" font-family=\"\\'Courier New\\', monospace\" font-weight=\"200\" font-size=\"36px\">',\n                quoteTokenSymbol,\n                '/',\n                baseTokenSymbol,\n                '</text><text y=\"115px\" x=\"32px\" fill=\"white\" font-family=\"\\'Courier New\\', monospace\" font-weight=\"200\" font-size=\"36px\">',\n                feeTier,\n                '</text></g>',\n                '<rect x=\"16\" y=\"16\" width=\"258\" height=\"468\" rx=\"26\" ry=\"26\" fill=\"rgba(0,0,0,0)\" stroke=\"rgba(255,255,255,0.2)\" />'\n            )\n        );\n    }\n\n    function generageSvgCurve(\n        int24 tickLower,\n        int24 tickUpper,\n        int24 tickSpacing,\n        int8 overRange\n    ) private pure returns (string memory svg) {\n        string memory fade = overRange == 1\n            ? '#fade-up'\n            : overRange == -1\n                ? '#fade-down'\n                : '#none';\n        string memory curve = getCurve(tickLower, tickUpper, tickSpacing);\n        svg = string(\n            abi.encodePacked(\n                '<g mask=\"url(',\n                fade,\n                ')\"',\n                ' style=\"transform:translate(72px,189px)\">'\n                '<rect x=\"-16px\" y=\"-16px\" width=\"180px\" height=\"180px\" fill=\"none\" />'\n                '<path d=\"',\n                curve,\n                '\" stroke=\"rgba(0,0,0,0.3)\" stroke-width=\"32px\" fill=\"none\" stroke-linecap=\"round\" />',\n                '</g><g mask=\"url(',\n                fade,\n                ')\"',\n                ' style=\"transform:translate(72px,189px)\">',\n                '<rect x=\"-16px\" y=\"-16px\" width=\"180px\" height=\"180px\" fill=\"none\" />',\n                '<path d=\"',\n                curve,\n                '\" stroke=\"rgba(255,255,255,1)\" fill=\"none\" stroke-linecap=\"round\" /></g>',\n                generateSVGCurveCircle(overRange)\n            )\n        );\n    }\n\n    function getCurve(int24 tickLower, int24 tickUpper, int24 tickSpacing) internal pure returns (string memory curve) {\n        int24 tickRange = (tickUpper - tickLower) / tickSpacing;\n        if (tickRange <= 4) {\n            curve = curve1;\n        } else if (tickRange <= 8) {\n            curve = curve2;\n        } else if (tickRange <= 16) {\n            curve = curve3;\n        } else if (tickRange <= 32) {\n            curve = curve4;\n        } else if (tickRange <= 64) {\n            curve = curve5;\n        } else if (tickRange <= 128) {\n            curve = curve6;\n        } else if (tickRange <= 256) {\n            curve = curve7;\n        } else {\n            curve = curve8;\n        }\n    }\n\n    function generateSVGCurveCircle(int8 overRange) internal pure returns (string memory svg) {\n        string memory curvex1 = '73';\n        string memory curvey1 = '190';\n        string memory curvex2 = '217';\n        string memory curvey2 = '334';\n        if (overRange == 1 || overRange == -1) {\n            svg = string(\n                abi.encodePacked(\n                    '<circle cx=\"',\n                    overRange == -1 ? curvex1 : curvex2,\n                    'px\" cy=\"',\n                    overRange == -1 ? curvey1 : curvey2,\n                    'px\" r=\"4px\" fill=\"white\" /><circle cx=\"',\n                    overRange == -1 ? curvex1 : curvex2,\n                    'px\" cy=\"',\n                    overRange == -1 ? curvey1 : curvey2,\n                    'px\" r=\"24px\" fill=\"none\" stroke=\"white\" />'\n                )\n            );\n        } else {\n            svg = string(\n                abi.encodePacked(\n                    '<circle cx=\"',\n                    curvex1,\n                    'px\" cy=\"',\n                    curvey1,\n                    'px\" r=\"4px\" fill=\"white\" />',\n                    '<circle cx=\"',\n                    curvex2,\n                    'px\" cy=\"',\n                    curvey2,\n                    'px\" r=\"4px\" fill=\"white\" />'\n                )\n            );\n        }\n    }\n\n    function generateSVGPositionDataAndLocationCurve(\n        string memory tokenId,\n        int24 tickLower,\n        int24 tickUpper\n    ) private pure returns (string memory svg) {\n        string memory tickLowerStr = tickToString(tickLower);\n        string memory tickUpperStr = tickToString(tickUpper);\n        uint256 str1length = bytes(tokenId).length + 4;\n        uint256 str2length = bytes(tickLowerStr).length + 10;\n        uint256 str3length = bytes(tickUpperStr).length + 10;\n        (string memory xCoord, string memory yCoord) = rangeLocation(tickLower, tickUpper);\n        svg = string(\n            abi.encodePacked(\n                ' <g style=\"transform:translate(29px, 384px)\">',\n                '<rect width=\"',\n                uint256(7 * (str1length + 4)).toString(),\n                'px\" height=\"26px\" rx=\"8px\" ry=\"8px\" fill=\"rgba(0,0,0,0.6)\" />',\n                '<text x=\"12px\" y=\"17px\" font-family=\"\\'Courier New\\', monospace\" font-size=\"12px\" fill=\"white\"><tspan fill=\"rgba(255,255,255,0.6)\">ID: </tspan>',\n                tokenId,\n                '</text></g>',\n                ' <g style=\"transform:translate(29px, 414px)\">',\n                '<rect width=\"',\n                uint256(7 * (str2length + 4)).toString(),\n                'px\" height=\"26px\" rx=\"8px\" ry=\"8px\" fill=\"rgba(0,0,0,0.6)\" />',\n                '<text x=\"12px\" y=\"17px\" font-family=\"\\'Courier New\\', monospace\" font-size=\"12px\" fill=\"white\"><tspan fill=\"rgba(255,255,255,0.6)\">Min Tick: </tspan>',\n                tickLowerStr,\n                '</text></g>',\n                ' <g style=\"transform:translate(29px, 444px)\">',\n                '<rect width=\"',\n                uint256(7 * (str3length + 4)).toString(),\n                'px\" height=\"26px\" rx=\"8px\" ry=\"8px\" fill=\"rgba(0,0,0,0.6)\" />',\n                '<text x=\"12px\" y=\"17px\" font-family=\"\\'Courier New\\', monospace\" font-size=\"12px\" fill=\"white\"><tspan fill=\"rgba(255,255,255,0.6)\">Max Tick: </tspan>',\n                tickUpperStr,\n                '</text></g>'\n                '<g style=\"transform:translate(226px, 433px)\">',\n                '<rect width=\"36px\" height=\"36px\" rx=\"8px\" ry=\"8px\" fill=\"none\" stroke=\"rgba(255,255,255,0.2)\" />',\n                '<path stroke-linecap=\"round\" d=\"M8 9C8.00004 22.9494 16.2099 28 27 28\" fill=\"none\" stroke=\"white\" />',\n                '<circle style=\"transform:translate3d(',\n                xCoord,\n                'px, ',\n                yCoord,\n                'px, 0px)\" cx=\"0px\" cy=\"0px\" r=\"4px\" fill=\"white\"/></g>'\n            )\n        );\n    }\n\n    function tickToString(int24 tick) private pure returns (string memory) {\n        string memory sign = '';\n        if (tick < 0) {\n            tick = tick * -1;\n            sign = '-';\n        }\n        return string(abi.encodePacked(sign, uint256(tick).toString()));\n    }\n\n    function rangeLocation(int24 tickLower, int24 tickUpper) internal pure returns (string memory, string memory) {\n        int24 midPoint = (tickLower + tickUpper) / 2;\n        if (midPoint < -125_000) {\n            return ('8', '7');\n        } else if (midPoint < -75_000) {\n            return ('8', '10.5');\n        } else if (midPoint < -25_000) {\n            return ('8', '14.25');\n        } else if (midPoint < -5_000) {\n            return ('10', '18');\n        } else if (midPoint < 0) {\n            return ('11', '21');\n        } else if (midPoint < 5_000) {\n            return ('13', '23');\n        } else if (midPoint < 25_000) {\n            return ('15', '25');\n        } else if (midPoint < 75_000) {\n            return ('18', '26');\n        } else if (midPoint < 125_000) {\n            return ('21', '27');\n        } else {\n            return ('24', '27');\n        }\n    }\n\n    function generateSVGRareSparkle(uint256 tokenId, address poolAddress) private pure returns (string memory svg) {\n        if (isRare(tokenId, poolAddress)) {\n            svg = string(\n                abi.encodePacked(\n                    '<g style=\"transform:translate(226px, 392px)\"><rect width=\"36px\" height=\"36px\" rx=\"8px\" ry=\"8px\" fill=\"none\" stroke=\"rgba(255,255,255,0.2)\" />',\n                    '<g><path style=\"transform:translate(6px,6px)\" d=\"M12 0L12.6522 9.56587L18 1.6077L13.7819 10.2181L22.3923 6L14.4341 ',\n                    '11.3478L24 12L14.4341 12.6522L22.3923 18L13.7819 13.7819L18 22.3923L12.6522 14.4341L12 24L11.3478 14.4341L6 22.39',\n                    '23L10.2181 13.7819L1.6077 18L9.56587 12.6522L0 12L9.56587 11.3478L1.6077 6L10.2181 10.2181L6 1.6077L11.3478 9.56587L12 0Z\" fill=\"white\" />',\n                    '<animateTransform attributeName=\"transform\" type=\"rotate\" from=\"0 18 18\" to=\"360 18 18\" dur=\"10s\" repeatCount=\"indefinite\"/></g></g>'\n                )\n            );\n        } else {\n            svg = '';\n        }\n    }\n\n    function isRare(uint256 tokenId, address poolAddress) internal pure returns (bool) {\n        bytes32 h = keccak256(abi.encodePacked(tokenId, poolAddress));\n        return uint256(h) < type(uint256).max / (1 + BitMath.mostSignificantBit(tokenId) * 2);\n    }\n}\n"},"contracts/test/NFTDescriptorTest.sol":{"content":"// SPDX-License-Identifier: UNLICENSED\npragma solidity =0.7.6;\npragma abicoder v2;\n\nimport '../libraries/NFTDescriptor.sol';\nimport '../libraries/NFTSVG.sol';\nimport '../libraries/HexStrings.sol';\n\ncontract NFTDescriptorTest {\n    using HexStrings for uint256;\n\n    function constructTokenURI(\n        NFTDescriptor.ConstructTokenURIParams calldata params\n    ) public pure returns (string memory) {\n        return NFTDescriptor.constructTokenURI(params);\n    }\n\n    function getGasCostOfConstructTokenURI(\n        NFTDescriptor.ConstructTokenURIParams calldata params\n    ) public view returns (uint256) {\n        uint256 gasBefore = gasleft();\n        NFTDescriptor.constructTokenURI(params);\n        return gasBefore - gasleft();\n    }\n\n    function tickToDecimalString(\n        int24 tick,\n        int24 tickSpacing,\n        uint8 token0Decimals,\n        uint8 token1Decimals,\n        bool flipRatio\n    ) public pure returns (string memory) {\n        return NFTDescriptor.tickToDecimalString(tick, tickSpacing, token0Decimals, token1Decimals, flipRatio);\n    }\n\n    function fixedPointToDecimalString(\n        uint160 sqrtRatioX96,\n        uint8 token0Decimals,\n        uint8 token1Decimals\n    ) public pure returns (string memory) {\n        return NFTDescriptor.fixedPointToDecimalString(sqrtRatioX96, token0Decimals, token1Decimals);\n    }\n\n    function feeToPercentString(uint24 fee) public pure returns (string memory) {\n        return NFTDescriptor.feeToPercentString(fee);\n    }\n\n    function addressToString(address _address) public pure returns (string memory) {\n        return NFTDescriptor.addressToString(_address);\n    }\n\n    function generateSVGImage(NFTDescriptor.ConstructTokenURIParams memory params) public pure returns (string memory) {\n        return NFTDescriptor.generateSVGImage(params);\n    }\n\n    function tokenToColorHex(address token, uint256 offset) public pure returns (string memory) {\n        return NFTDescriptor.tokenToColorHex(uint256(token), offset);\n    }\n\n    function sliceTokenHex(address token, uint256 offset) public pure returns (uint256) {\n        return NFTDescriptor.sliceTokenHex(uint256(token), offset);\n    }\n\n    function rangeLocation(int24 tickLower, int24 tickUpper) public pure returns (string memory, string memory) {\n        return NFTSVG.rangeLocation(tickLower, tickUpper);\n    }\n\n    function isRare(uint256 tokenId, address poolAddress) public pure returns (bool) {\n        return NFTSVG.isRare(tokenId, poolAddress);\n    }\n}\n"}},"settings":{"evmVersion":"istanbul","optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"none"},"outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"],"":["ast"]}}}},"output":{"errors":[{"component":"general","errorCode":"3420","formattedMessage":"base64-sol/base64.sol: Warning: Source file does not specify required compiler version! Consider adding \"pragma solidity ^0.7.6;\"\n","message":"Source file does not specify required compiler version! Consider adding \"pragma solidity ^0.7.6;\"","severity":"warning","sourceLocation":{"end":-1,"file":"base64-sol/base64.sol","start":-1},"type":"Warning"}],"sources":{"@airdao/astra-cl-core/contracts/interfaces/IAstraCLPool.sol":{"ast":{"absolutePath":"@airdao/astra-cl-core/contracts/interfaces/IAstraCLPool.sol","exportedSymbols":{"IAstraCLPool":[27],"IAstraCLPoolActions":[123],"IAstraCLPoolDerivedState":[154],"IAstraCLPoolEvents":[273],"IAstraCLPoolImmutables":[313],"IAstraCLPoolOwnerActions":[339],"IAstraCLPoolState":[447]},"id":28,"license":"GPL-2.0-or-later","nodeType":"SourceUnit","nodes":[{"id":1,"literals":["solidity",">=","0.5",".0"],"nodeType":"PragmaDirective","src":"45:24:0"},{"absolutePath":"@airdao/astra-cl-core/contracts/interfaces/pool/IAstraCLPoolActions.sol","file":"./pool/IAstraCLPoolActions.sol","id":3,"nodeType":"ImportDirective","scope":28,"sourceUnit":124,"src":"71:67:0","symbolAliases":[{"foreign":{"id":2,"name":"IAstraCLPoolActions","nodeType":"Identifier","overloadedDeclarations":[],"src":"79:19:0","typeDescriptions":{}}}],"unitAlias":""},{"absolutePath":"@airdao/astra-cl-core/contracts/interfaces/pool/IAstraCLPoolDerivedState.sol","file":"./pool/IAstraCLPoolDerivedState.sol","id":5,"nodeType":"ImportDirective","scope":28,"sourceUnit":155,"src":"139:77:0","symbolAliases":[{"foreign":{"id":4,"name":"IAstraCLPoolDerivedState","nodeType":"Identifier","overloadedDeclarations":[],"src":"147:24:0","typeDescriptions":{}}}],"unitAlias":""},{"absolutePath":"@airdao/astra-cl-core/contracts/interfaces/pool/IAstraCLPoolEvents.sol","file":"./pool/IAstraCLPoolEvents.sol","id":7,"nodeType":"ImportDirective","scope":28,"sourceUnit":274,"src":"217:65:0","symbolAliases":[{"foreign":{"id":6,"name":"IAstraCLPoolEvents","nodeType":"Identifier","overloadedDeclarations":[],"src":"225:18:0","typeDescriptions":{}}}],"unitAlias":""},{"absolutePath":"@airdao/astra-cl-core/contracts/interfaces/pool/IAstraCLPoolImmutables.sol","file":"./pool/IAstraCLPoolImmutables.sol","id":9,"nodeType":"ImportDirective","scope":28,"sourceUnit":314,"src":"283:73:0","symbolAliases":[{"foreign":{"id":8,"name":"IAstraCLPoolImmutables","nodeType":"Identifier","overloadedDeclarations":[],"src":"291:22:0","typeDescriptions":{}}}],"unitAlias":""},{"absolutePath":"@airdao/astra-cl-core/contracts/interfaces/pool/IAstraCLPoolOwnerActions.sol","file":"./pool/IAstraCLPoolOwnerActions.sol","id":11,"nodeType":"ImportDirective","scope":28,"sourceUnit":340,"src":"357:77:0","symbolAliases":[{"foreign":{"id":10,"name":"IAstraCLPoolOwnerActions","nodeType":"Identifier","overloadedDeclarations":[],"src":"365:24:0","typeDescriptions":{}}}],"unitAlias":""},{"absolutePath":"@airdao/astra-cl-core/contracts/interfaces/pool/IAstraCLPoolState.sol","file":"./pool/IAstraCLPoolState.sol","id":13,"nodeType":"ImportDirective","scope":28,"sourceUnit":448,"src":"435:63:0","symbolAliases":[{"foreign":{"id":12,"name":"IAstraCLPoolState","nodeType":"Identifier","overloadedDeclarations":[],"src":"443:17:0","typeDescriptions":{}}}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":15,"name":"IAstraCLPoolImmutables","nodeType":"UserDefinedTypeName","referencedDeclaration":313,"src":"792:22:0","typeDescriptions":{"typeIdentifier":"t_contract$_IAstraCLPoolImmutables_$313","typeString":"contract IAstraCLPoolImmutables"}},"id":16,"nodeType":"InheritanceSpecifier","src":"792:22:0"},{"baseName":{"id":17,"name":"IAstraCLPoolState","nodeType":"UserDefinedTypeName","referencedDeclaration":447,"src":"820:17:0","typeDescriptions":{"typeIdentifier":"t_contract$_IAstraCLPoolState_$447","typeString":"contract IAstraCLPoolState"}},"id":18,"nodeType":"InheritanceSpecifier","src":"820:17:0"},{"baseName":{"id":19,"name":"IAstraCLPoolDerivedState","nodeType":"UserDefinedTypeName","referencedDeclaration":154,"src":"843:24:0","typeDescriptions":{"typeIdentifier":"t_contract$_IAstraCLPoolDerivedState_$154","typeString":"contract IAstraCLPoolDerivedState"}},"id":20,"nodeType":"InheritanceSpecifier","src":"843:24:0"},{"baseName":{"id":21,"name":"IAstraCLPoolActions","nodeType":"UserDefinedTypeName","referencedDeclaration":123,"src":"873:19:0","typeDescriptions":{"typeIdentifier":"t_contract$_IAstraCLPoolActions_$123","typeString":"contract IAstraCLPoolActions"}},"id":22,"nodeType":"InheritanceSpecifier","src":"873:19:0"},{"baseName":{"id":23,"name":"IAstraCLPoolOwnerActions","nodeType":"UserDefinedTypeName","referencedDeclaration":339,"src":"898:24:0","typeDescriptions":{"typeIdentifier":"t_contract$_IAstraCLPoolOwnerActions_$339","typeString":"contract IAstraCLPoolOwnerActions"}},"id":24,"nodeType":"InheritanceSpecifier","src":"898:24:0"},{"baseName":{"id":25,"name":"IAstraCLPoolEvents","nodeType":"UserDefinedTypeName","referencedDeclaration":273,"src":"928:18:0","typeDescriptions":{"typeIdentifier":"t_contract$_IAstraCLPoolEvents_$273","typeString":"contract IAstraCLPoolEvents"}},"id":26,"nodeType":"InheritanceSpecifier","src":"928:18:0"}],"contractDependencies":[123,154,273,313,339,447],"contractKind":"interface","documentation":{"id":14,"nodeType":"StructuredDocumentation","src":"500:262:0","text":"@title The interface for a Astra CL Pool\n @notice An Astra pool facilitates swapping and automated market making between any two assets that strictly conform\n to the ERC20 specification\n @dev The pool interface is broken up into many smaller pieces"},"fullyImplemented":false,"id":27,"linearizedBaseContracts":[27,273,339,123,154,447,313],"name":"IAstraCLPool","nodeType":"ContractDefinition","nodes":[],"scope":28,"src":"762:187:0"}],"src":"45:905:0"},"id":0},"@airdao/astra-cl-core/contracts/interfaces/pool/IAstraCLPoolActions.sol":{"ast":{"absolutePath":"@airdao/astra-cl-core/contracts/interfaces/pool/IAstraCLPoolActions.sol","exportedSymbols":{"IAstraCLPoolActions":[123]},"id":124,"license":"GPL-2.0-or-later","nodeType":"SourceUnit","nodes":[{"id":29,"literals":["solidity",">=","0.5",".0"],"nodeType":"PragmaDirective","src":"45:24:1"},{"abstract":false,"baseContracts":[],"contractDependencies":[],"contractKind":"interface","documentation":{"id":30,"nodeType":"StructuredDocumentation","src":"71:102:1","text":"@title Permissionless pool actions\n @notice Contains pool methods that can be called by anyone"},"fullyImplemented":false,"id":123,"linearizedBaseContracts":[123],"name":"IAstraCLPoolActions","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":31,"nodeType":"StructuredDocumentation","src":"209:206:1","text":"@notice Sets the initial price for the pool\n @dev Price is represented as a sqrt(amountToken1/amountToken0) Q64.96 value\n @param sqrtPriceX96 the initial sqrt price of the pool as a Q64.96"},"functionSelector":"f637731d","id":36,"implemented":false,"kind":"function","modifiers":[],"name":"initialize","nodeType":"FunctionDefinition","parameters":{"id":34,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33,"mutability":"mutable","name":"sqrtPriceX96","nodeType":"VariableDeclaration","scope":36,"src":"440:20:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"},"typeName":{"id":32,"name":"uint160","nodeType":"ElementaryTypeName","src":"440:7:1","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},"visibility":"internal"}],"src":"439:22:1"},"returnParameters":{"id":35,"nodeType":"ParameterList","parameters":[],"src":"470:0:1"},"scope":123,"src":"420:51:1","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":37,"nodeType":"StructuredDocumentation","src":"477:1029:1","text":"@notice Adds liquidity for the given recipient/tickLower/tickUpper position\n @dev The caller of this method receives a callback in the form of IAstraCLMintCallback.sol#astraCLMintCallback\n in which they must pay any token0 or token1 owed for the liquidity. The amount of token0/token1 due depends\n on tickLower, tickUpper, the amount of liquidity, and the current price.\n @param recipient The address for which the liquidity will be created\n @param tickLower The lower tick of the position in which to add liquidity\n @param tickUpper The upper tick of the position in which to add liquidity\n @param amount The amount of liquidity to mint\n @param data Any data that should be passed through to the callback\n @return amount0 The amount of token0 that was paid to mint the given amount of liquidity. Matches the value in the callback\n @return amount1 The amount of token1 that was paid to mint the given amount of liquidity. Matches the value in the callback"},"functionSelector":"3c8a7d8d","id":54,"implemented":false,"kind":"function","modifiers":[],"name":"mint","nodeType":"FunctionDefinition","parameters":{"id":48,"nodeType":"ParameterList","parameters":[{"constant":false,"id":39,"mutability":"mutable","name":"recipient","nodeType":"VariableDeclaration","scope":54,"src":"1534:17:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":38,"name":"address","nodeType":"ElementaryTypeName","src":"1534:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":41,"mutability":"mutable","name":"tickLower","nodeType":"VariableDeclaration","scope":54,"src":"1561:15:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"},"typeName":{"id":40,"name":"int24","nodeType":"ElementaryTypeName","src":"1561:5:1","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"visibility":"internal"},{"constant":false,"id":43,"mutability":"mutable","name":"tickUpper","nodeType":"VariableDeclaration","scope":54,"src":"1586:15:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"},"typeName":{"id":42,"name":"int24","nodeType":"ElementaryTypeName","src":"1586:5:1","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"visibility":"internal"},{"constant":false,"id":45,"mutability":"mutable","name":"amount","nodeType":"VariableDeclaration","scope":54,"src":"1611:14:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":44,"name":"uint128","nodeType":"ElementaryTypeName","src":"1611:7:1","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":47,"mutability":"mutable","name":"data","nodeType":"VariableDeclaration","scope":54,"src":"1635:19:1","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":46,"name":"bytes","nodeType":"ElementaryTypeName","src":"1635:5:1","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1524:136:1"},"returnParameters":{"id":53,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50,"mutability":"mutable","name":"amount0","nodeType":"VariableDeclaration","scope":54,"src":"1679:15:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":49,"name":"uint256","nodeType":"ElementaryTypeName","src":"1679:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":52,"mutability":"mutable","name":"amount1","nodeType":"VariableDeclaration","scope":54,"src":"1696:15:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":51,"name":"uint256","nodeType":"ElementaryTypeName","src":"1696:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1678:34:1"},"scope":123,"src":"1511:202:1","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":55,"nodeType":"StructuredDocumentation","src":"1719:1053:1","text":"@notice Collects tokens owed to a position\n @dev Does not recompute fees earned, which must be done either via mint or burn of any amount of liquidity.\n Collect must be called by the position owner. To withdraw only token0 or only token1, amount0Requested or\n amount1Requested may be set to zero. To withdraw all tokens owed, caller may pass any value greater than the\n actual tokens owed, e.g. type(uint128).max. Tokens owed may be from accumulated swap fees or burned liquidity.\n @param recipient The address which should receive the fees collected\n @param tickLower The lower tick of the position for which to collect fees\n @param tickUpper The upper tick of the position for which to collect fees\n @param amount0Requested How much token0 should be withdrawn from the fees owed\n @param amount1Requested How much token1 should be withdrawn from the fees owed\n @return amount0 The amount of fees collected in token0\n @return amount1 The amount of fees collected in token1"},"functionSelector":"4f1eb3d8","id":72,"implemented":false,"kind":"function","modifiers":[],"name":"collect","nodeType":"FunctionDefinition","parameters":{"id":66,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57,"mutability":"mutable","name":"recipient","nodeType":"VariableDeclaration","scope":72,"src":"2803:17:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":56,"name":"address","nodeType":"ElementaryTypeName","src":"2803:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":59,"mutability":"mutable","name":"tickLower","nodeType":"VariableDeclaration","scope":72,"src":"2830:15:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"},"typeName":{"id":58,"name":"int24","nodeType":"ElementaryTypeName","src":"2830:5:1","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"visibility":"internal"},{"constant":false,"id":61,"mutability":"mutable","name":"tickUpper","nodeType":"VariableDeclaration","scope":72,"src":"2855:15:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"},"typeName":{"id":60,"name":"int24","nodeType":"ElementaryTypeName","src":"2855:5:1","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"visibility":"internal"},{"constant":false,"id":63,"mutability":"mutable","name":"amount0Requested","nodeType":"VariableDeclaration","scope":72,"src":"2880:24:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":62,"name":"uint128","nodeType":"ElementaryTypeName","src":"2880:7:1","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":65,"mutability":"mutable","name":"amount1Requested","nodeType":"VariableDeclaration","scope":72,"src":"2914:24:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":64,"name":"uint128","nodeType":"ElementaryTypeName","src":"2914:7:1","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"2793:151:1"},"returnParameters":{"id":71,"nodeType":"ParameterList","parameters":[{"constant":false,"id":68,"mutability":"mutable","name":"amount0","nodeType":"VariableDeclaration","scope":72,"src":"2963:15:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":67,"name":"uint128","nodeType":"ElementaryTypeName","src":"2963:7:1","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":70,"mutability":"mutable","name":"amount1","nodeType":"VariableDeclaration","scope":72,"src":"2980:15:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":69,"name":"uint128","nodeType":"ElementaryTypeName","src":"2980:7:1","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"2962:34:1"},"scope":123,"src":"2777:220:1","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":73,"nodeType":"StructuredDocumentation","src":"3003:631:1","text":"@notice Burn liquidity from the sender and account tokens owed for the liquidity to the position\n @dev Can be used to trigger a recalculation of fees owed to a position by calling with an amount of 0\n @dev Fees must be collected separately via a call to #collect\n @param tickLower The lower tick of the position for which to burn liquidity\n @param tickUpper The upper tick of the position for which to burn liquidity\n @param amount How much liquidity to burn\n @return amount0 The amount of token0 sent to the recipient\n @return amount1 The amount of token1 sent to the recipient"},"functionSelector":"a34123a7","id":86,"implemented":false,"kind":"function","modifiers":[],"name":"burn","nodeType":"FunctionDefinition","parameters":{"id":80,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75,"mutability":"mutable","name":"tickLower","nodeType":"VariableDeclaration","scope":86,"src":"3653:15:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"},"typeName":{"id":74,"name":"int24","nodeType":"ElementaryTypeName","src":"3653:5:1","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"visibility":"internal"},{"constant":false,"id":77,"mutability":"mutable","name":"tickUpper","nodeType":"VariableDeclaration","scope":86,"src":"3670:15:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"},"typeName":{"id":76,"name":"int24","nodeType":"ElementaryTypeName","src":"3670:5:1","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"visibility":"internal"},{"constant":false,"id":79,"mutability":"mutable","name":"amount","nodeType":"VariableDeclaration","scope":86,"src":"3687:14:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":78,"name":"uint128","nodeType":"ElementaryTypeName","src":"3687:7:1","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"3652:50:1"},"returnParameters":{"id":85,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82,"mutability":"mutable","name":"amount0","nodeType":"VariableDeclaration","scope":86,"src":"3721:15:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":81,"name":"uint256","nodeType":"ElementaryTypeName","src":"3721:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":84,"mutability":"mutable","name":"amount1","nodeType":"VariableDeclaration","scope":86,"src":"3738:15:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83,"name":"uint256","nodeType":"ElementaryTypeName","src":"3738:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3720:34:1"},"scope":123,"src":"3639:116:1","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":87,"nodeType":"StructuredDocumentation","src":"3761:1015:1","text":"@notice Swap token0 for token1, or token1 for token0\n @dev The caller of this method receives a callback in the form of IAstraCLSwapCallback.sol#astraCLSwapCallback\n @param recipient The address to receive the output of the swap\n @param zeroForOne The direction of the swap, true for token0 to token1, false for token1 to token0\n @param amountSpecified The amount of the swap, which implicitly configures the swap as exact input (positive), or exact output (negative)\n @param sqrtPriceLimitX96 The Q64.96 sqrt price limit. If zero for one, the price cannot be less than this\n value after the swap. If one for zero, the price cannot be greater than this value after the swap\n @param data Any data to be passed through to the callback\n @return amount0 The delta of the balance of token0 of the pool, exact when negative, minimum when positive\n @return amount1 The delta of the balance of token1 of the pool, exact when negative, minimum when positive"},"functionSelector":"128acb08","id":104,"implemented":false,"kind":"function","modifiers":[],"name":"swap","nodeType":"FunctionDefinition","parameters":{"id":98,"nodeType":"ParameterList","parameters":[{"constant":false,"id":89,"mutability":"mutable","name":"recipient","nodeType":"VariableDeclaration","scope":104,"src":"4804:17:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":88,"name":"address","nodeType":"ElementaryTypeName","src":"4804:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":91,"mutability":"mutable","name":"zeroForOne","nodeType":"VariableDeclaration","scope":104,"src":"4831:15:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":90,"name":"bool","nodeType":"ElementaryTypeName","src":"4831:4:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":93,"mutability":"mutable","name":"amountSpecified","nodeType":"VariableDeclaration","scope":104,"src":"4856:22:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":92,"name":"int256","nodeType":"ElementaryTypeName","src":"4856:6:1","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":95,"mutability":"mutable","name":"sqrtPriceLimitX96","nodeType":"VariableDeclaration","scope":104,"src":"4888:25:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"},"typeName":{"id":94,"name":"uint160","nodeType":"ElementaryTypeName","src":"4888:7:1","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},"visibility":"internal"},{"constant":false,"id":97,"mutability":"mutable","name":"data","nodeType":"VariableDeclaration","scope":104,"src":"4923:19:1","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":96,"name":"bytes","nodeType":"ElementaryTypeName","src":"4923:5:1","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4794:154:1"},"returnParameters":{"id":103,"nodeType":"ParameterList","parameters":[{"constant":false,"id":100,"mutability":"mutable","name":"amount0","nodeType":"VariableDeclaration","scope":104,"src":"4967:14:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":99,"name":"int256","nodeType":"ElementaryTypeName","src":"4967:6:1","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":102,"mutability":"mutable","name":"amount1","nodeType":"VariableDeclaration","scope":104,"src":"4983:14:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":101,"name":"int256","nodeType":"ElementaryTypeName","src":"4983:6:1","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"4966:32:1"},"scope":123,"src":"4781:218:1","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":105,"nodeType":"StructuredDocumentation","src":"5005:657:1","text":"@notice Receive token0 and/or token1 and pay it back, plus a fee, in the callback\n @dev The caller of this method receives a callback in the form of IAstraCLFlashCallback.sol#astraCLFlashCallback\n @dev Can be used to donate underlying tokens pro-rata to currently in-range liquidity providers by calling\n with 0 amount{0,1} and sending the donation amount(s) from the callback\n @param recipient The address which will receive the token0 and token1 amounts\n @param amount0 The amount of token0 to send\n @param amount1 The amount of token1 to send\n @param data Any data to be passed through to the callback"},"functionSelector":"490e6cbc","id":116,"implemented":false,"kind":"function","modifiers":[],"name":"flash","nodeType":"FunctionDefinition","parameters":{"id":114,"nodeType":"ParameterList","parameters":[{"constant":false,"id":107,"mutability":"mutable","name":"recipient","nodeType":"VariableDeclaration","scope":116,"src":"5682:17:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":106,"name":"address","nodeType":"ElementaryTypeName","src":"5682:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":109,"mutability":"mutable","name":"amount0","nodeType":"VariableDeclaration","scope":116,"src":"5701:15:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":108,"name":"uint256","nodeType":"ElementaryTypeName","src":"5701:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":111,"mutability":"mutable","name":"amount1","nodeType":"VariableDeclaration","scope":116,"src":"5718:15:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":110,"name":"uint256","nodeType":"ElementaryTypeName","src":"5718:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":113,"mutability":"mutable","name":"data","nodeType":"VariableDeclaration","scope":116,"src":"5735:19:1","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":112,"name":"bytes","nodeType":"ElementaryTypeName","src":"5735:5:1","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5681:74:1"},"returnParameters":{"id":115,"nodeType":"ParameterList","parameters":[],"src":"5764:0:1"},"scope":123,"src":"5667:98:1","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":117,"nodeType":"StructuredDocumentation","src":"5771:367:1","text":"@notice Increase the maximum number of price and liquidity observations that this pool will store\n @dev This method is no-op if the pool already has an observationCardinalityNext greater than or equal to\n the input observationCardinalityNext.\n @param observationCardinalityNext The desired minimum number of observations for the pool to store"},"functionSelector":"32148f67","id":122,"implemented":false,"kind":"function","modifiers":[],"name":"increaseObservationCardinalityNext","nodeType":"FunctionDefinition","parameters":{"id":120,"nodeType":"ParameterList","parameters":[{"constant":false,"id":119,"mutability":"mutable","name":"observationCardinalityNext","nodeType":"VariableDeclaration","scope":122,"src":"6187:33:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":118,"name":"uint16","nodeType":"ElementaryTypeName","src":"6187:6:1","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"6186:35:1"},"returnParameters":{"id":121,"nodeType":"ParameterList","parameters":[],"src":"6230:0:1"},"scope":123,"src":"6143:88:1","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":124,"src":"173:6060:1"}],"src":"45:6189:1"},"id":1},"@airdao/astra-cl-core/contracts/interfaces/pool/IAstraCLPoolDerivedState.sol":{"ast":{"absolutePath":"@airdao/astra-cl-core/contracts/interfaces/pool/IAstraCLPoolDerivedState.sol","exportedSymbols":{"IAstraCLPoolDerivedState":[154]},"id":155,"license":"GPL-2.0-or-later","nodeType":"SourceUnit","nodes":[{"id":125,"literals":["solidity",">=","0.5",".0"],"nodeType":"PragmaDirective","src":"45:24:2"},{"abstract":false,"baseContracts":[],"contractDependencies":[],"contractKind":"interface","documentation":{"id":126,"nodeType":"StructuredDocumentation","src":"71:222:2","text":"@title Pool state that is not stored\n @notice Contains view functions to provide information about the pool that is computed rather than stored on the\n blockchain. The functions here may have variable gas costs."},"fullyImplemented":false,"id":154,"linearizedBaseContracts":[154],"name":"IAstraCLPoolDerivedState","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":127,"nodeType":"StructuredDocumentation","src":"334:1045:2","text":"@notice Returns the cumulative tick and liquidity as of each timestamp `secondsAgo` from the current block timestamp\n @dev To get a time weighted average tick or liquidity-in-range, you must call this with two values, one representing\n the beginning of the period and another for the end of the period. E.g., to get the last hour time-weighted average tick,\n you must call it with secondsAgos = [3600, 0].\n @dev The time weighted average tick represents the geometric time weighted average price of the pool, in\n log base sqrt(1.0001) of token1 / token0. The TickMath library can be used to go from a tick value to a ratio.\n @param secondsAgos From how long ago each cumulative tick and liquidity value should be returned\n @return tickCumulatives Cumulative tick values as of each `secondsAgos` from the current block timestamp\n @return secondsPerLiquidityCumulativeX128s Cumulative seconds per liquidity-in-range value as of each `secondsAgos` from the current block\n timestamp"},"functionSelector":"883bdbfd","id":139,"implemented":false,"kind":"function","modifiers":[],"name":"observe","nodeType":"FunctionDefinition","parameters":{"id":131,"nodeType":"ParameterList","parameters":[{"constant":false,"id":130,"mutability":"mutable","name":"secondsAgos","nodeType":"VariableDeclaration","scope":139,"src":"1410:29:2","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_uint32_$dyn_calldata_ptr","typeString":"uint32[]"},"typeName":{"baseType":{"id":128,"name":"uint32","nodeType":"ElementaryTypeName","src":"1410:6:2","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"id":129,"nodeType":"ArrayTypeName","src":"1410:8:2","typeDescriptions":{"typeIdentifier":"t_array$_t_uint32_$dyn_storage_ptr","typeString":"uint32[]"}},"visibility":"internal"}],"src":"1400:45:2"},"returnParameters":{"id":138,"nodeType":"ParameterList","parameters":[{"constant":false,"id":134,"mutability":"mutable","name":"tickCumulatives","nodeType":"VariableDeclaration","scope":139,"src":"1469:30:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_int56_$dyn_memory_ptr","typeString":"int56[]"},"typeName":{"baseType":{"id":132,"name":"int56","nodeType":"ElementaryTypeName","src":"1469:5:2","typeDescriptions":{"typeIdentifier":"t_int56","typeString":"int56"}},"id":133,"nodeType":"ArrayTypeName","src":"1469:7:2","typeDescriptions":{"typeIdentifier":"t_array$_t_int56_$dyn_storage_ptr","typeString":"int56[]"}},"visibility":"internal"},{"constant":false,"id":137,"mutability":"mutable","name":"secondsPerLiquidityCumulativeX128s","nodeType":"VariableDeclaration","scope":139,"src":"1501:51:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint160_$dyn_memory_ptr","typeString":"uint160[]"},"typeName":{"baseType":{"id":135,"name":"uint160","nodeType":"ElementaryTypeName","src":"1501:7:2","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},"id":136,"nodeType":"ArrayTypeName","src":"1501:9:2","typeDescriptions":{"typeIdentifier":"t_array$_t_uint160_$dyn_storage_ptr","typeString":"uint160[]"}},"visibility":"internal"}],"src":"1468:85:2"},"scope":154,"src":"1384:170:2","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":140,"nodeType":"StructuredDocumentation","src":"1560:771:2","text":"@notice Returns a snapshot of the tick cumulative, seconds per liquidity and seconds inside a tick range\n @dev Snapshots must only be compared to other snapshots, taken over a period for which a position existed.\n I.e., snapshots cannot be compared if a position is not held for the entire period between when the first\n snapshot is taken and the second snapshot is taken.\n @param tickLower The lower tick of the range\n @param tickUpper The upper tick of the range\n @return tickCumulativeInside The snapshot of the tick accumulator for the range\n @return secondsPerLiquidityInsideX128 The snapshot of seconds per liquidity for the range\n @return secondsInside The snapshot of seconds per liquidity for the range"},"functionSelector":"a38807f2","id":153,"implemented":false,"kind":"function","modifiers":[],"name":"snapshotCumulativesInside","nodeType":"FunctionDefinition","parameters":{"id":145,"nodeType":"ParameterList","parameters":[{"constant":false,"id":142,"mutability":"mutable","name":"tickLower","nodeType":"VariableDeclaration","scope":153,"src":"2380:15:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"},"typeName":{"id":141,"name":"int24","nodeType":"ElementaryTypeName","src":"2380:5:2","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"visibility":"internal"},{"constant":false,"id":144,"mutability":"mutable","name":"tickUpper","nodeType":"VariableDeclaration","scope":153,"src":"2405:15:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"},"typeName":{"id":143,"name":"int24","nodeType":"ElementaryTypeName","src":"2405:5:2","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"visibility":"internal"}],"src":"2370:56:2"},"returnParameters":{"id":152,"nodeType":"ParameterList","parameters":[{"constant":false,"id":147,"mutability":"mutable","name":"tickCumulativeInside","nodeType":"VariableDeclaration","scope":153,"src":"2450:26:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int56","typeString":"int56"},"typeName":{"id":146,"name":"int56","nodeType":"ElementaryTypeName","src":"2450:5:2","typeDescriptions":{"typeIdentifier":"t_int56","typeString":"int56"}},"visibility":"internal"},{"constant":false,"id":149,"mutability":"mutable","name":"secondsPerLiquidityInsideX128","nodeType":"VariableDeclaration","scope":153,"src":"2478:37:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"},"typeName":{"id":148,"name":"uint160","nodeType":"ElementaryTypeName","src":"2478:7:2","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},"visibility":"internal"},{"constant":false,"id":151,"mutability":"mutable","name":"secondsInside","nodeType":"VariableDeclaration","scope":153,"src":"2517:20:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":150,"name":"uint32","nodeType":"ElementaryTypeName","src":"2517:6:2","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"}],"src":"2449:89:2"},"scope":154,"src":"2336:203:2","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":155,"src":"293:2248:2"}],"src":"45:2497:2"},"id":2},"@airdao/astra-cl-core/contracts/interfaces/pool/IAstraCLPoolEvents.sol":{"ast":{"absolutePath":"@airdao/astra-cl-core/contracts/interfaces/pool/IAstraCLPoolEvents.sol","exportedSymbols":{"IAstraCLPoolEvents":[273]},"id":274,"license":"GPL-2.0-or-later","nodeType":"SourceUnit","nodes":[{"id":156,"literals":["solidity",">=","0.5",".0"],"nodeType":"PragmaDirective","src":"45:24:3"},{"abstract":false,"baseContracts":[],"contractDependencies":[],"contractKind":"interface","documentation":{"id":157,"nodeType":"StructuredDocumentation","src":"71:88:3","text":"@title Events emitted by a pool\n @notice Contains all events emitted by the pool"},"fullyImplemented":true,"id":273,"linearizedBaseContracts":[273],"name":"IAstraCLPoolEvents","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"documentation":{"id":158,"nodeType":"StructuredDocumentation","src":"194:344:3","text":"@notice Emitted exactly once by a pool when #initialize is first called on the pool\n @dev Mint/Burn/Swap cannot be emitted by the pool before Initialize\n @param sqrtPriceX96 The initial sqrt price of the pool, as a Q64.96\n @param tick The initial tick of the pool, i.e. log base 1.0001 of the starting price of the pool"},"id":164,"name":"Initialize","nodeType":"EventDefinition","parameters":{"id":163,"nodeType":"ParameterList","parameters":[{"constant":false,"id":160,"indexed":false,"mutability":"mutable","name":"sqrtPriceX96","nodeType":"VariableDeclaration","scope":164,"src":"560:20:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"},"typeName":{"id":159,"name":"uint160","nodeType":"ElementaryTypeName","src":"560:7:3","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},"visibility":"internal"},{"constant":false,"id":162,"indexed":false,"mutability":"mutable","name":"tick","nodeType":"VariableDeclaration","scope":164,"src":"582:10:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"},"typeName":{"id":161,"name":"int24","nodeType":"ElementaryTypeName","src":"582:5:3","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"visibility":"internal"}],"src":"559:34:3"},"src":"543:51:3"},{"anonymous":false,"documentation":{"id":165,"nodeType":"StructuredDocumentation","src":"600:551:3","text":"@notice Emitted when liquidity is minted for a given position\n @param sender The address that minted the liquidity\n @param owner The owner of the position and recipient of any minted liquidity\n @param tickLower The lower tick of the position\n @param tickUpper The upper tick of the position\n @param amount The amount of liquidity minted to the position range\n @param amount0 How much token0 was required for the minted liquidity\n @param amount1 How much token1 was required for the minted liquidity"},"id":181,"name":"Mint","nodeType":"EventDefinition","parameters":{"id":180,"nodeType":"ParameterList","parameters":[{"constant":false,"id":167,"indexed":false,"mutability":"mutable","name":"sender","nodeType":"VariableDeclaration","scope":181,"src":"1176:14:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":166,"name":"address","nodeType":"ElementaryTypeName","src":"1176:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":169,"indexed":true,"mutability":"mutable","name":"owner","nodeType":"VariableDeclaration","scope":181,"src":"1200:21:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":168,"name":"address","nodeType":"ElementaryTypeName","src":"1200:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":171,"indexed":true,"mutability":"mutable","name":"tickLower","nodeType":"VariableDeclaration","scope":181,"src":"1231:23:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"},"typeName":{"id":170,"name":"int24","nodeType":"ElementaryTypeName","src":"1231:5:3","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"visibility":"internal"},{"constant":false,"id":173,"indexed":true,"mutability":"mutable","name":"tickUpper","nodeType":"VariableDeclaration","scope":181,"src":"1264:23:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"},"typeName":{"id":172,"name":"int24","nodeType":"ElementaryTypeName","src":"1264:5:3","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"visibility":"internal"},{"constant":false,"id":175,"indexed":false,"mutability":"mutable","name":"amount","nodeType":"VariableDeclaration","scope":181,"src":"1297:14:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":174,"name":"uint128","nodeType":"ElementaryTypeName","src":"1297:7:3","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":177,"indexed":false,"mutability":"mutable","name":"amount0","nodeType":"VariableDeclaration","scope":181,"src":"1321:15:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":176,"name":"uint256","nodeType":"ElementaryTypeName","src":"1321:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":179,"indexed":false,"mutability":"mutable","name":"amount1","nodeType":"VariableDeclaration","scope":181,"src":"1346:15:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":178,"name":"uint256","nodeType":"ElementaryTypeName","src":"1346:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1166:201:3"},"src":"1156:212:3"},{"anonymous":false,"documentation":{"id":182,"nodeType":"StructuredDocumentation","src":"1374:493:3","text":"@notice Emitted when fees are collected by the owner of a position\n @dev Collect events may be emitted with zero amount0 and amount1 when the caller chooses not to collect fees\n @param owner The owner of the position for which fees are collected\n @param tickLower The lower tick of the position\n @param tickUpper The upper tick of the position\n @param amount0 The amount of token0 fees collected\n @param amount1 The amount of token1 fees collected"},"id":196,"name":"Collect","nodeType":"EventDefinition","parameters":{"id":195,"nodeType":"ParameterList","parameters":[{"constant":false,"id":184,"indexed":true,"mutability":"mutable","name":"owner","nodeType":"VariableDeclaration","scope":196,"src":"1895:21:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":183,"name":"address","nodeType":"ElementaryTypeName","src":"1895:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":186,"indexed":false,"mutability":"mutable","name":"recipient","nodeType":"VariableDeclaration","scope":196,"src":"1926:17:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":185,"name":"address","nodeType":"ElementaryTypeName","src":"1926:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":188,"indexed":true,"mutability":"mutable","name":"tickLower","nodeType":"VariableDeclaration","scope":196,"src":"1953:23:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"},"typeName":{"id":187,"name":"int24","nodeType":"ElementaryTypeName","src":"1953:5:3","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"visibility":"internal"},{"constant":false,"id":190,"indexed":true,"mutability":"mutable","name":"tickUpper","nodeType":"VariableDeclaration","scope":196,"src":"1986:23:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"},"typeName":{"id":189,"name":"int24","nodeType":"ElementaryTypeName","src":"1986:5:3","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"visibility":"internal"},{"constant":false,"id":192,"indexed":false,"mutability":"mutable","name":"amount0","nodeType":"VariableDeclaration","scope":196,"src":"2019:15:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":191,"name":"uint128","nodeType":"ElementaryTypeName","src":"2019:7:3","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":194,"indexed":false,"mutability":"mutable","name":"amount1","nodeType":"VariableDeclaration","scope":196,"src":"2044:15:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":193,"name":"uint128","nodeType":"ElementaryTypeName","src":"2044:7:3","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"1885:180:3"},"src":"1872:194:3"},{"anonymous":false,"documentation":{"id":197,"nodeType":"StructuredDocumentation","src":"2072:523:3","text":"@notice Emitted when a position's liquidity is removed\n @dev Does not withdraw any fees earned by the liquidity position, which must be withdrawn via #collect\n @param owner The owner of the position for which liquidity is removed\n @param tickLower The lower tick of the position\n @param tickUpper The upper tick of the position\n @param amount The amount of liquidity to remove\n @param amount0 The amount of token0 withdrawn\n @param amount1 The amount of token1 withdrawn"},"id":211,"name":"Burn","nodeType":"EventDefinition","parameters":{"id":210,"nodeType":"ParameterList","parameters":[{"constant":false,"id":199,"indexed":true,"mutability":"mutable","name":"owner","nodeType":"VariableDeclaration","scope":211,"src":"2620:21:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":198,"name":"address","nodeType":"ElementaryTypeName","src":"2620:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":201,"indexed":true,"mutability":"mutable","name":"tickLower","nodeType":"VariableDeclaration","scope":211,"src":"2651:23:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"},"typeName":{"id":200,"name":"int24","nodeType":"ElementaryTypeName","src":"2651:5:3","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"visibility":"internal"},{"constant":false,"id":203,"indexed":true,"mutability":"mutable","name":"tickUpper","nodeType":"VariableDeclaration","scope":211,"src":"2684:23:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"},"typeName":{"id":202,"name":"int24","nodeType":"ElementaryTypeName","src":"2684:5:3","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"visibility":"internal"},{"constant":false,"id":205,"indexed":false,"mutability":"mutable","name":"amount","nodeType":"VariableDeclaration","scope":211,"src":"2717:14:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":204,"name":"uint128","nodeType":"ElementaryTypeName","src":"2717:7:3","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":207,"indexed":false,"mutability":"mutable","name":"amount0","nodeType":"VariableDeclaration","scope":211,"src":"2741:15:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":206,"name":"uint256","nodeType":"ElementaryTypeName","src":"2741:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":209,"indexed":false,"mutability":"mutable","name":"amount1","nodeType":"VariableDeclaration","scope":211,"src":"2766:15:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":208,"name":"uint256","nodeType":"ElementaryTypeName","src":"2766:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2610:177:3"},"src":"2600:188:3"},{"anonymous":false,"documentation":{"id":212,"nodeType":"StructuredDocumentation","src":"2794:600:3","text":"@notice Emitted by the pool for any swaps between token0 and token1\n @param sender The address that initiated the swap call, and that received the callback\n @param recipient The address that received the output of the swap\n @param amount0 The delta of the token0 balance of the pool\n @param amount1 The delta of the token1 balance of the pool\n @param sqrtPriceX96 The sqrt(price) of the pool after the swap, as a Q64.96\n @param liquidity The liquidity of the pool after the swap\n @param tick The log base 1.0001 of price of the pool after the swap"},"id":228,"name":"Swap","nodeType":"EventDefinition","parameters":{"id":227,"nodeType":"ParameterList","parameters":[{"constant":false,"id":214,"indexed":true,"mutability":"mutable","name":"sender","nodeType":"VariableDeclaration","scope":228,"src":"3419:22:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":213,"name":"address","nodeType":"ElementaryTypeName","src":"3419:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":216,"indexed":true,"mutability":"mutable","name":"recipient","nodeType":"VariableDeclaration","scope":228,"src":"3451:25:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":215,"name":"address","nodeType":"ElementaryTypeName","src":"3451:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":218,"indexed":false,"mutability":"mutable","name":"amount0","nodeType":"VariableDeclaration","scope":228,"src":"3486:14:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":217,"name":"int256","nodeType":"ElementaryTypeName","src":"3486:6:3","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":220,"indexed":false,"mutability":"mutable","name":"amount1","nodeType":"VariableDeclaration","scope":228,"src":"3510:14:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":219,"name":"int256","nodeType":"ElementaryTypeName","src":"3510:6:3","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":222,"indexed":false,"mutability":"mutable","name":"sqrtPriceX96","nodeType":"VariableDeclaration","scope":228,"src":"3534:20:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"},"typeName":{"id":221,"name":"uint160","nodeType":"ElementaryTypeName","src":"3534:7:3","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},"visibility":"internal"},{"constant":false,"id":224,"indexed":false,"mutability":"mutable","name":"liquidity","nodeType":"VariableDeclaration","scope":228,"src":"3564:17:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":223,"name":"uint128","nodeType":"ElementaryTypeName","src":"3564:7:3","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":226,"indexed":false,"mutability":"mutable","name":"tick","nodeType":"VariableDeclaration","scope":228,"src":"3591:10:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"},"typeName":{"id":225,"name":"int24","nodeType":"ElementaryTypeName","src":"3591:5:3","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"visibility":"internal"}],"src":"3409:198:3"},"src":"3399:209:3"},{"anonymous":false,"documentation":{"id":229,"nodeType":"StructuredDocumentation","src":"3614:562:3","text":"@notice Emitted by the pool for any flashes of token0/token1\n @param sender The address that initiated the swap call, and that received the callback\n @param recipient The address that received the tokens from flash\n @param amount0 The amount of token0 that was flashed\n @param amount1 The amount of token1 that was flashed\n @param paid0 The amount of token0 paid for the flash, which can exceed the amount0 plus the fee\n @param paid1 The amount of token1 paid for the flash, which can exceed the amount1 plus the fee"},"id":243,"name":"Flash","nodeType":"EventDefinition","parameters":{"id":242,"nodeType":"ParameterList","parameters":[{"constant":false,"id":231,"indexed":true,"mutability":"mutable","name":"sender","nodeType":"VariableDeclaration","scope":243,"src":"4202:22:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":230,"name":"address","nodeType":"ElementaryTypeName","src":"4202:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":233,"indexed":true,"mutability":"mutable","name":"recipient","nodeType":"VariableDeclaration","scope":243,"src":"4234:25:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":232,"name":"address","nodeType":"ElementaryTypeName","src":"4234:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":235,"indexed":false,"mutability":"mutable","name":"amount0","nodeType":"VariableDeclaration","scope":243,"src":"4269:15:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":234,"name":"uint256","nodeType":"ElementaryTypeName","src":"4269:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":237,"indexed":false,"mutability":"mutable","name":"amount1","nodeType":"VariableDeclaration","scope":243,"src":"4294:15:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":236,"name":"uint256","nodeType":"ElementaryTypeName","src":"4294:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":239,"indexed":false,"mutability":"mutable","name":"paid0","nodeType":"VariableDeclaration","scope":243,"src":"4319:13:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":238,"name":"uint256","nodeType":"ElementaryTypeName","src":"4319:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":241,"indexed":false,"mutability":"mutable","name":"paid1","nodeType":"VariableDeclaration","scope":243,"src":"4342:13:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":240,"name":"uint256","nodeType":"ElementaryTypeName","src":"4342:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4192:169:3"},"src":"4181:181:3"},{"anonymous":false,"documentation":{"id":244,"nodeType":"StructuredDocumentation","src":"4368:451:3","text":"@notice Emitted by the pool for increases to the number of observations that can be stored\n @dev observationCardinalityNext is not the observation cardinality until an observation is written at the index\n just before a mint/swap/burn.\n @param observationCardinalityNextOld The previous value of the next observation cardinality\n @param observationCardinalityNextNew The updated value of the next observation cardinality"},"id":250,"name":"IncreaseObservationCardinalityNext","nodeType":"EventDefinition","parameters":{"id":249,"nodeType":"ParameterList","parameters":[{"constant":false,"id":246,"indexed":false,"mutability":"mutable","name":"observationCardinalityNextOld","nodeType":"VariableDeclaration","scope":250,"src":"4874:36:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":245,"name":"uint16","nodeType":"ElementaryTypeName","src":"4874:6:3","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":248,"indexed":false,"mutability":"mutable","name":"observationCardinalityNextNew","nodeType":"VariableDeclaration","scope":250,"src":"4920:36:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":247,"name":"uint16","nodeType":"ElementaryTypeName","src":"4920:6:3","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"}],"src":"4864:98:3"},"src":"4824:139:3"},{"anonymous":false,"documentation":{"id":251,"nodeType":"StructuredDocumentation","src":"4969:370:3","text":"@notice Emitted when the protocol fee is changed by the pool\n @param feeProtocol0Old The previous value of the token0 protocol fee\n @param feeProtocol1Old The previous value of the token1 protocol fee\n @param feeProtocol0New The updated value of the token0 protocol fee\n @param feeProtocol1New The updated value of the token1 protocol fee"},"id":261,"name":"SetFeeProtocol","nodeType":"EventDefinition","parameters":{"id":260,"nodeType":"ParameterList","parameters":[{"constant":false,"id":253,"indexed":false,"mutability":"mutable","name":"feeProtocol0Old","nodeType":"VariableDeclaration","scope":261,"src":"5365:21:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":252,"name":"uint8","nodeType":"ElementaryTypeName","src":"5365:5:3","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":255,"indexed":false,"mutability":"mutable","name":"feeProtocol1Old","nodeType":"VariableDeclaration","scope":261,"src":"5388:21:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":254,"name":"uint8","nodeType":"ElementaryTypeName","src":"5388:5:3","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":257,"indexed":false,"mutability":"mutable","name":"feeProtocol0New","nodeType":"VariableDeclaration","scope":261,"src":"5411:21:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":256,"name":"uint8","nodeType":"ElementaryTypeName","src":"5411:5:3","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":259,"indexed":false,"mutability":"mutable","name":"feeProtocol1New","nodeType":"VariableDeclaration","scope":261,"src":"5434:21:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":258,"name":"uint8","nodeType":"ElementaryTypeName","src":"5434:5:3","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"5364:92:3"},"src":"5344:113:3"},{"anonymous":false,"documentation":{"id":262,"nodeType":"StructuredDocumentation","src":"5463:384:3","text":"@notice Emitted when the collected protocol fees are withdrawn by the factory owner\n @param sender The address that collects the protocol fees\n @param recipient The address that receives the collected protocol fees\n @param amount0 The amount of token0 protocol fees that is withdrawn\n @param amount0 The amount of token1 protocol fees that is withdrawn"},"id":272,"name":"CollectProtocol","nodeType":"EventDefinition","parameters":{"id":271,"nodeType":"ParameterList","parameters":[{"constant":false,"id":264,"indexed":true,"mutability":"mutable","name":"sender","nodeType":"VariableDeclaration","scope":272,"src":"5874:22:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":263,"name":"address","nodeType":"ElementaryTypeName","src":"5874:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":266,"indexed":true,"mutability":"mutable","name":"recipient","nodeType":"VariableDeclaration","scope":272,"src":"5898:25:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":265,"name":"address","nodeType":"ElementaryTypeName","src":"5898:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":268,"indexed":false,"mutability":"mutable","name":"amount0","nodeType":"VariableDeclaration","scope":272,"src":"5925:15:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":267,"name":"uint128","nodeType":"ElementaryTypeName","src":"5925:7:3","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":270,"indexed":false,"mutability":"mutable","name":"amount1","nodeType":"VariableDeclaration","scope":272,"src":"5942:15:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":269,"name":"uint128","nodeType":"ElementaryTypeName","src":"5942:7:3","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"5873:85:3"},"src":"5852:107:3"}],"scope":274,"src":"159:5802:3"}],"src":"45:5917:3"},"id":3},"@airdao/astra-cl-core/contracts/interfaces/pool/IAstraCLPoolImmutables.sol":{"ast":{"absolutePath":"@airdao/astra-cl-core/contracts/interfaces/pool/IAstraCLPoolImmutables.sol","exportedSymbols":{"IAstraCLPoolImmutables":[313]},"id":314,"license":"GPL-2.0-or-later","nodeType":"SourceUnit","nodes":[{"id":275,"literals":["solidity",">=","0.5",".0"],"nodeType":"PragmaDirective","src":"45:24:4"},{"abstract":false,"baseContracts":[],"contractDependencies":[],"contractKind":"interface","documentation":{"id":276,"nodeType":"StructuredDocumentation","src":"71:153:4","text":"@title Pool state that never changes\n @notice These parameters are fixed for a pool forever, i.e., the methods will always return the same values"},"fullyImplemented":false,"id":313,"linearizedBaseContracts":[313],"name":"IAstraCLPoolImmutables","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":277,"nodeType":"StructuredDocumentation","src":"263:136:4","text":"@notice The contract that deployed the pool, which must adhere to the IAstraCLFactory interface\n @return The contract address"},"functionSelector":"c45a0155","id":282,"implemented":false,"kind":"function","modifiers":[],"name":"factory","nodeType":"FunctionDefinition","parameters":{"id":278,"nodeType":"ParameterList","parameters":[],"src":"420:2:4"},"returnParameters":{"id":281,"nodeType":"ParameterList","parameters":[{"constant":false,"id":280,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","scope":282,"src":"446:7:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":279,"name":"address","nodeType":"ElementaryTypeName","src":"446:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"445:9:4"},"scope":313,"src":"404:51:4","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":283,"nodeType":"StructuredDocumentation","src":"461:113:4","text":"@notice The first of the two tokens of the pool, sorted by address\n @return The token contract address"},"functionSelector":"0dfe1681","id":288,"implemented":false,"kind":"function","modifiers":[],"name":"token0","nodeType":"FunctionDefinition","parameters":{"id":284,"nodeType":"ParameterList","parameters":[],"src":"594:2:4"},"returnParameters":{"id":287,"nodeType":"ParameterList","parameters":[{"constant":false,"id":286,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","scope":288,"src":"620:7:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":285,"name":"address","nodeType":"ElementaryTypeName","src":"620:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"619:9:4"},"scope":313,"src":"579:50:4","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":289,"nodeType":"StructuredDocumentation","src":"635:114:4","text":"@notice The second of the two tokens of the pool, sorted by address\n @return The token contract address"},"functionSelector":"d21220a7","id":294,"implemented":false,"kind":"function","modifiers":[],"name":"token1","nodeType":"FunctionDefinition","parameters":{"id":290,"nodeType":"ParameterList","parameters":[],"src":"769:2:4"},"returnParameters":{"id":293,"nodeType":"ParameterList","parameters":[{"constant":false,"id":292,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","scope":294,"src":"795:7:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":291,"name":"address","nodeType":"ElementaryTypeName","src":"795:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"794:9:4"},"scope":313,"src":"754:50:4","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":295,"nodeType":"StructuredDocumentation","src":"810:84:4","text":"@notice The pool's fee in hundredths of a bip, i.e. 1e-6\n @return The fee"},"functionSelector":"ddca3f43","id":300,"implemented":false,"kind":"function","modifiers":[],"name":"fee","nodeType":"FunctionDefinition","parameters":{"id":296,"nodeType":"ParameterList","parameters":[],"src":"911:2:4"},"returnParameters":{"id":299,"nodeType":"ParameterList","parameters":[{"constant":false,"id":298,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","scope":300,"src":"937:6:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"},"typeName":{"id":297,"name":"uint24","nodeType":"ElementaryTypeName","src":"937:6:4","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},"visibility":"internal"}],"src":"936:8:4"},"scope":313,"src":"899:46:4","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":301,"nodeType":"StructuredDocumentation","src":"951:358:4","text":"@notice The pool tick spacing\n @dev Ticks can only be used at multiples of this value, minimum of 1 and always positive\n e.g.: a tickSpacing of 3 means ticks can be initialized every 3rd tick, i.e., ..., -6, -3, 0, 3, 6, ...\n This value is an int24 to avoid casting even though it is always positive.\n @return The tick spacing"},"functionSelector":"d0c93a7c","id":306,"implemented":false,"kind":"function","modifiers":[],"name":"tickSpacing","nodeType":"FunctionDefinition","parameters":{"id":302,"nodeType":"ParameterList","parameters":[],"src":"1334:2:4"},"returnParameters":{"id":305,"nodeType":"ParameterList","parameters":[{"constant":false,"id":304,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","scope":306,"src":"1360:5:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"},"typeName":{"id":303,"name":"int24","nodeType":"ElementaryTypeName","src":"1360:5:4","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"visibility":"internal"}],"src":"1359:7:4"},"scope":313,"src":"1314:53:4","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":307,"nodeType":"StructuredDocumentation","src":"1373:363:4","text":"@notice The maximum amount of position liquidity that can use any tick in the range\n @dev This parameter is enforced per tick to prevent liquidity from overflowing a uint128 at any point, and\n also prevents out-of-range liquidity from being used to prevent adding in-range liquidity to a pool\n @return The max amount of liquidity per tick"},"functionSelector":"70cf754a","id":312,"implemented":false,"kind":"function","modifiers":[],"name":"maxLiquidityPerTick","nodeType":"FunctionDefinition","parameters":{"id":308,"nodeType":"ParameterList","parameters":[],"src":"1769:2:4"},"returnParameters":{"id":311,"nodeType":"ParameterList","parameters":[{"constant":false,"id":310,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","scope":312,"src":"1795:7:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":309,"name":"uint128","nodeType":"ElementaryTypeName","src":"1795:7:4","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"1794:9:4"},"scope":313,"src":"1741:63:4","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":314,"src":"224:1582:4"}],"src":"45:1762:4"},"id":4},"@airdao/astra-cl-core/contracts/interfaces/pool/IAstraCLPoolOwnerActions.sol":{"ast":{"absolutePath":"@airdao/astra-cl-core/contracts/interfaces/pool/IAstraCLPoolOwnerActions.sol","exportedSymbols":{"IAstraCLPoolOwnerActions":[339]},"id":340,"license":"GPL-2.0-or-later","nodeType":"SourceUnit","nodes":[{"id":315,"literals":["solidity",">=","0.5",".0"],"nodeType":"PragmaDirective","src":"45:24:5"},{"abstract":false,"baseContracts":[],"contractDependencies":[],"contractKind":"interface","documentation":{"id":316,"nodeType":"StructuredDocumentation","src":"71:116:5","text":"@title Permissioned pool actions\n @notice Contains pool methods that may only be called by the factory owner"},"fullyImplemented":false,"id":339,"linearizedBaseContracts":[339],"name":"IAstraCLPoolOwnerActions","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":317,"nodeType":"StructuredDocumentation","src":"228:205:5","text":"@notice Set the denominator of the protocol's % share of the fees\n @param feeProtocol0 new protocol fee for token0 of the pool\n @param feeProtocol1 new protocol fee for token1 of the pool"},"functionSelector":"8206a4d1","id":324,"implemented":false,"kind":"function","modifiers":[],"name":"setFeeProtocol","nodeType":"FunctionDefinition","parameters":{"id":322,"nodeType":"ParameterList","parameters":[{"constant":false,"id":319,"mutability":"mutable","name":"feeProtocol0","nodeType":"VariableDeclaration","scope":324,"src":"462:18:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":318,"name":"uint8","nodeType":"ElementaryTypeName","src":"462:5:5","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":321,"mutability":"mutable","name":"feeProtocol1","nodeType":"VariableDeclaration","scope":324,"src":"482:18:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":320,"name":"uint8","nodeType":"ElementaryTypeName","src":"482:5:5","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"461:40:5"},"returnParameters":{"id":323,"nodeType":"ParameterList","parameters":[],"src":"510:0:5"},"scope":339,"src":"438:73:5","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":325,"nodeType":"StructuredDocumentation","src":"517:483:5","text":"@notice Collect the protocol fee accrued to the pool\n @param recipient The address to which collected protocol fees should be sent\n @param amount0Requested The maximum amount of token0 to send, can be 0 to collect fees in only token1\n @param amount1Requested The maximum amount of token1 to send, can be 0 to collect fees in only token0\n @return amount0 The protocol fee collected in token0\n @return amount1 The protocol fee collected in token1"},"functionSelector":"85b66729","id":338,"implemented":false,"kind":"function","modifiers":[],"name":"collectProtocol","nodeType":"FunctionDefinition","parameters":{"id":332,"nodeType":"ParameterList","parameters":[{"constant":false,"id":327,"mutability":"mutable","name":"recipient","nodeType":"VariableDeclaration","scope":338,"src":"1039:17:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":326,"name":"address","nodeType":"ElementaryTypeName","src":"1039:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":329,"mutability":"mutable","name":"amount0Requested","nodeType":"VariableDeclaration","scope":338,"src":"1066:24:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":328,"name":"uint128","nodeType":"ElementaryTypeName","src":"1066:7:5","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":331,"mutability":"mutable","name":"amount1Requested","nodeType":"VariableDeclaration","scope":338,"src":"1100:24:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":330,"name":"uint128","nodeType":"ElementaryTypeName","src":"1100:7:5","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"1029:101:5"},"returnParameters":{"id":337,"nodeType":"ParameterList","parameters":[{"constant":false,"id":334,"mutability":"mutable","name":"amount0","nodeType":"VariableDeclaration","scope":338,"src":"1149:15:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":333,"name":"uint128","nodeType":"ElementaryTypeName","src":"1149:7:5","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":336,"mutability":"mutable","name":"amount1","nodeType":"VariableDeclaration","scope":338,"src":"1166:15:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":335,"name":"uint128","nodeType":"ElementaryTypeName","src":"1166:7:5","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"1148:34:5"},"scope":339,"src":"1005:178:5","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":340,"src":"187:998:5"}],"src":"45:1141:5"},"id":5},"@airdao/astra-cl-core/contracts/interfaces/pool/IAstraCLPoolState.sol":{"ast":{"absolutePath":"@airdao/astra-cl-core/contracts/interfaces/pool/IAstraCLPoolState.sol","exportedSymbols":{"IAstraCLPoolState":[447]},"id":448,"license":"GPL-2.0-or-later","nodeType":"SourceUnit","nodes":[{"id":341,"literals":["solidity",">=","0.5",".0"],"nodeType":"PragmaDirective","src":"45:24:6"},{"abstract":false,"baseContracts":[],"contractDependencies":[],"contractKind":"interface","documentation":{"id":342,"nodeType":"StructuredDocumentation","src":"71:169:6","text":"@title Pool state that can change\n @notice These methods compose the pool's state, and can change with any frequency including multiple times\n per transaction"},"fullyImplemented":false,"id":447,"linearizedBaseContracts":[447],"name":"IAstraCLPoolState","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":343,"nodeType":"StructuredDocumentation","src":"274:1140:6","text":"@notice The 0th storage slot in the pool stores many values, and is exposed as a single method to save gas\n when accessed externally.\n @return sqrtPriceX96 The current price of the pool as a sqrt(token1/token0) Q64.96 value\n tick The current tick of the pool, i.e. according to the last tick transition that was run.\n This value may not always be equal to SqrtTickMath.getTickAtSqrtRatio(sqrtPriceX96) if the price is on a tick\n boundary.\n observationIndex The index of the last oracle observation that was written,\n observationCardinality The current maximum number of observations stored in the pool,\n observationCardinalityNext The next maximum number of observations, to be updated when the observation.\n feeProtocol The protocol fee for both tokens of the pool.\n Encoded as two 4 bit values, where the protocol fee of token1 is shifted 4 bits and the protocol fee of token0\n is the lower 4 bits. Used as the denominator of a fraction of the swap fee, e.g. 4 means 1/4th of the swap fee.\n unlocked Whether the pool is currently locked to reentrancy"},"functionSelector":"3850c7bd","id":360,"implemented":false,"kind":"function","modifiers":[],"name":"slot0","nodeType":"FunctionDefinition","parameters":{"id":344,"nodeType":"ParameterList","parameters":[],"src":"1433:2:6"},"returnParameters":{"id":359,"nodeType":"ParameterList","parameters":[{"constant":false,"id":346,"mutability":"mutable","name":"sqrtPriceX96","nodeType":"VariableDeclaration","scope":360,"src":"1496:20:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"},"typeName":{"id":345,"name":"uint160","nodeType":"ElementaryTypeName","src":"1496:7:6","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},"visibility":"internal"},{"constant":false,"id":348,"mutability":"mutable","name":"tick","nodeType":"VariableDeclaration","scope":360,"src":"1530:10:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"},"typeName":{"id":347,"name":"int24","nodeType":"ElementaryTypeName","src":"1530:5:6","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"visibility":"internal"},{"constant":false,"id":350,"mutability":"mutable","name":"observationIndex","nodeType":"VariableDeclaration","scope":360,"src":"1554:23:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":349,"name":"uint16","nodeType":"ElementaryTypeName","src":"1554:6:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":352,"mutability":"mutable","name":"observationCardinality","nodeType":"VariableDeclaration","scope":360,"src":"1591:29:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":351,"name":"uint16","nodeType":"ElementaryTypeName","src":"1591:6:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":354,"mutability":"mutable","name":"observationCardinalityNext","nodeType":"VariableDeclaration","scope":360,"src":"1634:33:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"},"typeName":{"id":353,"name":"uint16","nodeType":"ElementaryTypeName","src":"1634:6:6","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"visibility":"internal"},{"constant":false,"id":356,"mutability":"mutable","name":"feeProtocol","nodeType":"VariableDeclaration","scope":360,"src":"1681:17:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":355,"name":"uint8","nodeType":"ElementaryTypeName","src":"1681:5:6","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":358,"mutability":"mutable","name":"unlocked","nodeType":"VariableDeclaration","scope":360,"src":"1712:13:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":357,"name":"bool","nodeType":"ElementaryTypeName","src":"1712:4:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1482:253:6"},"scope":447,"src":"1419:317:6","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":361,"nodeType":"StructuredDocumentation","src":"1742:168:6","text":"@notice The fee growth as a Q128.128 fees of token0 collected per unit of liquidity for the entire life of the pool\n @dev This value can overflow the uint256"},"functionSelector":"f3058399","id":366,"implemented":false,"kind":"function","modifiers":[],"name":"feeGrowthGlobal0X128","nodeType":"FunctionDefinition","parameters":{"id":362,"nodeType":"ParameterList","parameters":[],"src":"1944:2:6"},"returnParameters":{"id":365,"nodeType":"ParameterList","parameters":[{"constant":false,"id":364,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","scope":366,"src":"1970:7:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":363,"name":"uint256","nodeType":"ElementaryTypeName","src":"1970:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1969:9:6"},"scope":447,"src":"1915:64:6","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":367,"nodeType":"StructuredDocumentation","src":"1985:168:6","text":"@notice The fee growth as a Q128.128 fees of token1 collected per unit of liquidity for the entire life of the pool\n @dev This value can overflow the uint256"},"functionSelector":"46141319","id":372,"implemented":false,"kind":"function","modifiers":[],"name":"feeGrowthGlobal1X128","nodeType":"FunctionDefinition","parameters":{"id":368,"nodeType":"ParameterList","parameters":[],"src":"2187:2:6"},"returnParameters":{"id":371,"nodeType":"ParameterList","parameters":[{"constant":false,"id":370,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","scope":372,"src":"2213:7:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":369,"name":"uint256","nodeType":"ElementaryTypeName","src":"2213:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2212:9:6"},"scope":447,"src":"2158:64:6","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":373,"nodeType":"StructuredDocumentation","src":"2228:147:6","text":"@notice The amounts of token0 and token1 that are owed to the protocol\n @dev Protocol fees will never exceed uint128 max in either token"},"functionSelector":"1ad8b03b","id":380,"implemented":false,"kind":"function","modifiers":[],"name":"protocolFees","nodeType":"FunctionDefinition","parameters":{"id":374,"nodeType":"ParameterList","parameters":[],"src":"2401:2:6"},"returnParameters":{"id":379,"nodeType":"ParameterList","parameters":[{"constant":false,"id":376,"mutability":"mutable","name":"token0","nodeType":"VariableDeclaration","scope":380,"src":"2427:14:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":375,"name":"uint128","nodeType":"ElementaryTypeName","src":"2427:7:6","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":378,"mutability":"mutable","name":"token1","nodeType":"VariableDeclaration","scope":380,"src":"2443:14:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":377,"name":"uint128","nodeType":"ElementaryTypeName","src":"2443:7:6","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"2426:32:6"},"scope":447,"src":"2380:79:6","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":381,"nodeType":"StructuredDocumentation","src":"2465:150:6","text":"@notice The currently in range liquidity available to the pool\n @dev This value has no relationship to the total liquidity across all ticks"},"functionSelector":"1a686502","id":386,"implemented":false,"kind":"function","modifiers":[],"name":"liquidity","nodeType":"FunctionDefinition","parameters":{"id":382,"nodeType":"ParameterList","parameters":[],"src":"2638:2:6"},"returnParameters":{"id":385,"nodeType":"ParameterList","parameters":[{"constant":false,"id":384,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","scope":386,"src":"2664:7:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":383,"name":"uint128","nodeType":"ElementaryTypeName","src":"2664:7:6","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"2663:9:6"},"scope":447,"src":"2620:53:6","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":387,"nodeType":"StructuredDocumentation","src":"2679:1244:6","text":"@notice Look up information about a specific tick in the pool\n @param tick The tick to look up\n @return liquidityGross the total amount of position liquidity that uses the pool either as tick lower or\n tick upper,\n liquidityNet how much liquidity changes when the pool price crosses the tick,\n feeGrowthOutside0X128 the fee growth on the other side of the tick from the current tick in token0,\n feeGrowthOutside1X128 the fee growth on the other side of the tick from the current tick in token1,\n tickCumulativeOutside the cumulative tick value on the other side of the tick from the current tick\n secondsPerLiquidityOutsideX128 the seconds spent per liquidity on the other side of the tick from the current tick,\n secondsOutside the seconds spent on the other side of the tick from the current tick,\n initialized Set to true if the tick is initialized, i.e. liquidityGross is greater than 0, otherwise equal to false.\n Outside values can only be used if the tick is initialized, i.e. if liquidityGross is greater than 0.\n In addition, these values are only relative and must be used only in comparison to previous snapshots for\n a specific position."},"functionSelector":"f30dba93","id":408,"implemented":false,"kind":"function","modifiers":[],"name":"ticks","nodeType":"FunctionDefinition","parameters":{"id":390,"nodeType":"ParameterList","parameters":[{"constant":false,"id":389,"mutability":"mutable","name":"tick","nodeType":"VariableDeclaration","scope":408,"src":"3952:10:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"},"typeName":{"id":388,"name":"int24","nodeType":"ElementaryTypeName","src":"3952:5:6","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"visibility":"internal"}],"src":"3942:26:6"},"returnParameters":{"id":407,"nodeType":"ParameterList","parameters":[{"constant":false,"id":392,"mutability":"mutable","name":"liquidityGross","nodeType":"VariableDeclaration","scope":408,"src":"4029:22:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":391,"name":"uint128","nodeType":"ElementaryTypeName","src":"4029:7:6","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":394,"mutability":"mutable","name":"liquidityNet","nodeType":"VariableDeclaration","scope":408,"src":"4065:19:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"},"typeName":{"id":393,"name":"int128","nodeType":"ElementaryTypeName","src":"4065:6:6","typeDescriptions":{"typeIdentifier":"t_int128","typeString":"int128"}},"visibility":"internal"},{"constant":false,"id":396,"mutability":"mutable","name":"feeGrowthOutside0X128","nodeType":"VariableDeclaration","scope":408,"src":"4098:29:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":395,"name":"uint256","nodeType":"ElementaryTypeName","src":"4098:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":398,"mutability":"mutable","name":"feeGrowthOutside1X128","nodeType":"VariableDeclaration","scope":408,"src":"4141:29:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":397,"name":"uint256","nodeType":"ElementaryTypeName","src":"4141:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":400,"mutability":"mutable","name":"tickCumulativeOutside","nodeType":"VariableDeclaration","scope":408,"src":"4184:27:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int56","typeString":"int56"},"typeName":{"id":399,"name":"int56","nodeType":"ElementaryTypeName","src":"4184:5:6","typeDescriptions":{"typeIdentifier":"t_int56","typeString":"int56"}},"visibility":"internal"},{"constant":false,"id":402,"mutability":"mutable","name":"secondsPerLiquidityOutsideX128","nodeType":"VariableDeclaration","scope":408,"src":"4225:38:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"},"typeName":{"id":401,"name":"uint160","nodeType":"ElementaryTypeName","src":"4225:7:6","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},"visibility":"internal"},{"constant":false,"id":404,"mutability":"mutable","name":"secondsOutside","nodeType":"VariableDeclaration","scope":408,"src":"4277:21:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":403,"name":"uint32","nodeType":"ElementaryTypeName","src":"4277:6:6","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":406,"mutability":"mutable","name":"initialized","nodeType":"VariableDeclaration","scope":408,"src":"4312:16:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":405,"name":"bool","nodeType":"ElementaryTypeName","src":"4312:4:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4015:323:6"},"scope":447,"src":"3928:411:6","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":409,"nodeType":"StructuredDocumentation","src":"4345:99:6","text":"@notice Returns 256 packed tick initialized boolean values. See TickBitmap for more information"},"functionSelector":"5339c296","id":416,"implemented":false,"kind":"function","modifiers":[],"name":"tickBitmap","nodeType":"FunctionDefinition","parameters":{"id":412,"nodeType":"ParameterList","parameters":[{"constant":false,"id":411,"mutability":"mutable","name":"wordPosition","nodeType":"VariableDeclaration","scope":416,"src":"4469:18:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int16","typeString":"int16"},"typeName":{"id":410,"name":"int16","nodeType":"ElementaryTypeName","src":"4469:5:6","typeDescriptions":{"typeIdentifier":"t_int16","typeString":"int16"}},"visibility":"internal"}],"src":"4468:20:6"},"returnParameters":{"id":415,"nodeType":"ParameterList","parameters":[{"constant":false,"id":414,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","scope":416,"src":"4512:7:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":413,"name":"uint256","nodeType":"ElementaryTypeName","src":"4512:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4511:9:6"},"scope":447,"src":"4449:72:6","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":417,"nodeType":"StructuredDocumentation","src":"4527:700:6","text":"@notice Returns the information about a position by the position's key\n @param key The position's key is a hash of a preimage composed by the owner, tickLower and tickUpper\n @return _liquidity The amount of liquidity in the position,\n Returns feeGrowthInside0LastX128 fee growth of token0 inside the tick range as of the last mint/burn/poke,\n Returns feeGrowthInside1LastX128 fee growth of token1 inside the tick range as of the last mint/burn/poke,\n Returns tokensOwed0 the computed amount of token0 owed to the position as of the last mint/burn/poke,\n Returns tokensOwed1 the computed amount of token1 owed to the position as of the last mint/burn/poke"},"functionSelector":"514ea4bf","id":432,"implemented":false,"kind":"function","modifiers":[],"name":"positions","nodeType":"FunctionDefinition","parameters":{"id":420,"nodeType":"ParameterList","parameters":[{"constant":false,"id":419,"mutability":"mutable","name":"key","nodeType":"VariableDeclaration","scope":432,"src":"5260:11:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":418,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5260:7:6","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"5250:27:6"},"returnParameters":{"id":431,"nodeType":"ParameterList","parameters":[{"constant":false,"id":422,"mutability":"mutable","name":"_liquidity","nodeType":"VariableDeclaration","scope":432,"src":"5338:18:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":421,"name":"uint128","nodeType":"ElementaryTypeName","src":"5338:7:6","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":424,"mutability":"mutable","name":"feeGrowthInside0LastX128","nodeType":"VariableDeclaration","scope":432,"src":"5370:32:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":423,"name":"uint256","nodeType":"ElementaryTypeName","src":"5370:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":426,"mutability":"mutable","name":"feeGrowthInside1LastX128","nodeType":"VariableDeclaration","scope":432,"src":"5416:32:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":425,"name":"uint256","nodeType":"ElementaryTypeName","src":"5416:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":428,"mutability":"mutable","name":"tokensOwed0","nodeType":"VariableDeclaration","scope":432,"src":"5462:19:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":427,"name":"uint128","nodeType":"ElementaryTypeName","src":"5462:7:6","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":430,"mutability":"mutable","name":"tokensOwed1","nodeType":"VariableDeclaration","scope":432,"src":"5495:19:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":429,"name":"uint128","nodeType":"ElementaryTypeName","src":"5495:7:6","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"5324:200:6"},"scope":447,"src":"5232:293:6","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":433,"nodeType":"StructuredDocumentation","src":"5531:749:6","text":"@notice Returns data about a specific observation index\n @param index The element of the observations array to fetch\n @dev You most likely want to use #observe() instead of this method to get an observation as of some amount of time\n ago, rather than at a specific index in the array.\n @return blockTimestamp The timestamp of the observation,\n Returns tickCumulative the tick multiplied by seconds elapsed for the life of the pool as of the observation timestamp,\n Returns secondsPerLiquidityCumulativeX128 the seconds per in range liquidity for the life of the pool as of the observation timestamp,\n Returns initialized whether the observation has been initialized and the values are safe to use"},"functionSelector":"252c09d7","id":446,"implemented":false,"kind":"function","modifiers":[],"name":"observations","nodeType":"FunctionDefinition","parameters":{"id":436,"nodeType":"ParameterList","parameters":[{"constant":false,"id":435,"mutability":"mutable","name":"index","nodeType":"VariableDeclaration","scope":446,"src":"6316:13:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":434,"name":"uint256","nodeType":"ElementaryTypeName","src":"6316:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6306:29:6"},"returnParameters":{"id":445,"nodeType":"ParameterList","parameters":[{"constant":false,"id":438,"mutability":"mutable","name":"blockTimestamp","nodeType":"VariableDeclaration","scope":446,"src":"6396:21:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"},"typeName":{"id":437,"name":"uint32","nodeType":"ElementaryTypeName","src":"6396:6:6","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"visibility":"internal"},{"constant":false,"id":440,"mutability":"mutable","name":"tickCumulative","nodeType":"VariableDeclaration","scope":446,"src":"6431:20:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int56","typeString":"int56"},"typeName":{"id":439,"name":"int56","nodeType":"ElementaryTypeName","src":"6431:5:6","typeDescriptions":{"typeIdentifier":"t_int56","typeString":"int56"}},"visibility":"internal"},{"constant":false,"id":442,"mutability":"mutable","name":"secondsPerLiquidityCumulativeX128","nodeType":"VariableDeclaration","scope":446,"src":"6465:41:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"},"typeName":{"id":441,"name":"uint160","nodeType":"ElementaryTypeName","src":"6465:7:6","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},"visibility":"internal"},{"constant":false,"id":444,"mutability":"mutable","name":"initialized","nodeType":"VariableDeclaration","scope":446,"src":"6520:16:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":443,"name":"bool","nodeType":"ElementaryTypeName","src":"6520:4:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"6382:164:6"},"scope":447,"src":"6285:262:6","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":448,"src":"240:6309:6"}],"src":"45:6505:6"},"id":6},"@airdao/astra-cl-core/contracts/libraries/BitMath.sol":{"ast":{"absolutePath":"@airdao/astra-cl-core/contracts/libraries/BitMath.sol","exportedSymbols":{"BitMath":[726]},"id":727,"license":"GPL-2.0-or-later","nodeType":"SourceUnit","nodes":[{"id":449,"literals":["solidity",">=","0.5",".0"],"nodeType":"PragmaDirective","src":"45:24:7"},{"abstract":false,"baseContracts":[],"contractDependencies":[],"contractKind":"library","documentation":{"id":450,"nodeType":"StructuredDocumentation","src":"71:116:7","text":"@title BitMath\n @dev This library provides functionality for computing bit properties of an unsigned integer"},"fullyImplemented":true,"id":726,"linearizedBaseContracts":[726],"name":"BitMath","nodeType":"ContractDefinition","nodes":[{"body":{"id":563,"nodeType":"Block","src":"742:660:7","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":461,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":459,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":453,"src":"760:1:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":460,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"764:1:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"760:5:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":458,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"752:7:7","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":462,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"752:14:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":463,"nodeType":"ExpressionStatement","src":"752:14:7"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":466,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":464,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":453,"src":"781:1:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"hexValue":"3078313030303030303030303030303030303030303030303030303030303030303030","id":465,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"786:35:7","typeDescriptions":{"typeIdentifier":"t_rational_340282366920938463463374607431768211456_by_1","typeString":"int_const 3402...(31 digits omitted)...1456"},"value":"0x100000000000000000000000000000000"},"src":"781:40:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":476,"nodeType":"IfStatement","src":"777:102:7","trueBody":{"id":475,"nodeType":"Block","src":"823:56:7","statements":[{"expression":{"id":469,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":467,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":453,"src":"837:1:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"313238","id":468,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"843:3:7","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"837:9:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":470,"nodeType":"ExpressionStatement","src":"837:9:7"},{"expression":{"id":473,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":471,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":456,"src":"860:1:7","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"313238","id":472,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"865:3:7","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"860:8:7","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":474,"nodeType":"ExpressionStatement","src":"860:8:7"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":479,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":477,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":453,"src":"892:1:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"hexValue":"30783130303030303030303030303030303030","id":478,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"897:19:7","typeDescriptions":{"typeIdentifier":"t_rational_18446744073709551616_by_1","typeString":"int_const 18446744073709551616"},"value":"0x10000000000000000"},"src":"892:24:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":489,"nodeType":"IfStatement","src":"888:84:7","trueBody":{"id":488,"nodeType":"Block","src":"918:54:7","statements":[{"expression":{"id":482,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":480,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":453,"src":"932:1:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"3634","id":481,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"938:2:7","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"932:8:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":483,"nodeType":"ExpressionStatement","src":"932:8:7"},{"expression":{"id":486,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":484,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":456,"src":"954:1:7","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3634","id":485,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"959:2:7","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"954:7:7","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":487,"nodeType":"ExpressionStatement","src":"954:7:7"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":492,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":490,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":453,"src":"985:1:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"hexValue":"3078313030303030303030","id":491,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"990:11:7","typeDescriptions":{"typeIdentifier":"t_rational_4294967296_by_1","typeString":"int_const 4294967296"},"value":"0x100000000"},"src":"985:16:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":502,"nodeType":"IfStatement","src":"981:76:7","trueBody":{"id":501,"nodeType":"Block","src":"1003:54:7","statements":[{"expression":{"id":495,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":493,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":453,"src":"1017:1:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"3332","id":494,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1023:2:7","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"1017:8:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":496,"nodeType":"ExpressionStatement","src":"1017:8:7"},{"expression":{"id":499,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":497,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":456,"src":"1039:1:7","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3332","id":498,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1044:2:7","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"1039:7:7","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":500,"nodeType":"ExpressionStatement","src":"1039:7:7"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":505,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":503,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":453,"src":"1070:1:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"hexValue":"30783130303030","id":504,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1075:7:7","typeDescriptions":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"},"value":"0x10000"},"src":"1070:12:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":515,"nodeType":"IfStatement","src":"1066:72:7","trueBody":{"id":514,"nodeType":"Block","src":"1084:54:7","statements":[{"expression":{"id":508,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":506,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":453,"src":"1098:1:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"3136","id":507,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1104:2:7","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"1098:8:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":509,"nodeType":"ExpressionStatement","src":"1098:8:7"},{"expression":{"id":512,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":510,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":456,"src":"1120:1:7","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3136","id":511,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1125:2:7","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"1120:7:7","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":513,"nodeType":"ExpressionStatement","src":"1120:7:7"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":518,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":516,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":453,"src":"1151:1:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"hexValue":"3078313030","id":517,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1156:5:7","typeDescriptions":{"typeIdentifier":"t_rational_256_by_1","typeString":"int_const 256"},"value":"0x100"},"src":"1151:10:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":528,"nodeType":"IfStatement","src":"1147:68:7","trueBody":{"id":527,"nodeType":"Block","src":"1163:52:7","statements":[{"expression":{"id":521,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":519,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":453,"src":"1177:1:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"38","id":520,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1183:1:7","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"1177:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":522,"nodeType":"ExpressionStatement","src":"1177:7:7"},{"expression":{"id":525,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":523,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":456,"src":"1198:1:7","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"38","id":524,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1203:1:7","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"1198:6:7","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":526,"nodeType":"ExpressionStatement","src":"1198:6:7"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":531,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":529,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":453,"src":"1228:1:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"hexValue":"30783130","id":530,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1233:4:7","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"0x10"},"src":"1228:9:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":541,"nodeType":"IfStatement","src":"1224:67:7","trueBody":{"id":540,"nodeType":"Block","src":"1239:52:7","statements":[{"expression":{"id":534,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":532,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":453,"src":"1253:1:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"34","id":533,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1259:1:7","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"1253:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":535,"nodeType":"ExpressionStatement","src":"1253:7:7"},{"expression":{"id":538,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":536,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":456,"src":"1274:1:7","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"34","id":537,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1279:1:7","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"1274:6:7","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":539,"nodeType":"ExpressionStatement","src":"1274:6:7"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":544,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":542,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":453,"src":"1304:1:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"hexValue":"307834","id":543,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1309:3:7","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"0x4"},"src":"1304:8:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":554,"nodeType":"IfStatement","src":"1300:66:7","trueBody":{"id":553,"nodeType":"Block","src":"1314:52:7","statements":[{"expression":{"id":547,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":545,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":453,"src":"1328:1:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"32","id":546,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1334:1:7","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"1328:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":548,"nodeType":"ExpressionStatement","src":"1328:7:7"},{"expression":{"id":551,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":549,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":456,"src":"1349:1:7","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"32","id":550,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1354:1:7","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"1349:6:7","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":552,"nodeType":"ExpressionStatement","src":"1349:6:7"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":557,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":555,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":453,"src":"1379:1:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"hexValue":"307832","id":556,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1384:3:7","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"0x2"},"src":"1379:8:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":562,"nodeType":"IfStatement","src":"1375:20:7","trueBody":{"expression":{"id":560,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":558,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":456,"src":"1389:1:7","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":559,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1394:1:7","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1389:6:7","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":561,"nodeType":"ExpressionStatement","src":"1389:6:7"}}]},"documentation":{"id":451,"nodeType":"StructuredDocumentation","src":"209:457:7","text":"@notice Returns the index of the most significant bit of the number,\n     where the least significant bit is at index 0 and the most significant bit is at index 255\n @dev The function satisfies the property:\n     x >= 2**mostSignificantBit(x) and x < 2**(mostSignificantBit(x)+1)\n @param x the value for which to compute the most significant bit, must be greater than 0\n @return r the index of the most significant bit"},"id":564,"implemented":true,"kind":"function","modifiers":[],"name":"mostSignificantBit","nodeType":"FunctionDefinition","parameters":{"id":454,"nodeType":"ParameterList","parameters":[{"constant":false,"id":453,"mutability":"mutable","name":"x","nodeType":"VariableDeclaration","scope":564,"src":"699:9:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":452,"name":"uint256","nodeType":"ElementaryTypeName","src":"699:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"698:11:7"},"returnParameters":{"id":457,"nodeType":"ParameterList","parameters":[{"constant":false,"id":456,"mutability":"mutable","name":"r","nodeType":"VariableDeclaration","scope":564,"src":"733:7:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":455,"name":"uint8","nodeType":"ElementaryTypeName","src":"733:5:7","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"732:9:7"},"scope":726,"src":"671:731:7","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":724,"nodeType":"Block","src":"1965:822:7","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":575,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":573,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":567,"src":"1983:1:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":574,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1987:1:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1983:5:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":572,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1975:7:7","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":576,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1975:14:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":577,"nodeType":"ExpressionStatement","src":"1975:14:7"},{"expression":{"id":580,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":578,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":570,"src":"2000:1:7","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"323535","id":579,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2004:3:7","typeDescriptions":{"typeIdentifier":"t_rational_255_by_1","typeString":"int_const 255"},"value":"255"},"src":"2000:7:7","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":581,"nodeType":"ExpressionStatement","src":"2000:7:7"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":590,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":588,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":582,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":567,"src":"2021:1:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"expression":{"arguments":[{"id":585,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2030:7:7","typeDescriptions":{"typeIdentifier":"t_type$_t_uint128_$","typeString":"type(uint128)"},"typeName":{"id":584,"name":"uint128","nodeType":"ElementaryTypeName","src":"2030:7:7","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint128_$","typeString":"type(uint128)"}],"id":583,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"2025:4:7","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":586,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2025:13:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint128","typeString":"type(uint128)"}},"id":587,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"max","nodeType":"MemberAccess","src":"2025:17:7","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"2021:21:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":589,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2045:1:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2021:25:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":600,"nodeType":"Block","src":"2087:34:7","statements":[{"expression":{"id":598,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":596,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":567,"src":"2101:1:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"313238","id":597,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2107:3:7","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"2101:9:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":599,"nodeType":"ExpressionStatement","src":"2101:9:7"}]},"id":601,"nodeType":"IfStatement","src":"2017:104:7","trueBody":{"id":595,"nodeType":"Block","src":"2048:33:7","statements":[{"expression":{"id":593,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":591,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":570,"src":"2062:1:7","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"hexValue":"313238","id":592,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2067:3:7","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"2062:8:7","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":594,"nodeType":"ExpressionStatement","src":"2062:8:7"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":610,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":608,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":602,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":567,"src":"2134:1:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"expression":{"arguments":[{"id":605,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2143:6:7","typeDescriptions":{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"},"typeName":{"id":604,"name":"uint64","nodeType":"ElementaryTypeName","src":"2143:6:7","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"}],"id":603,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"2138:4:7","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":606,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2138:12:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint64","typeString":"type(uint64)"}},"id":607,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"max","nodeType":"MemberAccess","src":"2138:16:7","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"2134:20:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":609,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2157:1:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2134:24:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":620,"nodeType":"Block","src":"2198:33:7","statements":[{"expression":{"id":618,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":616,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":567,"src":"2212:1:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"3634","id":617,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2218:2:7","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"2212:8:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":619,"nodeType":"ExpressionStatement","src":"2212:8:7"}]},"id":621,"nodeType":"IfStatement","src":"2130:101:7","trueBody":{"id":615,"nodeType":"Block","src":"2160:32:7","statements":[{"expression":{"id":613,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":611,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":570,"src":"2174:1:7","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"hexValue":"3634","id":612,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2179:2:7","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"2174:7:7","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":614,"nodeType":"ExpressionStatement","src":"2174:7:7"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":630,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":628,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":622,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":567,"src":"2244:1:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"expression":{"arguments":[{"id":625,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2253:6:7","typeDescriptions":{"typeIdentifier":"t_type$_t_uint32_$","typeString":"type(uint32)"},"typeName":{"id":624,"name":"uint32","nodeType":"ElementaryTypeName","src":"2253:6:7","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint32_$","typeString":"type(uint32)"}],"id":623,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"2248:4:7","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":626,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2248:12:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint32","typeString":"type(uint32)"}},"id":627,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"max","nodeType":"MemberAccess","src":"2248:16:7","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}},"src":"2244:20:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":629,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2267:1:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2244:24:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":640,"nodeType":"Block","src":"2308:33:7","statements":[{"expression":{"id":638,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":636,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":567,"src":"2322:1:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"3332","id":637,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2328:2:7","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"2322:8:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":639,"nodeType":"ExpressionStatement","src":"2322:8:7"}]},"id":641,"nodeType":"IfStatement","src":"2240:101:7","trueBody":{"id":635,"nodeType":"Block","src":"2270:32:7","statements":[{"expression":{"id":633,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":631,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":570,"src":"2284:1:7","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"hexValue":"3332","id":632,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2289:2:7","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"2284:7:7","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":634,"nodeType":"ExpressionStatement","src":"2284:7:7"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":650,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":648,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":642,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":567,"src":"2354:1:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"expression":{"arguments":[{"id":645,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2363:6:7","typeDescriptions":{"typeIdentifier":"t_type$_t_uint16_$","typeString":"type(uint16)"},"typeName":{"id":644,"name":"uint16","nodeType":"ElementaryTypeName","src":"2363:6:7","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint16_$","typeString":"type(uint16)"}],"id":643,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"2358:4:7","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":646,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2358:12:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint16","typeString":"type(uint16)"}},"id":647,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"max","nodeType":"MemberAccess","src":"2358:16:7","typeDescriptions":{"typeIdentifier":"t_uint16","typeString":"uint16"}},"src":"2354:20:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":649,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2377:1:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2354:24:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":660,"nodeType":"Block","src":"2418:33:7","statements":[{"expression":{"id":658,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":656,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":567,"src":"2432:1:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"3136","id":657,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2438:2:7","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"2432:8:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":659,"nodeType":"ExpressionStatement","src":"2432:8:7"}]},"id":661,"nodeType":"IfStatement","src":"2350:101:7","trueBody":{"id":655,"nodeType":"Block","src":"2380:32:7","statements":[{"expression":{"id":653,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":651,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":570,"src":"2394:1:7","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"hexValue":"3136","id":652,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2399:2:7","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"2394:7:7","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":654,"nodeType":"ExpressionStatement","src":"2394:7:7"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":670,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":668,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":662,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":567,"src":"2464:1:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"expression":{"arguments":[{"id":665,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2473:5:7","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":664,"name":"uint8","nodeType":"ElementaryTypeName","src":"2473:5:7","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"}],"id":663,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"2468:4:7","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":666,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2468:11:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint8","typeString":"type(uint8)"}},"id":667,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"max","nodeType":"MemberAccess","src":"2468:15:7","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"2464:19:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":669,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2486:1:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2464:23:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":680,"nodeType":"Block","src":"2526:32:7","statements":[{"expression":{"id":678,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":676,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":567,"src":"2540:1:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"38","id":677,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2546:1:7","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"2540:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":679,"nodeType":"ExpressionStatement","src":"2540:7:7"}]},"id":681,"nodeType":"IfStatement","src":"2460:98:7","trueBody":{"id":675,"nodeType":"Block","src":"2489:31:7","statements":[{"expression":{"id":673,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":671,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":570,"src":"2503:1:7","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"hexValue":"38","id":672,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2508:1:7","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"2503:6:7","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":674,"nodeType":"ExpressionStatement","src":"2503:6:7"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":686,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":684,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":682,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":567,"src":"2571:1:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"hexValue":"307866","id":683,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2575:3:7","typeDescriptions":{"typeIdentifier":"t_rational_15_by_1","typeString":"int_const 15"},"value":"0xf"},"src":"2571:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":685,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2581:1:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2571:11:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":696,"nodeType":"Block","src":"2621:32:7","statements":[{"expression":{"id":694,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":692,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":567,"src":"2635:1:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"34","id":693,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2641:1:7","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"2635:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":695,"nodeType":"ExpressionStatement","src":"2635:7:7"}]},"id":697,"nodeType":"IfStatement","src":"2567:86:7","trueBody":{"id":691,"nodeType":"Block","src":"2584:31:7","statements":[{"expression":{"id":689,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":687,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":570,"src":"2598:1:7","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"hexValue":"34","id":688,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2603:1:7","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"2598:6:7","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":690,"nodeType":"ExpressionStatement","src":"2598:6:7"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":702,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":700,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":698,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":567,"src":"2666:1:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"hexValue":"307833","id":699,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2670:3:7","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"0x3"},"src":"2666:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":701,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2676:1:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2666:11:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":712,"nodeType":"Block","src":"2716:32:7","statements":[{"expression":{"id":710,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":708,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":567,"src":"2730:1:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"32","id":709,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2736:1:7","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"2730:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":711,"nodeType":"ExpressionStatement","src":"2730:7:7"}]},"id":713,"nodeType":"IfStatement","src":"2662:86:7","trueBody":{"id":707,"nodeType":"Block","src":"2679:31:7","statements":[{"expression":{"id":705,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":703,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":570,"src":"2693:1:7","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"hexValue":"32","id":704,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2698:1:7","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"2693:6:7","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":706,"nodeType":"ExpressionStatement","src":"2693:6:7"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":718,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":716,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":714,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":567,"src":"2761:1:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"hexValue":"307831","id":715,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2765:3:7","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"0x1"},"src":"2761:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":717,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2771:1:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2761:11:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":723,"nodeType":"IfStatement","src":"2757:23:7","trueBody":{"expression":{"id":721,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":719,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":570,"src":"2774:1:7","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"hexValue":"31","id":720,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2779:1:7","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"2774:6:7","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":722,"nodeType":"ExpressionStatement","src":"2774:6:7"}}]},"documentation":{"id":565,"nodeType":"StructuredDocumentation","src":"1408:480:7","text":"@notice Returns the index of the least significant bit of the number,\n     where the least significant bit is at index 0 and the most significant bit is at index 255\n @dev The function satisfies the property:\n     (x & 2**leastSignificantBit(x)) != 0 and (x & (2**(leastSignificantBit(x)) - 1)) == 0)\n @param x the value for which to compute the least significant bit, must be greater than 0\n @return r the index of the least significant bit"},"id":725,"implemented":true,"kind":"function","modifiers":[],"name":"leastSignificantBit","nodeType":"FunctionDefinition","parameters":{"id":568,"nodeType":"ParameterList","parameters":[{"constant":false,"id":567,"mutability":"mutable","name":"x","nodeType":"VariableDeclaration","scope":725,"src":"1922:9:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":566,"name":"uint256","nodeType":"ElementaryTypeName","src":"1922:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1921:11:7"},"returnParameters":{"id":571,"nodeType":"ParameterList","parameters":[{"constant":false,"id":570,"mutability":"mutable","name":"r","nodeType":"VariableDeclaration","scope":725,"src":"1956:7:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":569,"name":"uint8","nodeType":"ElementaryTypeName","src":"1956:5:7","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"1955:9:7"},"scope":726,"src":"1893:894:7","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":727,"src":"187:2602:7"}],"src":"45:2745:7"},"id":7},"@airdao/astra-cl-core/contracts/libraries/FullMath.sol":{"ast":{"absolutePath":"@airdao/astra-cl-core/contracts/libraries/FullMath.sol","exportedSymbols":{"FullMath":[899]},"id":900,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":728,"literals":["solidity",">=","0.4",".0","<","0.8",".0"],"nodeType":"PragmaDirective","src":"32:31:8"},{"abstract":false,"baseContracts":[],"contractDependencies":[],"contractKind":"library","documentation":{"id":729,"nodeType":"StructuredDocumentation","src":"65:297:8","text":"@title Contains 512-bit math functions\n @notice Facilitates multiplication and division that can have overflow of an intermediate value without any loss of precision\n @dev Handles \"phantom overflow\" i.e., allows multiplication and division where an intermediate value overflows 256 bits"},"fullyImplemented":true,"id":899,"linearizedBaseContracts":[899],"name":"FullMath","nodeType":"ContractDefinition","nodes":[{"body":{"id":854,"nodeType":"Block","src":"847:3648:8","statements":[{"assignments":[742],"declarations":[{"constant":false,"id":742,"mutability":"mutable","name":"prod0","nodeType":"VariableDeclaration","scope":854,"src":"1160:13:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":741,"name":"uint256","nodeType":"ElementaryTypeName","src":"1160:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":743,"nodeType":"VariableDeclarationStatement","src":"1160:13:8"},{"assignments":[745],"declarations":[{"constant":false,"id":745,"mutability":"mutable","name":"prod1","nodeType":"VariableDeclaration","scope":854,"src":"1228:13:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":744,"name":"uint256","nodeType":"ElementaryTypeName","src":"1228:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":746,"nodeType":"VariableDeclarationStatement","src":"1228:13:8"},{"AST":{"nodeType":"YulBlock","src":"1304:141:8","statements":[{"nodeType":"YulVariableDeclaration","src":"1318:30:8","value":{"arguments":[{"name":"a","nodeType":"YulIdentifier","src":"1335:1:8"},{"name":"b","nodeType":"YulIdentifier","src":"1338:1:8"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1345:1:8","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"1341:3:8"},"nodeType":"YulFunctionCall","src":"1341:6:8"}],"functionName":{"name":"mulmod","nodeType":"YulIdentifier","src":"1328:6:8"},"nodeType":"YulFunctionCall","src":"1328:20:8"},"variables":[{"name":"mm","nodeType":"YulTypedName","src":"1322:2:8","type":""}]},{"nodeType":"YulAssignment","src":"1361:18:8","value":{"arguments":[{"name":"a","nodeType":"YulIdentifier","src":"1374:1:8"},{"name":"b","nodeType":"YulIdentifier","src":"1377:1:8"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"1370:3:8"},"nodeType":"YulFunctionCall","src":"1370:9:8"},"variableNames":[{"name":"prod0","nodeType":"YulIdentifier","src":"1361:5:8"}]},{"nodeType":"YulAssignment","src":"1392:43:8","value":{"arguments":[{"arguments":[{"name":"mm","nodeType":"YulIdentifier","src":"1409:2:8"},{"name":"prod0","nodeType":"YulIdentifier","src":"1413:5:8"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1405:3:8"},"nodeType":"YulFunctionCall","src":"1405:14:8"},{"arguments":[{"name":"mm","nodeType":"YulIdentifier","src":"1424:2:8"},{"name":"prod0","nodeType":"YulIdentifier","src":"1428:5:8"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"1421:2:8"},"nodeType":"YulFunctionCall","src":"1421:13:8"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1401:3:8"},"nodeType":"YulFunctionCall","src":"1401:34:8"},"variableNames":[{"name":"prod1","nodeType":"YulIdentifier","src":"1392:5:8"}]}]},"evmVersion":"istanbul","externalReferences":[{"declaration":732,"isOffset":false,"isSlot":false,"src":"1335:1:8","valueSize":1},{"declaration":732,"isOffset":false,"isSlot":false,"src":"1374:1:8","valueSize":1},{"declaration":734,"isOffset":false,"isSlot":false,"src":"1338:1:8","valueSize":1},{"declaration":734,"isOffset":false,"isSlot":false,"src":"1377:1:8","valueSize":1},{"declaration":742,"isOffset":false,"isSlot":false,"src":"1361:5:8","valueSize":1},{"declaration":742,"isOffset":false,"isSlot":false,"src":"1413:5:8","valueSize":1},{"declaration":742,"isOffset":false,"isSlot":false,"src":"1428:5:8","valueSize":1},{"declaration":745,"isOffset":false,"isSlot":false,"src":"1392:5:8","valueSize":1}],"id":747,"nodeType":"InlineAssembly","src":"1295:150:8"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":750,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":748,"name":"prod1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":745,"src":"1517:5:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":749,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1526:1:8","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1517:10:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":761,"nodeType":"IfStatement","src":"1513:179:8","trueBody":{"id":760,"nodeType":"Block","src":"1529:163:8","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":754,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":752,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":736,"src":"1551:11:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":753,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1565:1:8","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1551:15:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":751,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1543:7:8","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":755,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1543:24:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":756,"nodeType":"ExpressionStatement","src":"1543:24:8"},{"AST":{"nodeType":"YulBlock","src":"1590:65:8","statements":[{"nodeType":"YulAssignment","src":"1608:33:8","value":{"arguments":[{"name":"prod0","nodeType":"YulIdentifier","src":"1622:5:8"},{"name":"denominator","nodeType":"YulIdentifier","src":"1629:11:8"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"1618:3:8"},"nodeType":"YulFunctionCall","src":"1618:23:8"},"variableNames":[{"name":"result","nodeType":"YulIdentifier","src":"1608:6:8"}]}]},"evmVersion":"istanbul","externalReferences":[{"declaration":736,"isOffset":false,"isSlot":false,"src":"1629:11:8","valueSize":1},{"declaration":742,"isOffset":false,"isSlot":false,"src":"1622:5:8","valueSize":1},{"declaration":739,"isOffset":false,"isSlot":false,"src":"1608:6:8","valueSize":1}],"id":757,"nodeType":"InlineAssembly","src":"1581:74:8"},{"expression":{"id":758,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":739,"src":"1675:6:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":740,"id":759,"nodeType":"Return","src":"1668:13:8"}]}},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":765,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":763,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":736,"src":"1805:11:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":764,"name":"prod1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":745,"src":"1819:5:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1805:19:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":762,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1797:7:8","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":766,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1797:28:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":767,"nodeType":"ExpressionStatement","src":"1797:28:8"},{"assignments":[769],"declarations":[{"constant":false,"id":769,"mutability":"mutable","name":"remainder","nodeType":"VariableDeclaration","scope":854,"src":"2102:17:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":768,"name":"uint256","nodeType":"ElementaryTypeName","src":"2102:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":770,"nodeType":"VariableDeclarationStatement","src":"2102:17:8"},{"AST":{"nodeType":"YulBlock","src":"2138:62:8","statements":[{"nodeType":"YulAssignment","src":"2152:38:8","value":{"arguments":[{"name":"a","nodeType":"YulIdentifier","src":"2172:1:8"},{"name":"b","nodeType":"YulIdentifier","src":"2175:1:8"},{"name":"denominator","nodeType":"YulIdentifier","src":"2178:11:8"}],"functionName":{"name":"mulmod","nodeType":"YulIdentifier","src":"2165:6:8"},"nodeType":"YulFunctionCall","src":"2165:25:8"},"variableNames":[{"name":"remainder","nodeType":"YulIdentifier","src":"2152:9:8"}]}]},"evmVersion":"istanbul","externalReferences":[{"declaration":732,"isOffset":false,"isSlot":false,"src":"2172:1:8","valueSize":1},{"declaration":734,"isOffset":false,"isSlot":false,"src":"2175:1:8","valueSize":1},{"declaration":736,"isOffset":false,"isSlot":false,"src":"2178:11:8","valueSize":1},{"declaration":769,"isOffset":false,"isSlot":false,"src":"2152:9:8","valueSize":1}],"id":771,"nodeType":"InlineAssembly","src":"2129:71:8"},{"AST":{"nodeType":"YulBlock","src":"2273:108:8","statements":[{"nodeType":"YulAssignment","src":"2287:41:8","value":{"arguments":[{"name":"prod1","nodeType":"YulIdentifier","src":"2300:5:8"},{"arguments":[{"name":"remainder","nodeType":"YulIdentifier","src":"2310:9:8"},{"name":"prod0","nodeType":"YulIdentifier","src":"2321:5:8"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2307:2:8"},"nodeType":"YulFunctionCall","src":"2307:20:8"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2296:3:8"},"nodeType":"YulFunctionCall","src":"2296:32:8"},"variableNames":[{"name":"prod1","nodeType":"YulIdentifier","src":"2287:5:8"}]},{"nodeType":"YulAssignment","src":"2341:30:8","value":{"arguments":[{"name":"prod0","nodeType":"YulIdentifier","src":"2354:5:8"},{"name":"remainder","nodeType":"YulIdentifier","src":"2361:9:8"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2350:3:8"},"nodeType":"YulFunctionCall","src":"2350:21:8"},"variableNames":[{"name":"prod0","nodeType":"YulIdentifier","src":"2341:5:8"}]}]},"evmVersion":"istanbul","externalReferences":[{"declaration":742,"isOffset":false,"isSlot":false,"src":"2321:5:8","valueSize":1},{"declaration":742,"isOffset":false,"isSlot":false,"src":"2341:5:8","valueSize":1},{"declaration":742,"isOffset":false,"isSlot":false,"src":"2354:5:8","valueSize":1},{"declaration":745,"isOffset":false,"isSlot":false,"src":"2287:5:8","valueSize":1},{"declaration":745,"isOffset":false,"isSlot":false,"src":"2300:5:8","valueSize":1},{"declaration":769,"isOffset":false,"isSlot":false,"src":"2310:9:8","valueSize":1},{"declaration":769,"isOffset":false,"isSlot":false,"src":"2361:9:8","valueSize":1}],"id":772,"nodeType":"InlineAssembly","src":"2264:117:8"},{"assignments":[774],"declarations":[{"constant":false,"id":774,"mutability":"mutable","name":"twos","nodeType":"VariableDeclaration","scope":854,"src":"2530:12:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":773,"name":"uint256","nodeType":"ElementaryTypeName","src":"2530:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":779,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":778,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":776,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"-","prefix":true,"src":"2545:12:8","subExpression":{"id":775,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":736,"src":"2546:11:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"id":777,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":736,"src":"2560:11:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2545:26:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2530:41:8"},{"AST":{"nodeType":"YulBlock","src":"2636:61:8","statements":[{"nodeType":"YulAssignment","src":"2650:37:8","value":{"arguments":[{"name":"denominator","nodeType":"YulIdentifier","src":"2669:11:8"},{"name":"twos","nodeType":"YulIdentifier","src":"2682:4:8"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"2665:3:8"},"nodeType":"YulFunctionCall","src":"2665:22:8"},"variableNames":[{"name":"denominator","nodeType":"YulIdentifier","src":"2650:11:8"}]}]},"evmVersion":"istanbul","externalReferences":[{"declaration":736,"isOffset":false,"isSlot":false,"src":"2650:11:8","valueSize":1},{"declaration":736,"isOffset":false,"isSlot":false,"src":"2669:11:8","valueSize":1},{"declaration":774,"isOffset":false,"isSlot":false,"src":"2682:4:8","valueSize":1}],"id":780,"nodeType":"InlineAssembly","src":"2627:70:8"},{"AST":{"nodeType":"YulBlock","src":"2770:49:8","statements":[{"nodeType":"YulAssignment","src":"2784:25:8","value":{"arguments":[{"name":"prod0","nodeType":"YulIdentifier","src":"2797:5:8"},{"name":"twos","nodeType":"YulIdentifier","src":"2804:4:8"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"2793:3:8"},"nodeType":"YulFunctionCall","src":"2793:16:8"},"variableNames":[{"name":"prod0","nodeType":"YulIdentifier","src":"2784:5:8"}]}]},"evmVersion":"istanbul","externalReferences":[{"declaration":742,"isOffset":false,"isSlot":false,"src":"2784:5:8","valueSize":1},{"declaration":742,"isOffset":false,"isSlot":false,"src":"2797:5:8","valueSize":1},{"declaration":774,"isOffset":false,"isSlot":false,"src":"2804:4:8","valueSize":1}],"id":781,"nodeType":"InlineAssembly","src":"2761:58:8"},{"AST":{"nodeType":"YulBlock","src":"3007:63:8","statements":[{"nodeType":"YulAssignment","src":"3021:39:8","value":{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3041:1:8","type":"","value":"0"},{"name":"twos","nodeType":"YulIdentifier","src":"3044:4:8"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3037:3:8"},"nodeType":"YulFunctionCall","src":"3037:12:8"},{"name":"twos","nodeType":"YulIdentifier","src":"3051:4:8"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"3033:3:8"},"nodeType":"YulFunctionCall","src":"3033:23:8"},{"kind":"number","nodeType":"YulLiteral","src":"3058:1:8","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3029:3:8"},"nodeType":"YulFunctionCall","src":"3029:31:8"},"variableNames":[{"name":"twos","nodeType":"YulIdentifier","src":"3021:4:8"}]}]},"evmVersion":"istanbul","externalReferences":[{"declaration":774,"isOffset":false,"isSlot":false,"src":"3021:4:8","valueSize":1},{"declaration":774,"isOffset":false,"isSlot":false,"src":"3044:4:8","valueSize":1},{"declaration":774,"isOffset":false,"isSlot":false,"src":"3051:4:8","valueSize":1}],"id":782,"nodeType":"InlineAssembly","src":"2998:72:8"},{"expression":{"id":787,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":783,"name":"prod0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":742,"src":"3079:5:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"|=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":786,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":784,"name":"prod1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":745,"src":"3088:5:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":785,"name":"twos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":774,"src":"3096:4:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3088:12:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3079:21:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":788,"nodeType":"ExpressionStatement","src":"3079:21:8"},{"assignments":[790],"declarations":[{"constant":false,"id":790,"mutability":"mutable","name":"inv","nodeType":"VariableDeclaration","scope":854,"src":"3434:11:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":789,"name":"uint256","nodeType":"ElementaryTypeName","src":"3434:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":797,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":796,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":793,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"33","id":791,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3449:1:8","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":792,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":736,"src":"3453:11:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3449:15:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":794,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3448:17:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"^","rightExpression":{"hexValue":"32","id":795,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3468:1:8","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"3448:21:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3434:35:8"},{"expression":{"id":804,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":798,"name":"inv","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":790,"src":"3684:3:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"*=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":803,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":799,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3691:1:8","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":802,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":800,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":736,"src":"3695:11:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":801,"name":"inv","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":790,"src":"3709:3:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3695:17:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3691:21:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3684:28:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":805,"nodeType":"ExpressionStatement","src":"3684:28:8"},{"expression":{"id":812,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":806,"name":"inv","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":790,"src":"3742:3:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"*=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":811,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":807,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3749:1:8","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":810,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":808,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":736,"src":"3753:11:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":809,"name":"inv","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":790,"src":"3767:3:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3753:17:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3749:21:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3742:28:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":813,"nodeType":"ExpressionStatement","src":"3742:28:8"},{"expression":{"id":820,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":814,"name":"inv","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":790,"src":"3801:3:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"*=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":819,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":815,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3808:1:8","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":818,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":816,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":736,"src":"3812:11:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":817,"name":"inv","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":790,"src":"3826:3:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3812:17:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3808:21:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3801:28:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":821,"nodeType":"ExpressionStatement","src":"3801:28:8"},{"expression":{"id":828,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":822,"name":"inv","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":790,"src":"3860:3:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"*=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":827,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":823,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3867:1:8","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":826,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":824,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":736,"src":"3871:11:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":825,"name":"inv","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":790,"src":"3885:3:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3871:17:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3867:21:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3860:28:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":829,"nodeType":"ExpressionStatement","src":"3860:28:8"},{"expression":{"id":836,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":830,"name":"inv","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":790,"src":"3919:3:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"*=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":835,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":831,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3926:1:8","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":834,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":832,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":736,"src":"3930:11:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":833,"name":"inv","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":790,"src":"3944:3:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3930:17:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3926:21:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3919:28:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":837,"nodeType":"ExpressionStatement","src":"3919:28:8"},{"expression":{"id":844,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":838,"name":"inv","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":790,"src":"3979:3:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"*=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":843,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":839,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3986:1:8","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":842,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":840,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":736,"src":"3990:11:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":841,"name":"inv","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":790,"src":"4004:3:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3990:17:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3986:21:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3979:28:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":845,"nodeType":"ExpressionStatement","src":"3979:28:8"},{"expression":{"id":850,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":846,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":739,"src":"4445:6:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":849,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":847,"name":"prod0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":742,"src":"4454:5:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":848,"name":"inv","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":790,"src":"4462:3:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4454:11:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4445:20:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":851,"nodeType":"ExpressionStatement","src":"4445:20:8"},{"expression":{"id":852,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":739,"src":"4482:6:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":740,"id":853,"nodeType":"Return","src":"4475:13:8"}]},"documentation":{"id":730,"nodeType":"StructuredDocumentation","src":"385:359:8","text":"@notice Calculates floor(a×b÷denominator) with full precision. Throws if result overflows a uint256 or denominator == 0\n @param a The multiplicand\n @param b The multiplier\n @param denominator The divisor\n @return result The 256-bit result\n @dev Credit to Remco Bloemen under MIT license https://xn--2-umb.com/21/muldiv"},"id":855,"implemented":true,"kind":"function","modifiers":[],"name":"mulDiv","nodeType":"FunctionDefinition","parameters":{"id":737,"nodeType":"ParameterList","parameters":[{"constant":false,"id":732,"mutability":"mutable","name":"a","nodeType":"VariableDeclaration","scope":855,"src":"765:9:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":731,"name":"uint256","nodeType":"ElementaryTypeName","src":"765:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":734,"mutability":"mutable","name":"b","nodeType":"VariableDeclaration","scope":855,"src":"776:9:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":733,"name":"uint256","nodeType":"ElementaryTypeName","src":"776:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":736,"mutability":"mutable","name":"denominator","nodeType":"VariableDeclaration","scope":855,"src":"787:19:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":735,"name":"uint256","nodeType":"ElementaryTypeName","src":"787:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"764:43:8"},"returnParameters":{"id":740,"nodeType":"ParameterList","parameters":[{"constant":false,"id":739,"mutability":"mutable","name":"result","nodeType":"VariableDeclaration","scope":855,"src":"831:14:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":738,"name":"uint256","nodeType":"ElementaryTypeName","src":"831:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"830:16:8"},"scope":899,"src":"749:3746:8","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":897,"nodeType":"Block","src":"4885:177:8","statements":[{"expression":{"id":873,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":867,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":865,"src":"4895:6:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":869,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":858,"src":"4911:1:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":870,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":860,"src":"4914:1:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":871,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":862,"src":"4917:11:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":868,"name":"mulDiv","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":855,"src":"4904:6:8","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256) pure returns (uint256)"}},"id":872,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4904:25:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4895:34:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":874,"nodeType":"ExpressionStatement","src":"4895:34:8"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":881,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":876,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":858,"src":"4950:1:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":877,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":860,"src":"4953:1:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":878,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":862,"src":"4956:11:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":875,"name":"mulmod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-16,"src":"4943:6:8","typeDescriptions":{"typeIdentifier":"t_function_mulmod_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256) pure returns (uint256)"}},"id":879,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4943:25:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":880,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4971:1:8","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4943:29:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":896,"nodeType":"IfStatement","src":"4939:117:8","trueBody":{"id":895,"nodeType":"Block","src":"4974:82:8","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":889,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":883,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":865,"src":"4996:6:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"arguments":[{"id":886,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5010:7:8","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":885,"name":"uint256","nodeType":"ElementaryTypeName","src":"5010:7:8","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"id":884,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"5005:4:8","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":887,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5005:13:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint256","typeString":"type(uint256)"}},"id":888,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"max","nodeType":"MemberAccess","src":"5005:17:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4996:26:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":882,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4988:7:8","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":890,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4988:35:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":891,"nodeType":"ExpressionStatement","src":"4988:35:8"},{"expression":{"id":893,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"5037:8:8","subExpression":{"id":892,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":865,"src":"5037:6:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":894,"nodeType":"ExpressionStatement","src":"5037:8:8"}]}}]},"documentation":{"id":856,"nodeType":"StructuredDocumentation","src":"4501:271:8","text":"@notice Calculates ceil(a×b÷denominator) with full precision. Throws if result overflows a uint256 or denominator == 0\n @param a The multiplicand\n @param b The multiplier\n @param denominator The divisor\n @return result The 256-bit result"},"id":898,"implemented":true,"kind":"function","modifiers":[],"name":"mulDivRoundingUp","nodeType":"FunctionDefinition","parameters":{"id":863,"nodeType":"ParameterList","parameters":[{"constant":false,"id":858,"mutability":"mutable","name":"a","nodeType":"VariableDeclaration","scope":898,"src":"4803:9:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":857,"name":"uint256","nodeType":"ElementaryTypeName","src":"4803:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":860,"mutability":"mutable","name":"b","nodeType":"VariableDeclaration","scope":898,"src":"4814:9:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":859,"name":"uint256","nodeType":"ElementaryTypeName","src":"4814:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":862,"mutability":"mutable","name":"denominator","nodeType":"VariableDeclaration","scope":898,"src":"4825:19:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":861,"name":"uint256","nodeType":"ElementaryTypeName","src":"4825:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4802:43:8"},"returnParameters":{"id":866,"nodeType":"ParameterList","parameters":[{"constant":false,"id":865,"mutability":"mutable","name":"result","nodeType":"VariableDeclaration","scope":898,"src":"4869:14:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":864,"name":"uint256","nodeType":"ElementaryTypeName","src":"4869:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4868:16:8"},"scope":899,"src":"4777:285:8","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":900,"src":"362:4702:8"}],"src":"32:5033:8"},"id":8},"@airdao/astra-cl-core/contracts/libraries/TickMath.sol":{"ast":{"absolutePath":"@airdao/astra-cl-core/contracts/libraries/TickMath.sol","exportedSymbols":{"TickMath":[1434]},"id":1435,"license":"GPL-2.0-or-later","nodeType":"SourceUnit","nodes":[{"id":901,"literals":["solidity",">=","0.5",".0","<","0.8",".0"],"nodeType":"PragmaDirective","src":"45:31:9"},{"abstract":false,"baseContracts":[],"contractDependencies":[],"contractKind":"library","documentation":{"id":902,"nodeType":"StructuredDocumentation","src":"78:235:9","text":"@title Math library for computing sqrt prices from ticks and vice versa\n @notice Computes sqrt price for ticks of size 1.0001, i.e. sqrt(1.0001^tick) as fixed point Q64.96 numbers. Supports\n prices between 2**-128 and 2**128"},"fullyImplemented":true,"id":1434,"linearizedBaseContracts":[1434],"name":"TickMath","nodeType":"ContractDefinition","nodes":[{"constant":true,"documentation":{"id":903,"nodeType":"StructuredDocumentation","src":"336:108:9","text":"@dev The minimum tick that may be passed to #getSqrtRatioAtTick computed from log base 1.0001 of 2**-128"},"id":907,"mutability":"constant","name":"MIN_TICK","nodeType":"VariableDeclaration","scope":1434,"src":"449:42:9","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"},"typeName":{"id":904,"name":"int24","nodeType":"ElementaryTypeName","src":"449:5:9","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"value":{"id":906,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"-","prefix":true,"src":"484:7:9","subExpression":{"hexValue":"383837323732","id":905,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"485:6:9","typeDescriptions":{"typeIdentifier":"t_rational_887272_by_1","typeString":"int_const 887272"},"value":"887272"},"typeDescriptions":{"typeIdentifier":"t_rational_minus_887272_by_1","typeString":"int_const -887272"}},"visibility":"internal"},{"constant":true,"documentation":{"id":908,"nodeType":"StructuredDocumentation","src":"497:107:9","text":"@dev The maximum tick that may be passed to #getSqrtRatioAtTick computed from log base 1.0001 of 2**128"},"id":912,"mutability":"constant","name":"MAX_TICK","nodeType":"VariableDeclaration","scope":1434,"src":"609:44:9","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"},"typeName":{"id":909,"name":"int24","nodeType":"ElementaryTypeName","src":"609:5:9","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"value":{"id":911,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"-","prefix":true,"src":"644:9:9","subExpression":{"id":910,"name":"MIN_TICK","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":907,"src":"645:8:9","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"visibility":"internal"},{"constant":true,"documentation":{"id":913,"nodeType":"StructuredDocumentation","src":"660:116:9","text":"@dev The minimum value that can be returned from #getSqrtRatioAtTick. Equivalent to getSqrtRatioAtTick(MIN_TICK)"},"id":916,"mutability":"constant","name":"MIN_SQRT_RATIO","nodeType":"VariableDeclaration","scope":1434,"src":"781:53:9","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"},"typeName":{"id":914,"name":"uint160","nodeType":"ElementaryTypeName","src":"781:7:9","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},"value":{"hexValue":"34323935313238373339","id":915,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"824:10:9","typeDescriptions":{"typeIdentifier":"t_rational_4295128739_by_1","typeString":"int_const 4295128739"},"value":"4295128739"},"visibility":"internal"},{"constant":true,"documentation":{"id":917,"nodeType":"StructuredDocumentation","src":"840:116:9","text":"@dev The maximum value that can be returned from #getSqrtRatioAtTick. Equivalent to getSqrtRatioAtTick(MAX_TICK)"},"id":920,"mutability":"constant","name":"MAX_SQRT_RATIO","nodeType":"VariableDeclaration","scope":1434,"src":"961:92:9","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"},"typeName":{"id":918,"name":"uint160","nodeType":"ElementaryTypeName","src":"961:7:9","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},"value":{"hexValue":"31343631343436373033343835323130313033323837323733303532323033393838383232333738373233393730333432","id":919,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1004:49:9","typeDescriptions":{"typeIdentifier":"t_rational_1461446703485210103287273052203988822378723970342_by_1","typeString":"int_const 1461...(41 digits omitted)...0342"},"value":"1461446703485210103287273052203988822378723970342"},"visibility":"internal"},{"body":{"id":1293,"nodeType":"Block","src":"1447:2495:9","statements":[{"assignments":[929],"declarations":[{"constant":false,"id":929,"mutability":"mutable","name":"absTick","nodeType":"VariableDeclaration","scope":1293,"src":"1457:15:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":928,"name":"uint256","nodeType":"ElementaryTypeName","src":"1457:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":949,"initialValue":{"condition":{"commonType":{"typeIdentifier":"t_int24","typeString":"int24"},"id":932,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":930,"name":"tick","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":923,"src":"1475:4:9","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"30","id":931,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1482:1:9","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1475:8:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"arguments":[{"arguments":[{"id":945,"name":"tick","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":923,"src":"1526:4:9","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int24","typeString":"int24"}],"id":944,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1519:6:9","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":943,"name":"int256","nodeType":"ElementaryTypeName","src":"1519:6:9","typeDescriptions":{}}},"id":946,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1519:12:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":942,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1511:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":941,"name":"uint256","nodeType":"ElementaryTypeName","src":"1511:7:9","typeDescriptions":{}}},"id":947,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1511:21:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":948,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"1475:57:9","trueExpression":{"arguments":[{"id":939,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"-","prefix":true,"src":"1494:13:9","subExpression":{"arguments":[{"id":937,"name":"tick","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":923,"src":"1502:4:9","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int24","typeString":"int24"}],"id":936,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1495:6:9","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":935,"name":"int256","nodeType":"ElementaryTypeName","src":"1495:6:9","typeDescriptions":{}}},"id":938,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1495:12:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":934,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1486:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":933,"name":"uint256","nodeType":"ElementaryTypeName","src":"1486:7:9","typeDescriptions":{}}},"id":940,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1486:22:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1457:75:9"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":956,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":951,"name":"absTick","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":929,"src":"1550:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"arguments":[{"id":954,"name":"MAX_TICK","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":912,"src":"1569:8:9","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int24","typeString":"int24"}],"id":953,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1561:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":952,"name":"uint256","nodeType":"ElementaryTypeName","src":"1561:7:9","typeDescriptions":{}}},"id":955,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1561:17:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1550:28:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"54","id":957,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1580:3:9","typeDescriptions":{"typeIdentifier":"t_stringliteral_846b7b6deb1cfa110d0ea7ec6162a7123b761785528db70cceed5143183b11fc","typeString":"literal_string \"T\""},"value":"T"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_846b7b6deb1cfa110d0ea7ec6162a7123b761785528db70cceed5143183b11fc","typeString":"literal_string \"T\""}],"id":950,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1542:7:9","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":958,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1542:42:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":959,"nodeType":"ExpressionStatement","src":"1542:42:9"},{"assignments":[961],"declarations":[{"constant":false,"id":961,"mutability":"mutable","name":"ratio","nodeType":"VariableDeclaration","scope":1293,"src":"1595:13:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":960,"name":"uint256","nodeType":"ElementaryTypeName","src":"1595:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":970,"initialValue":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":966,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":964,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":962,"name":"absTick","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":929,"src":"1611:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"hexValue":"307831","id":963,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1621:3:9","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"0x1"},"src":"1611:13:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":965,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1628:1:9","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1611:18:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"hexValue":"3078313030303030303030303030303030303030303030303030303030303030303030","id":968,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1669:35:9","typeDescriptions":{"typeIdentifier":"t_rational_340282366920938463463374607431768211456_by_1","typeString":"int_const 3402...(31 digits omitted)...1456"},"value":"0x100000000000000000000000000000000"},"id":969,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"1611:93:9","trueExpression":{"hexValue":"30786666666362393333626436666164333761613264313632643161353934303031","id":967,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1632:34:9","typeDescriptions":{"typeIdentifier":"t_rational_340265354078544963557816517032075149313_by_1","typeString":"int_const 3402...(31 digits omitted)...9313"},"value":"0xfffcb933bd6fad37aa2d162d1a594001"},"typeDescriptions":{"typeIdentifier":"t_uint136","typeString":"uint136"}},"nodeType":"VariableDeclarationStatement","src":"1595:109:9"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":975,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":973,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":971,"name":"absTick","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":929,"src":"1718:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"hexValue":"307832","id":972,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1728:3:9","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"0x2"},"src":"1718:13:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":974,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1735:1:9","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1718:18:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":985,"nodeType":"IfStatement","src":"1714:83:9","trueBody":{"expression":{"id":983,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":976,"name":"ratio","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":961,"src":"1738:5:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":982,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":979,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":977,"name":"ratio","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":961,"src":"1747:5:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"30786666663937323732333733643431333235396134363939303538306532313361","id":978,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1755:34:9","typeDescriptions":{"typeIdentifier":"t_rational_340248342086729790484326174814286782778_by_1","typeString":"int_const 3402...(31 digits omitted)...2778"},"value":"0xfff97272373d413259a46990580e213a"},"src":"1747:42:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":980,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1746:44:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"313238","id":981,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1794:3:9","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"1746:51:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1738:59:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":984,"nodeType":"ExpressionStatement","src":"1738:59:9"}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":990,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":988,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":986,"name":"absTick","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":929,"src":"1811:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"hexValue":"307834","id":987,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1821:3:9","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"0x4"},"src":"1811:13:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":989,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1828:1:9","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1811:18:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1000,"nodeType":"IfStatement","src":"1807:83:9","trueBody":{"expression":{"id":998,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":991,"name":"ratio","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":961,"src":"1831:5:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":997,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":994,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":992,"name":"ratio","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":961,"src":"1840:5:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"30786666663265353066356636353639333265663132333537636633633766646363","id":993,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1848:34:9","typeDescriptions":{"typeIdentifier":"t_rational_340214320654664324051920982716015181260_by_1","typeString":"int_const 3402...(31 digits omitted)...1260"},"value":"0xfff2e50f5f656932ef12357cf3c7fdcc"},"src":"1840:42:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":995,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1839:44:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"313238","id":996,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1887:3:9","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"1839:51:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1831:59:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":999,"nodeType":"ExpressionStatement","src":"1831:59:9"}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1005,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1003,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1001,"name":"absTick","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":929,"src":"1904:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"hexValue":"307838","id":1002,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1914:3:9","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"0x8"},"src":"1904:13:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":1004,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1921:1:9","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1904:18:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1015,"nodeType":"IfStatement","src":"1900:83:9","trueBody":{"expression":{"id":1013,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1006,"name":"ratio","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":961,"src":"1924:5:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1012,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1009,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1007,"name":"ratio","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":961,"src":"1933:5:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"30786666653563616361376531306534653631633336323465616130393431636430","id":1008,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1941:34:9","typeDescriptions":{"typeIdentifier":"t_rational_340146287995602323631171512101879684304_by_1","typeString":"int_const 3401...(31 digits omitted)...4304"},"value":"0xffe5caca7e10e4e61c3624eaa0941cd0"},"src":"1933:42:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":1010,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1932:44:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"313238","id":1011,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1980:3:9","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"1932:51:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1924:59:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1014,"nodeType":"ExpressionStatement","src":"1924:59:9"}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1020,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1018,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1016,"name":"absTick","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":929,"src":"1997:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"hexValue":"30783130","id":1017,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2007:4:9","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"0x10"},"src":"1997:14:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":1019,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2015:1:9","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1997:19:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1030,"nodeType":"IfStatement","src":"1993:84:9","trueBody":{"expression":{"id":1028,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1021,"name":"ratio","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":961,"src":"2018:5:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1027,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1024,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1022,"name":"ratio","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":961,"src":"2027:5:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"30786666636239383433643630663631353963396462353838333563393236363434","id":1023,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2035:34:9","typeDescriptions":{"typeIdentifier":"t_rational_340010263488231146823593991679159461444_by_1","typeString":"int_const 3400...(31 digits omitted)...1444"},"value":"0xffcb9843d60f6159c9db58835c926644"},"src":"2027:42:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":1025,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2026:44:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"313238","id":1026,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2074:3:9","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"2026:51:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2018:59:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1029,"nodeType":"ExpressionStatement","src":"2018:59:9"}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1035,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1033,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1031,"name":"absTick","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":929,"src":"2091:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"hexValue":"30783230","id":1032,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2101:4:9","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"0x20"},"src":"2091:14:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":1034,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2109:1:9","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2091:19:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1045,"nodeType":"IfStatement","src":"2087:84:9","trueBody":{"expression":{"id":1043,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1036,"name":"ratio","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":961,"src":"2112:5:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1042,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1039,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1037,"name":"ratio","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":961,"src":"2121:5:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"30786666393733623431666139386330383134373265363839366466623235346330","id":1038,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2129:34:9","typeDescriptions":{"typeIdentifier":"t_rational_339738377640345403697157401104375502016_by_1","typeString":"int_const 3397...(31 digits omitted)...2016"},"value":"0xff973b41fa98c081472e6896dfb254c0"},"src":"2121:42:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":1040,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2120:44:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"313238","id":1041,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2168:3:9","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"2120:51:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2112:59:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1044,"nodeType":"ExpressionStatement","src":"2112:59:9"}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1050,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1048,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1046,"name":"absTick","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":929,"src":"2185:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"hexValue":"30783430","id":1047,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2195:4:9","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"0x40"},"src":"2185:14:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":1049,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2203:1:9","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2185:19:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1060,"nodeType":"IfStatement","src":"2181:84:9","trueBody":{"expression":{"id":1058,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1051,"name":"ratio","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":961,"src":"2206:5:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1057,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1054,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1052,"name":"ratio","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":961,"src":"2215:5:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"30786666326561313634363663393661333834336563373862333236623532383631","id":1053,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2223:34:9","typeDescriptions":{"typeIdentifier":"t_rational_339195258003219555707034227454543997025_by_1","typeString":"int_const 3391...(31 digits omitted)...7025"},"value":"0xff2ea16466c96a3843ec78b326b52861"},"src":"2215:42:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":1055,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2214:44:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"313238","id":1056,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2262:3:9","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"2214:51:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2206:59:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1059,"nodeType":"ExpressionStatement","src":"2206:59:9"}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1065,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1063,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1061,"name":"absTick","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":929,"src":"2279:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"hexValue":"30783830","id":1062,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2289:4:9","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"0x80"},"src":"2279:14:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":1064,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2297:1:9","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2279:19:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1075,"nodeType":"IfStatement","src":"2275:84:9","trueBody":{"expression":{"id":1073,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1066,"name":"ratio","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":961,"src":"2300:5:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1072,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1069,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1067,"name":"ratio","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":961,"src":"2309:5:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"30786665356465653034366139396132613831316334363166313936396333303533","id":1068,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2317:34:9","typeDescriptions":{"typeIdentifier":"t_rational_338111622100601834656805679988414885971_by_1","typeString":"int_const 3381...(31 digits omitted)...5971"},"value":"0xfe5dee046a99a2a811c461f1969c3053"},"src":"2309:42:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":1070,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2308:44:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"313238","id":1071,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2356:3:9","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"2308:51:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2300:59:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1074,"nodeType":"ExpressionStatement","src":"2300:59:9"}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1080,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1078,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1076,"name":"absTick","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":929,"src":"2373:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"hexValue":"3078313030","id":1077,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2383:5:9","typeDescriptions":{"typeIdentifier":"t_rational_256_by_1","typeString":"int_const 256"},"value":"0x100"},"src":"2373:15:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":1079,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2392:1:9","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2373:20:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1090,"nodeType":"IfStatement","src":"2369:85:9","trueBody":{"expression":{"id":1088,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1081,"name":"ratio","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":961,"src":"2395:5:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1087,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1084,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1082,"name":"ratio","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":961,"src":"2404:5:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"30786663626538366337393030613838616564636666633833623437396161336134","id":1083,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2412:34:9","typeDescriptions":{"typeIdentifier":"t_rational_335954724994790223023589805789778977700_by_1","typeString":"int_const 3359...(31 digits omitted)...7700"},"value":"0xfcbe86c7900a88aedcffc83b479aa3a4"},"src":"2404:42:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":1085,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2403:44:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"313238","id":1086,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2451:3:9","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"2403:51:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2395:59:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1089,"nodeType":"ExpressionStatement","src":"2395:59:9"}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1095,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1093,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1091,"name":"absTick","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":929,"src":"2468:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"hexValue":"3078323030","id":1092,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2478:5:9","typeDescriptions":{"typeIdentifier":"t_rational_512_by_1","typeString":"int_const 512"},"value":"0x200"},"src":"2468:15:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":1094,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2487:1:9","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2468:20:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1105,"nodeType":"IfStatement","src":"2464:85:9","trueBody":{"expression":{"id":1103,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1096,"name":"ratio","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":961,"src":"2490:5:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1102,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1099,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1097,"name":"ratio","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":961,"src":"2499:5:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"30786639383761373235336163343133313736663262303734636637383135653534","id":1098,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2507:34:9","typeDescriptions":{"typeIdentifier":"t_rational_331682121138379247127172139078559817300_by_1","typeString":"int_const 3316...(31 digits omitted)...7300"},"value":"0xf987a7253ac413176f2b074cf7815e54"},"src":"2499:42:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":1100,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2498:44:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"313238","id":1101,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2546:3:9","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"2498:51:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2490:59:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1104,"nodeType":"ExpressionStatement","src":"2490:59:9"}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1110,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1108,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1106,"name":"absTick","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":929,"src":"2563:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"hexValue":"3078343030","id":1107,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2573:5:9","typeDescriptions":{"typeIdentifier":"t_rational_1024_by_1","typeString":"int_const 1024"},"value":"0x400"},"src":"2563:15:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":1109,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2582:1:9","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2563:20:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1120,"nodeType":"IfStatement","src":"2559:85:9","trueBody":{"expression":{"id":1118,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1111,"name":"ratio","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":961,"src":"2585:5:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1117,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1114,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1112,"name":"ratio","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":961,"src":"2594:5:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"30786633333932623038323262373030303539343063376133393865346237306633","id":1113,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2602:34:9","typeDescriptions":{"typeIdentifier":"t_rational_323299236684853023288211250268160618739_by_1","typeString":"int_const 3232...(31 digits omitted)...8739"},"value":"0xf3392b0822b70005940c7a398e4b70f3"},"src":"2594:42:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":1115,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2593:44:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"313238","id":1116,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2641:3:9","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"2593:51:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2585:59:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1119,"nodeType":"ExpressionStatement","src":"2585:59:9"}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1125,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1123,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1121,"name":"absTick","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":929,"src":"2658:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"hexValue":"3078383030","id":1122,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2668:5:9","typeDescriptions":{"typeIdentifier":"t_rational_2048_by_1","typeString":"int_const 2048"},"value":"0x800"},"src":"2658:15:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":1124,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2677:1:9","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2658:20:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1135,"nodeType":"IfStatement","src":"2654:85:9","trueBody":{"expression":{"id":1133,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1126,"name":"ratio","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":961,"src":"2680:5:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1132,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1129,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1127,"name":"ratio","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":961,"src":"2689:5:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"30786537313539343735613263323962373434336232396337666136653838396439","id":1128,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2697:34:9","typeDescriptions":{"typeIdentifier":"t_rational_307163716377032989948697243942600083929_by_1","typeString":"int_const 3071...(31 digits omitted)...3929"},"value":"0xe7159475a2c29b7443b29c7fa6e889d9"},"src":"2689:42:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":1130,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2688:44:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"313238","id":1131,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2736:3:9","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"2688:51:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2680:59:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1134,"nodeType":"ExpressionStatement","src":"2680:59:9"}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1140,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1138,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1136,"name":"absTick","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":929,"src":"2753:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"hexValue":"307831303030","id":1137,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2763:6:9","typeDescriptions":{"typeIdentifier":"t_rational_4096_by_1","typeString":"int_const 4096"},"value":"0x1000"},"src":"2753:16:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":1139,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2773:1:9","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2753:21:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1150,"nodeType":"IfStatement","src":"2749:86:9","trueBody":{"expression":{"id":1148,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1141,"name":"ratio","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":961,"src":"2776:5:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1147,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1144,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1142,"name":"ratio","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":961,"src":"2785:5:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"30786430393766336264666432303232623838343561643866373932616135383235","id":1143,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2793:34:9","typeDescriptions":{"typeIdentifier":"t_rational_277268403626896220162999269216087595045_by_1","typeString":"int_const 2772...(31 digits omitted)...5045"},"value":"0xd097f3bdfd2022b8845ad8f792aa5825"},"src":"2785:42:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":1145,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2784:44:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"313238","id":1146,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2832:3:9","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"2784:51:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2776:59:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1149,"nodeType":"ExpressionStatement","src":"2776:59:9"}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1155,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1153,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1151,"name":"absTick","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":929,"src":"2849:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"hexValue":"307832303030","id":1152,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2859:6:9","typeDescriptions":{"typeIdentifier":"t_rational_8192_by_1","typeString":"int_const 8192"},"value":"0x2000"},"src":"2849:16:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":1154,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2869:1:9","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2849:21:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1165,"nodeType":"IfStatement","src":"2845:86:9","trueBody":{"expression":{"id":1163,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1156,"name":"ratio","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":961,"src":"2872:5:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1162,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1159,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1157,"name":"ratio","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":961,"src":"2881:5:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"30786139663734363436326438373066646638613635646331663930653036316535","id":1158,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2889:34:9","typeDescriptions":{"typeIdentifier":"t_rational_225923453940442621947126027127485391333_by_1","typeString":"int_const 2259...(31 digits omitted)...1333"},"value":"0xa9f746462d870fdf8a65dc1f90e061e5"},"src":"2881:42:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":1160,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2880:44:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"313238","id":1161,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2928:3:9","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"2880:51:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2872:59:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1164,"nodeType":"ExpressionStatement","src":"2872:59:9"}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1170,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1168,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1166,"name":"absTick","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":929,"src":"2945:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"hexValue":"307834303030","id":1167,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2955:6:9","typeDescriptions":{"typeIdentifier":"t_rational_16384_by_1","typeString":"int_const 16384"},"value":"0x4000"},"src":"2945:16:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":1169,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2965:1:9","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2945:21:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1180,"nodeType":"IfStatement","src":"2941:86:9","trueBody":{"expression":{"id":1178,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1171,"name":"ratio","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":961,"src":"2968:5:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1177,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1174,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1172,"name":"ratio","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":961,"src":"2977:5:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"30783730643836396131353664326131623839306262336466363262616633326637","id":1173,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2985:34:9","typeDescriptions":{"typeIdentifier":"t_rational_149997214084966997727330242082538205943_by_1","typeString":"int_const 1499...(31 digits omitted)...5943"},"value":"0x70d869a156d2a1b890bb3df62baf32f7"},"src":"2977:42:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":1175,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2976:44:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"313238","id":1176,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3024:3:9","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"2976:51:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2968:59:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1179,"nodeType":"ExpressionStatement","src":"2968:59:9"}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1185,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1183,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1181,"name":"absTick","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":929,"src":"3041:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"hexValue":"307838303030","id":1182,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3051:6:9","typeDescriptions":{"typeIdentifier":"t_rational_32768_by_1","typeString":"int_const 32768"},"value":"0x8000"},"src":"3041:16:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":1184,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3061:1:9","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3041:21:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1195,"nodeType":"IfStatement","src":"3037:86:9","trueBody":{"expression":{"id":1193,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1186,"name":"ratio","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":961,"src":"3064:5:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1192,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1189,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1187,"name":"ratio","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":961,"src":"3073:5:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"30783331626531333566393764303866643938313233313530353534326663666136","id":1188,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3081:34:9","typeDescriptions":{"typeIdentifier":"t_rational_66119101136024775622716233608466517926_by_1","typeString":"int_const 6611...(30 digits omitted)...7926"},"value":"0x31be135f97d08fd981231505542fcfa6"},"src":"3073:42:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":1190,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3072:44:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"313238","id":1191,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3120:3:9","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"3072:51:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3064:59:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1194,"nodeType":"ExpressionStatement","src":"3064:59:9"}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1200,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1198,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1196,"name":"absTick","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":929,"src":"3137:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"hexValue":"30783130303030","id":1197,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3147:7:9","typeDescriptions":{"typeIdentifier":"t_rational_65536_by_1","typeString":"int_const 65536"},"value":"0x10000"},"src":"3137:17:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":1199,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3158:1:9","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3137:22:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1210,"nodeType":"IfStatement","src":"3133:86:9","trueBody":{"expression":{"id":1208,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1201,"name":"ratio","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":961,"src":"3161:5:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1207,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1204,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1202,"name":"ratio","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":961,"src":"3170:5:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"307839616135303862356237613834653163363737646535346633653939626339","id":1203,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3178:33:9","typeDescriptions":{"typeIdentifier":"t_rational_12847376061809297530290974190478138313_by_1","typeString":"int_const 1284...(30 digits omitted)...8313"},"value":"0x9aa508b5b7a84e1c677de54f3e99bc9"},"src":"3170:41:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":1205,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3169:43:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"313238","id":1206,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3216:3:9","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"3169:50:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3161:58:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1209,"nodeType":"ExpressionStatement","src":"3161:58:9"}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1215,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1213,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1211,"name":"absTick","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":929,"src":"3233:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"hexValue":"30783230303030","id":1212,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3243:7:9","typeDescriptions":{"typeIdentifier":"t_rational_131072_by_1","typeString":"int_const 131072"},"value":"0x20000"},"src":"3233:17:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":1214,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3254:1:9","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3233:22:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1225,"nodeType":"IfStatement","src":"3229:85:9","trueBody":{"expression":{"id":1223,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1216,"name":"ratio","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":961,"src":"3257:5:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1222,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1219,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1217,"name":"ratio","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":961,"src":"3266:5:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"3078356436616638646564623831313936363939633332393232356565363034","id":1218,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3274:32:9","typeDescriptions":{"typeIdentifier":"t_rational_485053260817066172746253684029974020_by_1","typeString":"int_const 4850...(28 digits omitted)...4020"},"value":"0x5d6af8dedb81196699c329225ee604"},"src":"3266:40:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":1220,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3265:42:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"313238","id":1221,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3311:3:9","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"3265:49:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3257:57:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1224,"nodeType":"ExpressionStatement","src":"3257:57:9"}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1230,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1228,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1226,"name":"absTick","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":929,"src":"3328:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"hexValue":"30783430303030","id":1227,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3338:7:9","typeDescriptions":{"typeIdentifier":"t_rational_262144_by_1","typeString":"int_const 262144"},"value":"0x40000"},"src":"3328:17:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":1229,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3349:1:9","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3328:22:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1240,"nodeType":"IfStatement","src":"3324:83:9","trueBody":{"expression":{"id":1238,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1231,"name":"ratio","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":961,"src":"3352:5:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1237,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1234,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1232,"name":"ratio","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":961,"src":"3361:5:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"307832323136653538346635666131656139323630343162656466653938","id":1233,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3369:30:9","typeDescriptions":{"typeIdentifier":"t_rational_691415978906521570653435304214168_by_1","typeString":"int_const 6914...(25 digits omitted)...4168"},"value":"0x2216e584f5fa1ea926041bedfe98"},"src":"3361:38:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":1235,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3360:40:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"313238","id":1236,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3404:3:9","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"3360:47:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3352:55:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1239,"nodeType":"ExpressionStatement","src":"3352:55:9"}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1245,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1243,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1241,"name":"absTick","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":929,"src":"3421:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"hexValue":"30783830303030","id":1242,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3431:7:9","typeDescriptions":{"typeIdentifier":"t_rational_524288_by_1","typeString":"int_const 524288"},"value":"0x80000"},"src":"3421:17:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":1244,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3442:1:9","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3421:22:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1255,"nodeType":"IfStatement","src":"3417:78:9","trueBody":{"expression":{"id":1253,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1246,"name":"ratio","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":961,"src":"3445:5:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1252,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1249,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1247,"name":"ratio","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":961,"src":"3454:5:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"30783438613137303339316637646334323434346538666132","id":1248,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3462:25:9","typeDescriptions":{"typeIdentifier":"t_rational_1404880482679654955896180642_by_1","typeString":"int_const 1404880482679654955896180642"},"value":"0x48a170391f7dc42444e8fa2"},"src":"3454:33:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":1250,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3453:35:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"313238","id":1251,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3492:3:9","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"3453:42:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3445:50:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1254,"nodeType":"ExpressionStatement","src":"3445:50:9"}},{"condition":{"commonType":{"typeIdentifier":"t_int24","typeString":"int24"},"id":1258,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1256,"name":"tick","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":923,"src":"3510:4:9","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":1257,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3517:1:9","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3510:8:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1269,"nodeType":"IfStatement","src":"3506:47:9","trueBody":{"expression":{"id":1267,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1259,"name":"ratio","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":961,"src":"3520:5:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1266,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":1262,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3533:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":1261,"name":"uint256","nodeType":"ElementaryTypeName","src":"3533:7:9","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"id":1260,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"3528:4:9","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":1263,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3528:13:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint256","typeString":"type(uint256)"}},"id":1264,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"max","nodeType":"MemberAccess","src":"3528:17:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":1265,"name":"ratio","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":961,"src":"3548:5:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3528:25:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3520:33:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1268,"nodeType":"ExpressionStatement","src":"3520:33:9"}},{"expression":{"id":1291,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1270,"name":"sqrtPriceX96","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":926,"src":"3863:12:9","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1289,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1275,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1273,"name":"ratio","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":961,"src":"3887:5:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"3332","id":1274,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3896:2:9","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"3887:11:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":1276,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3886:13:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"components":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1284,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1282,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1277,"name":"ratio","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":961,"src":"3903:5:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"%","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_rational_4294967296_by_1","typeString":"int_const 4294967296"},"id":1280,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":1278,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3912:1:9","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3332","id":1279,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3917:2:9","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"3912:7:9","typeDescriptions":{"typeIdentifier":"t_rational_4294967296_by_1","typeString":"int_const 4294967296"}}],"id":1281,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"3911:9:9","typeDescriptions":{"typeIdentifier":"t_rational_4294967296_by_1","typeString":"int_const 4294967296"}},"src":"3903:17:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":1283,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3924:1:9","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3903:22:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"hexValue":"31","id":1286,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3932:1:9","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"id":1287,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"3903:30:9","trueExpression":{"hexValue":"30","id":1285,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3928:1:9","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"id":1288,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3902:32:9","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"3886:48:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1272,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3878:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":1271,"name":"uint160","nodeType":"ElementaryTypeName","src":"3878:7:9","typeDescriptions":{}}},"id":1290,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3878:57:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},"src":"3863:72:9","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},"id":1292,"nodeType":"ExpressionStatement","src":"3863:72:9"}]},"documentation":{"id":921,"nodeType":"StructuredDocumentation","src":"1060:297:9","text":"@notice Calculates sqrt(1.0001^tick) * 2^96\n @dev Throws if |tick| > max tick\n @param tick The input tick for the above formula\n @return sqrtPriceX96 A Fixed point Q64.96 number representing the sqrt of the ratio of the two assets (token1/token0)\n at the given tick"},"id":1294,"implemented":true,"kind":"function","modifiers":[],"name":"getSqrtRatioAtTick","nodeType":"FunctionDefinition","parameters":{"id":924,"nodeType":"ParameterList","parameters":[{"constant":false,"id":923,"mutability":"mutable","name":"tick","nodeType":"VariableDeclaration","scope":1294,"src":"1390:10:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"},"typeName":{"id":922,"name":"int24","nodeType":"ElementaryTypeName","src":"1390:5:9","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"visibility":"internal"}],"src":"1389:12:9"},"returnParameters":{"id":927,"nodeType":"ParameterList","parameters":[{"constant":false,"id":926,"mutability":"mutable","name":"sqrtPriceX96","nodeType":"VariableDeclaration","scope":1294,"src":"1425:20:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"},"typeName":{"id":925,"name":"uint160","nodeType":"ElementaryTypeName","src":"1425:7:9","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},"visibility":"internal"}],"src":"1424:22:9"},"scope":1434,"src":"1362:2580:9","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":1432,"nodeType":"Block","src":"4446:4252:9","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":1309,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint160","typeString":"uint160"},"id":1305,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1303,"name":"sqrtPriceX96","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1297,"src":"4563:12:9","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":1304,"name":"MIN_SQRT_RATIO","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":916,"src":"4579:14:9","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},"src":"4563:30:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint160","typeString":"uint160"},"id":1308,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1306,"name":"sqrtPriceX96","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1297,"src":"4597:12:9","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":1307,"name":"MAX_SQRT_RATIO","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":920,"src":"4612:14:9","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},"src":"4597:29:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"4563:63:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"52","id":1310,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4628:3:9","typeDescriptions":{"typeIdentifier":"t_stringliteral_ef22bddd350b943170a67d35191c27e310709a28c38b5762a152ff640108f5b2","typeString":"literal_string \"R\""},"value":"R"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_ef22bddd350b943170a67d35191c27e310709a28c38b5762a152ff640108f5b2","typeString":"literal_string \"R\""}],"id":1302,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4555:7:9","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1311,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4555:77:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1312,"nodeType":"ExpressionStatement","src":"4555:77:9"},{"assignments":[1314],"declarations":[{"constant":false,"id":1314,"mutability":"mutable","name":"ratio","nodeType":"VariableDeclaration","scope":1432,"src":"4642:13:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1313,"name":"uint256","nodeType":"ElementaryTypeName","src":"4642:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1321,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1320,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":1317,"name":"sqrtPriceX96","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1297,"src":"4666:12:9","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":1316,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4658:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":1315,"name":"uint256","nodeType":"ElementaryTypeName","src":"4658:7:9","typeDescriptions":{}}},"id":1318,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4658:21:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3332","id":1319,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4683:2:9","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"4658:27:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4642:43:9"},{"assignments":[1323],"declarations":[{"constant":false,"id":1323,"mutability":"mutable","name":"r","nodeType":"VariableDeclaration","scope":1432,"src":"4696:9:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1322,"name":"uint256","nodeType":"ElementaryTypeName","src":"4696:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1325,"initialValue":{"id":1324,"name":"ratio","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1314,"src":"4708:5:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4696:17:9"},{"assignments":[1327],"declarations":[{"constant":false,"id":1327,"mutability":"mutable","name":"msb","nodeType":"VariableDeclaration","scope":1432,"src":"4723:11:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1326,"name":"uint256","nodeType":"ElementaryTypeName","src":"4723:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1329,"initialValue":{"hexValue":"30","id":1328,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4737:1:9","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"4723:15:9"},{"AST":{"nodeType":"YulBlock","src":"4758:139:9","statements":[{"nodeType":"YulVariableDeclaration","src":"4772:58:9","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4785:1:9","type":"","value":"7"},{"arguments":[{"name":"r","nodeType":"YulIdentifier","src":"4791:1:9"},{"kind":"number","nodeType":"YulLiteral","src":"4794:34:9","type":"","value":"0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"4788:2:9"},"nodeType":"YulFunctionCall","src":"4788:41:9"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"4781:3:9"},"nodeType":"YulFunctionCall","src":"4781:49:9"},"variables":[{"name":"f","nodeType":"YulTypedName","src":"4776:1:9","type":""}]},{"nodeType":"YulAssignment","src":"4843:17:9","value":{"arguments":[{"name":"msb","nodeType":"YulIdentifier","src":"4853:3:9"},{"name":"f","nodeType":"YulIdentifier","src":"4858:1:9"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"4850:2:9"},"nodeType":"YulFunctionCall","src":"4850:10:9"},"variableNames":[{"name":"msb","nodeType":"YulIdentifier","src":"4843:3:9"}]},{"nodeType":"YulAssignment","src":"4873:14:9","value":{"arguments":[{"name":"f","nodeType":"YulIdentifier","src":"4882:1:9"},{"name":"r","nodeType":"YulIdentifier","src":"4885:1:9"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"4878:3:9"},"nodeType":"YulFunctionCall","src":"4878:9:9"},"variableNames":[{"name":"r","nodeType":"YulIdentifier","src":"4873:1:9"}]}]},"evmVersion":"istanbul","externalReferences":[{"declaration":1327,"isOffset":false,"isSlot":false,"src":"4843:3:9","valueSize":1},{"declaration":1327,"isOffset":false,"isSlot":false,"src":"4853:3:9","valueSize":1},{"declaration":1323,"isOffset":false,"isSlot":false,"src":"4791:1:9","valueSize":1},{"declaration":1323,"isOffset":false,"isSlot":false,"src":"4873:1:9","valueSize":1},{"declaration":1323,"isOffset":false,"isSlot":false,"src":"4885:1:9","valueSize":1}],"id":1330,"nodeType":"InlineAssembly","src":"4749:148:9"},{"AST":{"nodeType":"YulBlock","src":"4915:123:9","statements":[{"nodeType":"YulVariableDeclaration","src":"4929:42:9","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4942:1:9","type":"","value":"6"},{"arguments":[{"name":"r","nodeType":"YulIdentifier","src":"4948:1:9"},{"kind":"number","nodeType":"YulLiteral","src":"4951:18:9","type":"","value":"0xFFFFFFFFFFFFFFFF"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"4945:2:9"},"nodeType":"YulFunctionCall","src":"4945:25:9"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"4938:3:9"},"nodeType":"YulFunctionCall","src":"4938:33:9"},"variables":[{"name":"f","nodeType":"YulTypedName","src":"4933:1:9","type":""}]},{"nodeType":"YulAssignment","src":"4984:17:9","value":{"arguments":[{"name":"msb","nodeType":"YulIdentifier","src":"4994:3:9"},{"name":"f","nodeType":"YulIdentifier","src":"4999:1:9"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"4991:2:9"},"nodeType":"YulFunctionCall","src":"4991:10:9"},"variableNames":[{"name":"msb","nodeType":"YulIdentifier","src":"4984:3:9"}]},{"nodeType":"YulAssignment","src":"5014:14:9","value":{"arguments":[{"name":"f","nodeType":"YulIdentifier","src":"5023:1:9"},{"name":"r","nodeType":"YulIdentifier","src":"5026:1:9"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"5019:3:9"},"nodeType":"YulFunctionCall","src":"5019:9:9"},"variableNames":[{"name":"r","nodeType":"YulIdentifier","src":"5014:1:9"}]}]},"evmVersion":"istanbul","externalReferences":[{"declaration":1327,"isOffset":false,"isSlot":false,"src":"4984:3:9","valueSize":1},{"declaration":1327,"isOffset":false,"isSlot":false,"src":"4994:3:9","valueSize":1},{"declaration":1323,"isOffset":false,"isSlot":false,"src":"4948:1:9","valueSize":1},{"declaration":1323,"isOffset":false,"isSlot":false,"src":"5014:1:9","valueSize":1},{"declaration":1323,"isOffset":false,"isSlot":false,"src":"5026:1:9","valueSize":1}],"id":1331,"nodeType":"InlineAssembly","src":"4906:132:9"},{"AST":{"nodeType":"YulBlock","src":"5056:115:9","statements":[{"nodeType":"YulVariableDeclaration","src":"5070:34:9","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5083:1:9","type":"","value":"5"},{"arguments":[{"name":"r","nodeType":"YulIdentifier","src":"5089:1:9"},{"kind":"number","nodeType":"YulLiteral","src":"5092:10:9","type":"","value":"0xFFFFFFFF"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"5086:2:9"},"nodeType":"YulFunctionCall","src":"5086:17:9"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"5079:3:9"},"nodeType":"YulFunctionCall","src":"5079:25:9"},"variables":[{"name":"f","nodeType":"YulTypedName","src":"5074:1:9","type":""}]},{"nodeType":"YulAssignment","src":"5117:17:9","value":{"arguments":[{"name":"msb","nodeType":"YulIdentifier","src":"5127:3:9"},{"name":"f","nodeType":"YulIdentifier","src":"5132:1:9"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"5124:2:9"},"nodeType":"YulFunctionCall","src":"5124:10:9"},"variableNames":[{"name":"msb","nodeType":"YulIdentifier","src":"5117:3:9"}]},{"nodeType":"YulAssignment","src":"5147:14:9","value":{"arguments":[{"name":"f","nodeType":"YulIdentifier","src":"5156:1:9"},{"name":"r","nodeType":"YulIdentifier","src":"5159:1:9"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"5152:3:9"},"nodeType":"YulFunctionCall","src":"5152:9:9"},"variableNames":[{"name":"r","nodeType":"YulIdentifier","src":"5147:1:9"}]}]},"evmVersion":"istanbul","externalReferences":[{"declaration":1327,"isOffset":false,"isSlot":false,"src":"5117:3:9","valueSize":1},{"declaration":1327,"isOffset":false,"isSlot":false,"src":"5127:3:9","valueSize":1},{"declaration":1323,"isOffset":false,"isSlot":false,"src":"5089:1:9","valueSize":1},{"declaration":1323,"isOffset":false,"isSlot":false,"src":"5147:1:9","valueSize":1},{"declaration":1323,"isOffset":false,"isSlot":false,"src":"5159:1:9","valueSize":1}],"id":1332,"nodeType":"InlineAssembly","src":"5047:124:9"},{"AST":{"nodeType":"YulBlock","src":"5189:111:9","statements":[{"nodeType":"YulVariableDeclaration","src":"5203:30:9","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5216:1:9","type":"","value":"4"},{"arguments":[{"name":"r","nodeType":"YulIdentifier","src":"5222:1:9"},{"kind":"number","nodeType":"YulLiteral","src":"5225:6:9","type":"","value":"0xFFFF"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"5219:2:9"},"nodeType":"YulFunctionCall","src":"5219:13:9"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"5212:3:9"},"nodeType":"YulFunctionCall","src":"5212:21:9"},"variables":[{"name":"f","nodeType":"YulTypedName","src":"5207:1:9","type":""}]},{"nodeType":"YulAssignment","src":"5246:17:9","value":{"arguments":[{"name":"msb","nodeType":"YulIdentifier","src":"5256:3:9"},{"name":"f","nodeType":"YulIdentifier","src":"5261:1:9"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"5253:2:9"},"nodeType":"YulFunctionCall","src":"5253:10:9"},"variableNames":[{"name":"msb","nodeType":"YulIdentifier","src":"5246:3:9"}]},{"nodeType":"YulAssignment","src":"5276:14:9","value":{"arguments":[{"name":"f","nodeType":"YulIdentifier","src":"5285:1:9"},{"name":"r","nodeType":"YulIdentifier","src":"5288:1:9"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"5281:3:9"},"nodeType":"YulFunctionCall","src":"5281:9:9"},"variableNames":[{"name":"r","nodeType":"YulIdentifier","src":"5276:1:9"}]}]},"evmVersion":"istanbul","externalReferences":[{"declaration":1327,"isOffset":false,"isSlot":false,"src":"5246:3:9","valueSize":1},{"declaration":1327,"isOffset":false,"isSlot":false,"src":"5256:3:9","valueSize":1},{"declaration":1323,"isOffset":false,"isSlot":false,"src":"5222:1:9","valueSize":1},{"declaration":1323,"isOffset":false,"isSlot":false,"src":"5276:1:9","valueSize":1},{"declaration":1323,"isOffset":false,"isSlot":false,"src":"5288:1:9","valueSize":1}],"id":1333,"nodeType":"InlineAssembly","src":"5180:120:9"},{"AST":{"nodeType":"YulBlock","src":"5318:109:9","statements":[{"nodeType":"YulVariableDeclaration","src":"5332:28:9","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5345:1:9","type":"","value":"3"},{"arguments":[{"name":"r","nodeType":"YulIdentifier","src":"5351:1:9"},{"kind":"number","nodeType":"YulLiteral","src":"5354:4:9","type":"","value":"0xFF"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"5348:2:9"},"nodeType":"YulFunctionCall","src":"5348:11:9"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"5341:3:9"},"nodeType":"YulFunctionCall","src":"5341:19:9"},"variables":[{"name":"f","nodeType":"YulTypedName","src":"5336:1:9","type":""}]},{"nodeType":"YulAssignment","src":"5373:17:9","value":{"arguments":[{"name":"msb","nodeType":"YulIdentifier","src":"5383:3:9"},{"name":"f","nodeType":"YulIdentifier","src":"5388:1:9"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"5380:2:9"},"nodeType":"YulFunctionCall","src":"5380:10:9"},"variableNames":[{"name":"msb","nodeType":"YulIdentifier","src":"5373:3:9"}]},{"nodeType":"YulAssignment","src":"5403:14:9","value":{"arguments":[{"name":"f","nodeType":"YulIdentifier","src":"5412:1:9"},{"name":"r","nodeType":"YulIdentifier","src":"5415:1:9"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"5408:3:9"},"nodeType":"YulFunctionCall","src":"5408:9:9"},"variableNames":[{"name":"r","nodeType":"YulIdentifier","src":"5403:1:9"}]}]},"evmVersion":"istanbul","externalReferences":[{"declaration":1327,"isOffset":false,"isSlot":false,"src":"5373:3:9","valueSize":1},{"declaration":1327,"isOffset":false,"isSlot":false,"src":"5383:3:9","valueSize":1},{"declaration":1323,"isOffset":false,"isSlot":false,"src":"5351:1:9","valueSize":1},{"declaration":1323,"isOffset":false,"isSlot":false,"src":"5403:1:9","valueSize":1},{"declaration":1323,"isOffset":false,"isSlot":false,"src":"5415:1:9","valueSize":1}],"id":1334,"nodeType":"InlineAssembly","src":"5309:118:9"},{"AST":{"nodeType":"YulBlock","src":"5445:108:9","statements":[{"nodeType":"YulVariableDeclaration","src":"5459:27:9","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5472:1:9","type":"","value":"2"},{"arguments":[{"name":"r","nodeType":"YulIdentifier","src":"5478:1:9"},{"kind":"number","nodeType":"YulLiteral","src":"5481:3:9","type":"","value":"0xF"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"5475:2:9"},"nodeType":"YulFunctionCall","src":"5475:10:9"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"5468:3:9"},"nodeType":"YulFunctionCall","src":"5468:18:9"},"variables":[{"name":"f","nodeType":"YulTypedName","src":"5463:1:9","type":""}]},{"nodeType":"YulAssignment","src":"5499:17:9","value":{"arguments":[{"name":"msb","nodeType":"YulIdentifier","src":"5509:3:9"},{"name":"f","nodeType":"YulIdentifier","src":"5514:1:9"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"5506:2:9"},"nodeType":"YulFunctionCall","src":"5506:10:9"},"variableNames":[{"name":"msb","nodeType":"YulIdentifier","src":"5499:3:9"}]},{"nodeType":"YulAssignment","src":"5529:14:9","value":{"arguments":[{"name":"f","nodeType":"YulIdentifier","src":"5538:1:9"},{"name":"r","nodeType":"YulIdentifier","src":"5541:1:9"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"5534:3:9"},"nodeType":"YulFunctionCall","src":"5534:9:9"},"variableNames":[{"name":"r","nodeType":"YulIdentifier","src":"5529:1:9"}]}]},"evmVersion":"istanbul","externalReferences":[{"declaration":1327,"isOffset":false,"isSlot":false,"src":"5499:3:9","valueSize":1},{"declaration":1327,"isOffset":false,"isSlot":false,"src":"5509:3:9","valueSize":1},{"declaration":1323,"isOffset":false,"isSlot":false,"src":"5478:1:9","valueSize":1},{"declaration":1323,"isOffset":false,"isSlot":false,"src":"5529:1:9","valueSize":1},{"declaration":1323,"isOffset":false,"isSlot":false,"src":"5541:1:9","valueSize":1}],"id":1335,"nodeType":"InlineAssembly","src":"5436:117:9"},{"AST":{"nodeType":"YulBlock","src":"5571:108:9","statements":[{"nodeType":"YulVariableDeclaration","src":"5585:27:9","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5598:1:9","type":"","value":"1"},{"arguments":[{"name":"r","nodeType":"YulIdentifier","src":"5604:1:9"},{"kind":"number","nodeType":"YulLiteral","src":"5607:3:9","type":"","value":"0x3"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"5601:2:9"},"nodeType":"YulFunctionCall","src":"5601:10:9"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"5594:3:9"},"nodeType":"YulFunctionCall","src":"5594:18:9"},"variables":[{"name":"f","nodeType":"YulTypedName","src":"5589:1:9","type":""}]},{"nodeType":"YulAssignment","src":"5625:17:9","value":{"arguments":[{"name":"msb","nodeType":"YulIdentifier","src":"5635:3:9"},{"name":"f","nodeType":"YulIdentifier","src":"5640:1:9"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"5632:2:9"},"nodeType":"YulFunctionCall","src":"5632:10:9"},"variableNames":[{"name":"msb","nodeType":"YulIdentifier","src":"5625:3:9"}]},{"nodeType":"YulAssignment","src":"5655:14:9","value":{"arguments":[{"name":"f","nodeType":"YulIdentifier","src":"5664:1:9"},{"name":"r","nodeType":"YulIdentifier","src":"5667:1:9"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"5660:3:9"},"nodeType":"YulFunctionCall","src":"5660:9:9"},"variableNames":[{"name":"r","nodeType":"YulIdentifier","src":"5655:1:9"}]}]},"evmVersion":"istanbul","externalReferences":[{"declaration":1327,"isOffset":false,"isSlot":false,"src":"5625:3:9","valueSize":1},{"declaration":1327,"isOffset":false,"isSlot":false,"src":"5635:3:9","valueSize":1},{"declaration":1323,"isOffset":false,"isSlot":false,"src":"5604:1:9","valueSize":1},{"declaration":1323,"isOffset":false,"isSlot":false,"src":"5655:1:9","valueSize":1},{"declaration":1323,"isOffset":false,"isSlot":false,"src":"5667:1:9","valueSize":1}],"id":1336,"nodeType":"InlineAssembly","src":"5562:117:9"},{"AST":{"nodeType":"YulBlock","src":"5697:73:9","statements":[{"nodeType":"YulVariableDeclaration","src":"5711:19:9","value":{"arguments":[{"name":"r","nodeType":"YulIdentifier","src":"5723:1:9"},{"kind":"number","nodeType":"YulLiteral","src":"5726:3:9","type":"","value":"0x1"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"5720:2:9"},"nodeType":"YulFunctionCall","src":"5720:10:9"},"variables":[{"name":"f","nodeType":"YulTypedName","src":"5715:1:9","type":""}]},{"nodeType":"YulAssignment","src":"5743:17:9","value":{"arguments":[{"name":"msb","nodeType":"YulIdentifier","src":"5753:3:9"},{"name":"f","nodeType":"YulIdentifier","src":"5758:1:9"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"5750:2:9"},"nodeType":"YulFunctionCall","src":"5750:10:9"},"variableNames":[{"name":"msb","nodeType":"YulIdentifier","src":"5743:3:9"}]}]},"evmVersion":"istanbul","externalReferences":[{"declaration":1327,"isOffset":false,"isSlot":false,"src":"5743:3:9","valueSize":1},{"declaration":1327,"isOffset":false,"isSlot":false,"src":"5753:3:9","valueSize":1},{"declaration":1323,"isOffset":false,"isSlot":false,"src":"5723:1:9","valueSize":1}],"id":1337,"nodeType":"InlineAssembly","src":"5688:82:9"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1340,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1338,"name":"msb","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1327,"src":"5784:3:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"hexValue":"313238","id":1339,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5791:3:9","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"5784:10:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"expression":{"id":1357,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1350,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1323,"src":"5835:1:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1356,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1351,"name":"ratio","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1314,"src":"5839:5:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1354,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"313237","id":1352,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5849:3:9","typeDescriptions":{"typeIdentifier":"t_rational_127_by_1","typeString":"int_const 127"},"value":"127"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":1353,"name":"msb","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1327,"src":"5855:3:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5849:9:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":1355,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"5848:11:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5839:20:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5835:24:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1358,"nodeType":"ExpressionStatement","src":"5835:24:9"},"id":1359,"nodeType":"IfStatement","src":"5780:79:9","trueBody":{"expression":{"id":1348,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1341,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1323,"src":"5796:1:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1347,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1342,"name":"ratio","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1314,"src":"5800:5:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1345,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1343,"name":"msb","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1327,"src":"5810:3:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"313237","id":1344,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5816:3:9","typeDescriptions":{"typeIdentifier":"t_rational_127_by_1","typeString":"int_const 127"},"value":"127"},"src":"5810:9:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":1346,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"5809:11:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5800:20:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5796:24:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1349,"nodeType":"ExpressionStatement","src":"5796:24:9"}},{"assignments":[1361],"declarations":[{"constant":false,"id":1361,"mutability":"mutable","name":"log_2","nodeType":"VariableDeclaration","scope":1432,"src":"5870:12:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":1360,"name":"int256","nodeType":"ElementaryTypeName","src":"5870:6:9","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":1371,"initialValue":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":1370,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":1367,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":1364,"name":"msb","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1327,"src":"5893:3:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1363,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5886:6:9","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":1362,"name":"int256","nodeType":"ElementaryTypeName","src":"5886:6:9","typeDescriptions":{}}},"id":1365,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5886:11:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"313238","id":1366,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5900:3:9","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"5886:17:9","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":1368,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"5885:19:9","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3634","id":1369,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5908:2:9","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"5885:25:9","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"5870:40:9"},{"AST":{"nodeType":"YulBlock","src":"5930:151:9","statements":[{"nodeType":"YulAssignment","src":"5944:24:9","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5953:3:9","type":"","value":"127"},{"arguments":[{"name":"r","nodeType":"YulIdentifier","src":"5962:1:9"},{"name":"r","nodeType":"YulIdentifier","src":"5965:1:9"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"5958:3:9"},"nodeType":"YulFunctionCall","src":"5958:9:9"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"5949:3:9"},"nodeType":"YulFunctionCall","src":"5949:19:9"},"variableNames":[{"name":"r","nodeType":"YulIdentifier","src":"5944:1:9"}]},{"nodeType":"YulVariableDeclaration","src":"5981:20:9","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5994:3:9","type":"","value":"128"},{"name":"r","nodeType":"YulIdentifier","src":"5999:1:9"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"5990:3:9"},"nodeType":"YulFunctionCall","src":"5990:11:9"},"variables":[{"name":"f","nodeType":"YulTypedName","src":"5985:1:9","type":""}]},{"nodeType":"YulAssignment","src":"6014:30:9","value":{"arguments":[{"name":"log_2","nodeType":"YulIdentifier","src":"6026:5:9"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6037:2:9","type":"","value":"63"},{"name":"f","nodeType":"YulIdentifier","src":"6041:1:9"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"6033:3:9"},"nodeType":"YulFunctionCall","src":"6033:10:9"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"6023:2:9"},"nodeType":"YulFunctionCall","src":"6023:21:9"},"variableNames":[{"name":"log_2","nodeType":"YulIdentifier","src":"6014:5:9"}]},{"nodeType":"YulAssignment","src":"6057:14:9","value":{"arguments":[{"name":"f","nodeType":"YulIdentifier","src":"6066:1:9"},{"name":"r","nodeType":"YulIdentifier","src":"6069:1:9"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"6062:3:9"},"nodeType":"YulFunctionCall","src":"6062:9:9"},"variableNames":[{"name":"r","nodeType":"YulIdentifier","src":"6057:1:9"}]}]},"evmVersion":"istanbul","externalReferences":[{"declaration":1361,"isOffset":false,"isSlot":false,"src":"6014:5:9","valueSize":1},{"declaration":1361,"isOffset":false,"isSlot":false,"src":"6026:5:9","valueSize":1},{"declaration":1323,"isOffset":false,"isSlot":false,"src":"5944:1:9","valueSize":1},{"declaration":1323,"isOffset":false,"isSlot":false,"src":"5962:1:9","valueSize":1},{"declaration":1323,"isOffset":false,"isSlot":false,"src":"5965:1:9","valueSize":1},{"declaration":1323,"isOffset":false,"isSlot":false,"src":"5999:1:9","valueSize":1},{"declaration":1323,"isOffset":false,"isSlot":false,"src":"6057:1:9","valueSize":1},{"declaration":1323,"isOffset":false,"isSlot":false,"src":"6069:1:9","valueSize":1}],"id":1372,"nodeType":"InlineAssembly","src":"5921:160:9"},{"AST":{"nodeType":"YulBlock","src":"6099:151:9","statements":[{"nodeType":"YulAssignment","src":"6113:24:9","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6122:3:9","type":"","value":"127"},{"arguments":[{"name":"r","nodeType":"YulIdentifier","src":"6131:1:9"},{"name":"r","nodeType":"YulIdentifier","src":"6134:1:9"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"6127:3:9"},"nodeType":"YulFunctionCall","src":"6127:9:9"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"6118:3:9"},"nodeType":"YulFunctionCall","src":"6118:19:9"},"variableNames":[{"name":"r","nodeType":"YulIdentifier","src":"6113:1:9"}]},{"nodeType":"YulVariableDeclaration","src":"6150:20:9","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6163:3:9","type":"","value":"128"},{"name":"r","nodeType":"YulIdentifier","src":"6168:1:9"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"6159:3:9"},"nodeType":"YulFunctionCall","src":"6159:11:9"},"variables":[{"name":"f","nodeType":"YulTypedName","src":"6154:1:9","type":""}]},{"nodeType":"YulAssignment","src":"6183:30:9","value":{"arguments":[{"name":"log_2","nodeType":"YulIdentifier","src":"6195:5:9"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6206:2:9","type":"","value":"62"},{"name":"f","nodeType":"YulIdentifier","src":"6210:1:9"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"6202:3:9"},"nodeType":"YulFunctionCall","src":"6202:10:9"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"6192:2:9"},"nodeType":"YulFunctionCall","src":"6192:21:9"},"variableNames":[{"name":"log_2","nodeType":"YulIdentifier","src":"6183:5:9"}]},{"nodeType":"YulAssignment","src":"6226:14:9","value":{"arguments":[{"name":"f","nodeType":"YulIdentifier","src":"6235:1:9"},{"name":"r","nodeType":"YulIdentifier","src":"6238:1:9"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"6231:3:9"},"nodeType":"YulFunctionCall","src":"6231:9:9"},"variableNames":[{"name":"r","nodeType":"YulIdentifier","src":"6226:1:9"}]}]},"evmVersion":"istanbul","externalReferences":[{"declaration":1361,"isOffset":false,"isSlot":false,"src":"6183:5:9","valueSize":1},{"declaration":1361,"isOffset":false,"isSlot":false,"src":"6195:5:9","valueSize":1},{"declaration":1323,"isOffset":false,"isSlot":false,"src":"6113:1:9","valueSize":1},{"declaration":1323,"isOffset":false,"isSlot":false,"src":"6131:1:9","valueSize":1},{"declaration":1323,"isOffset":false,"isSlot":false,"src":"6134:1:9","valueSize":1},{"declaration":1323,"isOffset":false,"isSlot":false,"src":"6168:1:9","valueSize":1},{"declaration":1323,"isOffset":false,"isSlot":false,"src":"6226:1:9","valueSize":1},{"declaration":1323,"isOffset":false,"isSlot":false,"src":"6238:1:9","valueSize":1}],"id":1373,"nodeType":"InlineAssembly","src":"6090:160:9"},{"AST":{"nodeType":"YulBlock","src":"6268:151:9","statements":[{"nodeType":"YulAssignment","src":"6282:24:9","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6291:3:9","type":"","value":"127"},{"arguments":[{"name":"r","nodeType":"YulIdentifier","src":"6300:1:9"},{"name":"r","nodeType":"YulIdentifier","src":"6303:1:9"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"6296:3:9"},"nodeType":"YulFunctionCall","src":"6296:9:9"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"6287:3:9"},"nodeType":"YulFunctionCall","src":"6287:19:9"},"variableNames":[{"name":"r","nodeType":"YulIdentifier","src":"6282:1:9"}]},{"nodeType":"YulVariableDeclaration","src":"6319:20:9","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6332:3:9","type":"","value":"128"},{"name":"r","nodeType":"YulIdentifier","src":"6337:1:9"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"6328:3:9"},"nodeType":"YulFunctionCall","src":"6328:11:9"},"variables":[{"name":"f","nodeType":"YulTypedName","src":"6323:1:9","type":""}]},{"nodeType":"YulAssignment","src":"6352:30:9","value":{"arguments":[{"name":"log_2","nodeType":"YulIdentifier","src":"6364:5:9"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6375:2:9","type":"","value":"61"},{"name":"f","nodeType":"YulIdentifier","src":"6379:1:9"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"6371:3:9"},"nodeType":"YulFunctionCall","src":"6371:10:9"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"6361:2:9"},"nodeType":"YulFunctionCall","src":"6361:21:9"},"variableNames":[{"name":"log_2","nodeType":"YulIdentifier","src":"6352:5:9"}]},{"nodeType":"YulAssignment","src":"6395:14:9","value":{"arguments":[{"name":"f","nodeType":"YulIdentifier","src":"6404:1:9"},{"name":"r","nodeType":"YulIdentifier","src":"6407:1:9"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"6400:3:9"},"nodeType":"YulFunctionCall","src":"6400:9:9"},"variableNames":[{"name":"r","nodeType":"YulIdentifier","src":"6395:1:9"}]}]},"evmVersion":"istanbul","externalReferences":[{"declaration":1361,"isOffset":false,"isSlot":false,"src":"6352:5:9","valueSize":1},{"declaration":1361,"isOffset":false,"isSlot":false,"src":"6364:5:9","valueSize":1},{"declaration":1323,"isOffset":false,"isSlot":false,"src":"6282:1:9","valueSize":1},{"declaration":1323,"isOffset":false,"isSlot":false,"src":"6300:1:9","valueSize":1},{"declaration":1323,"isOffset":false,"isSlot":false,"src":"6303:1:9","valueSize":1},{"declaration":1323,"isOffset":false,"isSlot":false,"src":"6337:1:9","valueSize":1},{"declaration":1323,"isOffset":false,"isSlot":false,"src":"6395:1:9","valueSize":1},{"declaration":1323,"isOffset":false,"isSlot":false,"src":"6407:1:9","valueSize":1}],"id":1374,"nodeType":"InlineAssembly","src":"6259:160:9"},{"AST":{"nodeType":"YulBlock","src":"6437:151:9","statements":[{"nodeType":"YulAssignment","src":"6451:24:9","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6460:3:9","type":"","value":"127"},{"arguments":[{"name":"r","nodeType":"YulIdentifier","src":"6469:1:9"},{"name":"r","nodeType":"YulIdentifier","src":"6472:1:9"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"6465:3:9"},"nodeType":"YulFunctionCall","src":"6465:9:9"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"6456:3:9"},"nodeType":"YulFunctionCall","src":"6456:19:9"},"variableNames":[{"name":"r","nodeType":"YulIdentifier","src":"6451:1:9"}]},{"nodeType":"YulVariableDeclaration","src":"6488:20:9","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6501:3:9","type":"","value":"128"},{"name":"r","nodeType":"YulIdentifier","src":"6506:1:9"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"6497:3:9"},"nodeType":"YulFunctionCall","src":"6497:11:9"},"variables":[{"name":"f","nodeType":"YulTypedName","src":"6492:1:9","type":""}]},{"nodeType":"YulAssignment","src":"6521:30:9","value":{"arguments":[{"name":"log_2","nodeType":"YulIdentifier","src":"6533:5:9"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6544:2:9","type":"","value":"60"},{"name":"f","nodeType":"YulIdentifier","src":"6548:1:9"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"6540:3:9"},"nodeType":"YulFunctionCall","src":"6540:10:9"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"6530:2:9"},"nodeType":"YulFunctionCall","src":"6530:21:9"},"variableNames":[{"name":"log_2","nodeType":"YulIdentifier","src":"6521:5:9"}]},{"nodeType":"YulAssignment","src":"6564:14:9","value":{"arguments":[{"name":"f","nodeType":"YulIdentifier","src":"6573:1:9"},{"name":"r","nodeType":"YulIdentifier","src":"6576:1:9"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"6569:3:9"},"nodeType":"YulFunctionCall","src":"6569:9:9"},"variableNames":[{"name":"r","nodeType":"YulIdentifier","src":"6564:1:9"}]}]},"evmVersion":"istanbul","externalReferences":[{"declaration":1361,"isOffset":false,"isSlot":false,"src":"6521:5:9","valueSize":1},{"declaration":1361,"isOffset":false,"isSlot":false,"src":"6533:5:9","valueSize":1},{"declaration":1323,"isOffset":false,"isSlot":false,"src":"6451:1:9","valueSize":1},{"declaration":1323,"isOffset":false,"isSlot":false,"src":"6469:1:9","valueSize":1},{"declaration":1323,"isOffset":false,"isSlot":false,"src":"6472:1:9","valueSize":1},{"declaration":1323,"isOffset":false,"isSlot":false,"src":"6506:1:9","valueSize":1},{"declaration":1323,"isOffset":false,"isSlot":false,"src":"6564:1:9","valueSize":1},{"declaration":1323,"isOffset":false,"isSlot":false,"src":"6576:1:9","valueSize":1}],"id":1375,"nodeType":"InlineAssembly","src":"6428:160:9"},{"AST":{"nodeType":"YulBlock","src":"6606:151:9","statements":[{"nodeType":"YulAssignment","src":"6620:24:9","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6629:3:9","type":"","value":"127"},{"arguments":[{"name":"r","nodeType":"YulIdentifier","src":"6638:1:9"},{"name":"r","nodeType":"YulIdentifier","src":"6641:1:9"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"6634:3:9"},"nodeType":"YulFunctionCall","src":"6634:9:9"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"6625:3:9"},"nodeType":"YulFunctionCall","src":"6625:19:9"},"variableNames":[{"name":"r","nodeType":"YulIdentifier","src":"6620:1:9"}]},{"nodeType":"YulVariableDeclaration","src":"6657:20:9","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6670:3:9","type":"","value":"128"},{"name":"r","nodeType":"YulIdentifier","src":"6675:1:9"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"6666:3:9"},"nodeType":"YulFunctionCall","src":"6666:11:9"},"variables":[{"name":"f","nodeType":"YulTypedName","src":"6661:1:9","type":""}]},{"nodeType":"YulAssignment","src":"6690:30:9","value":{"arguments":[{"name":"log_2","nodeType":"YulIdentifier","src":"6702:5:9"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6713:2:9","type":"","value":"59"},{"name":"f","nodeType":"YulIdentifier","src":"6717:1:9"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"6709:3:9"},"nodeType":"YulFunctionCall","src":"6709:10:9"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"6699:2:9"},"nodeType":"YulFunctionCall","src":"6699:21:9"},"variableNames":[{"name":"log_2","nodeType":"YulIdentifier","src":"6690:5:9"}]},{"nodeType":"YulAssignment","src":"6733:14:9","value":{"arguments":[{"name":"f","nodeType":"YulIdentifier","src":"6742:1:9"},{"name":"r","nodeType":"YulIdentifier","src":"6745:1:9"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"6738:3:9"},"nodeType":"YulFunctionCall","src":"6738:9:9"},"variableNames":[{"name":"r","nodeType":"YulIdentifier","src":"6733:1:9"}]}]},"evmVersion":"istanbul","externalReferences":[{"declaration":1361,"isOffset":false,"isSlot":false,"src":"6690:5:9","valueSize":1},{"declaration":1361,"isOffset":false,"isSlot":false,"src":"6702:5:9","valueSize":1},{"declaration":1323,"isOffset":false,"isSlot":false,"src":"6620:1:9","valueSize":1},{"declaration":1323,"isOffset":false,"isSlot":false,"src":"6638:1:9","valueSize":1},{"declaration":1323,"isOffset":false,"isSlot":false,"src":"6641:1:9","valueSize":1},{"declaration":1323,"isOffset":false,"isSlot":false,"src":"6675:1:9","valueSize":1},{"declaration":1323,"isOffset":false,"isSlot":false,"src":"6733:1:9","valueSize":1},{"declaration":1323,"isOffset":false,"isSlot":false,"src":"6745:1:9","valueSize":1}],"id":1376,"nodeType":"InlineAssembly","src":"6597:160:9"},{"AST":{"nodeType":"YulBlock","src":"6775:151:9","statements":[{"nodeType":"YulAssignment","src":"6789:24:9","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6798:3:9","type":"","value":"127"},{"arguments":[{"name":"r","nodeType":"YulIdentifier","src":"6807:1:9"},{"name":"r","nodeType":"YulIdentifier","src":"6810:1:9"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"6803:3:9"},"nodeType":"YulFunctionCall","src":"6803:9:9"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"6794:3:9"},"nodeType":"YulFunctionCall","src":"6794:19:9"},"variableNames":[{"name":"r","nodeType":"YulIdentifier","src":"6789:1:9"}]},{"nodeType":"YulVariableDeclaration","src":"6826:20:9","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6839:3:9","type":"","value":"128"},{"name":"r","nodeType":"YulIdentifier","src":"6844:1:9"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"6835:3:9"},"nodeType":"YulFunctionCall","src":"6835:11:9"},"variables":[{"name":"f","nodeType":"YulTypedName","src":"6830:1:9","type":""}]},{"nodeType":"YulAssignment","src":"6859:30:9","value":{"arguments":[{"name":"log_2","nodeType":"YulIdentifier","src":"6871:5:9"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6882:2:9","type":"","value":"58"},{"name":"f","nodeType":"YulIdentifier","src":"6886:1:9"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"6878:3:9"},"nodeType":"YulFunctionCall","src":"6878:10:9"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"6868:2:9"},"nodeType":"YulFunctionCall","src":"6868:21:9"},"variableNames":[{"name":"log_2","nodeType":"YulIdentifier","src":"6859:5:9"}]},{"nodeType":"YulAssignment","src":"6902:14:9","value":{"arguments":[{"name":"f","nodeType":"YulIdentifier","src":"6911:1:9"},{"name":"r","nodeType":"YulIdentifier","src":"6914:1:9"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"6907:3:9"},"nodeType":"YulFunctionCall","src":"6907:9:9"},"variableNames":[{"name":"r","nodeType":"YulIdentifier","src":"6902:1:9"}]}]},"evmVersion":"istanbul","externalReferences":[{"declaration":1361,"isOffset":false,"isSlot":false,"src":"6859:5:9","valueSize":1},{"declaration":1361,"isOffset":false,"isSlot":false,"src":"6871:5:9","valueSize":1},{"declaration":1323,"isOffset":false,"isSlot":false,"src":"6789:1:9","valueSize":1},{"declaration":1323,"isOffset":false,"isSlot":false,"src":"6807:1:9","valueSize":1},{"declaration":1323,"isOffset":false,"isSlot":false,"src":"6810:1:9","valueSize":1},{"declaration":1323,"isOffset":false,"isSlot":false,"src":"6844:1:9","valueSize":1},{"declaration":1323,"isOffset":false,"isSlot":false,"src":"6902:1:9","valueSize":1},{"declaration":1323,"isOffset":false,"isSlot":false,"src":"6914:1:9","valueSize":1}],"id":1377,"nodeType":"InlineAssembly","src":"6766:160:9"},{"AST":{"nodeType":"YulBlock","src":"6944:151:9","statements":[{"nodeType":"YulAssignment","src":"6958:24:9","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6967:3:9","type":"","value":"127"},{"arguments":[{"name":"r","nodeType":"YulIdentifier","src":"6976:1:9"},{"name":"r","nodeType":"YulIdentifier","src":"6979:1:9"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"6972:3:9"},"nodeType":"YulFunctionCall","src":"6972:9:9"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"6963:3:9"},"nodeType":"YulFunctionCall","src":"6963:19:9"},"variableNames":[{"name":"r","nodeType":"YulIdentifier","src":"6958:1:9"}]},{"nodeType":"YulVariableDeclaration","src":"6995:20:9","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7008:3:9","type":"","value":"128"},{"name":"r","nodeType":"YulIdentifier","src":"7013:1:9"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"7004:3:9"},"nodeType":"YulFunctionCall","src":"7004:11:9"},"variables":[{"name":"f","nodeType":"YulTypedName","src":"6999:1:9","type":""}]},{"nodeType":"YulAssignment","src":"7028:30:9","value":{"arguments":[{"name":"log_2","nodeType":"YulIdentifier","src":"7040:5:9"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7051:2:9","type":"","value":"57"},{"name":"f","nodeType":"YulIdentifier","src":"7055:1:9"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"7047:3:9"},"nodeType":"YulFunctionCall","src":"7047:10:9"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"7037:2:9"},"nodeType":"YulFunctionCall","src":"7037:21:9"},"variableNames":[{"name":"log_2","nodeType":"YulIdentifier","src":"7028:5:9"}]},{"nodeType":"YulAssignment","src":"7071:14:9","value":{"arguments":[{"name":"f","nodeType":"YulIdentifier","src":"7080:1:9"},{"name":"r","nodeType":"YulIdentifier","src":"7083:1:9"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"7076:3:9"},"nodeType":"YulFunctionCall","src":"7076:9:9"},"variableNames":[{"name":"r","nodeType":"YulIdentifier","src":"7071:1:9"}]}]},"evmVersion":"istanbul","externalReferences":[{"declaration":1361,"isOffset":false,"isSlot":false,"src":"7028:5:9","valueSize":1},{"declaration":1361,"isOffset":false,"isSlot":false,"src":"7040:5:9","valueSize":1},{"declaration":1323,"isOffset":false,"isSlot":false,"src":"6958:1:9","valueSize":1},{"declaration":1323,"isOffset":false,"isSlot":false,"src":"6976:1:9","valueSize":1},{"declaration":1323,"isOffset":false,"isSlot":false,"src":"6979:1:9","valueSize":1},{"declaration":1323,"isOffset":false,"isSlot":false,"src":"7013:1:9","valueSize":1},{"declaration":1323,"isOffset":false,"isSlot":false,"src":"7071:1:9","valueSize":1},{"declaration":1323,"isOffset":false,"isSlot":false,"src":"7083:1:9","valueSize":1}],"id":1378,"nodeType":"InlineAssembly","src":"6935:160:9"},{"AST":{"nodeType":"YulBlock","src":"7113:151:9","statements":[{"nodeType":"YulAssignment","src":"7127:24:9","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7136:3:9","type":"","value":"127"},{"arguments":[{"name":"r","nodeType":"YulIdentifier","src":"7145:1:9"},{"name":"r","nodeType":"YulIdentifier","src":"7148:1:9"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"7141:3:9"},"nodeType":"YulFunctionCall","src":"7141:9:9"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"7132:3:9"},"nodeType":"YulFunctionCall","src":"7132:19:9"},"variableNames":[{"name":"r","nodeType":"YulIdentifier","src":"7127:1:9"}]},{"nodeType":"YulVariableDeclaration","src":"7164:20:9","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7177:3:9","type":"","value":"128"},{"name":"r","nodeType":"YulIdentifier","src":"7182:1:9"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"7173:3:9"},"nodeType":"YulFunctionCall","src":"7173:11:9"},"variables":[{"name":"f","nodeType":"YulTypedName","src":"7168:1:9","type":""}]},{"nodeType":"YulAssignment","src":"7197:30:9","value":{"arguments":[{"name":"log_2","nodeType":"YulIdentifier","src":"7209:5:9"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7220:2:9","type":"","value":"56"},{"name":"f","nodeType":"YulIdentifier","src":"7224:1:9"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"7216:3:9"},"nodeType":"YulFunctionCall","src":"7216:10:9"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"7206:2:9"},"nodeType":"YulFunctionCall","src":"7206:21:9"},"variableNames":[{"name":"log_2","nodeType":"YulIdentifier","src":"7197:5:9"}]},{"nodeType":"YulAssignment","src":"7240:14:9","value":{"arguments":[{"name":"f","nodeType":"YulIdentifier","src":"7249:1:9"},{"name":"r","nodeType":"YulIdentifier","src":"7252:1:9"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"7245:3:9"},"nodeType":"YulFunctionCall","src":"7245:9:9"},"variableNames":[{"name":"r","nodeType":"YulIdentifier","src":"7240:1:9"}]}]},"evmVersion":"istanbul","externalReferences":[{"declaration":1361,"isOffset":false,"isSlot":false,"src":"7197:5:9","valueSize":1},{"declaration":1361,"isOffset":false,"isSlot":false,"src":"7209:5:9","valueSize":1},{"declaration":1323,"isOffset":false,"isSlot":false,"src":"7127:1:9","valueSize":1},{"declaration":1323,"isOffset":false,"isSlot":false,"src":"7145:1:9","valueSize":1},{"declaration":1323,"isOffset":false,"isSlot":false,"src":"7148:1:9","valueSize":1},{"declaration":1323,"isOffset":false,"isSlot":false,"src":"7182:1:9","valueSize":1},{"declaration":1323,"isOffset":false,"isSlot":false,"src":"7240:1:9","valueSize":1},{"declaration":1323,"isOffset":false,"isSlot":false,"src":"7252:1:9","valueSize":1}],"id":1379,"nodeType":"InlineAssembly","src":"7104:160:9"},{"AST":{"nodeType":"YulBlock","src":"7282:151:9","statements":[{"nodeType":"YulAssignment","src":"7296:24:9","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7305:3:9","type":"","value":"127"},{"arguments":[{"name":"r","nodeType":"YulIdentifier","src":"7314:1:9"},{"name":"r","nodeType":"YulIdentifier","src":"7317:1:9"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"7310:3:9"},"nodeType":"YulFunctionCall","src":"7310:9:9"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"7301:3:9"},"nodeType":"YulFunctionCall","src":"7301:19:9"},"variableNames":[{"name":"r","nodeType":"YulIdentifier","src":"7296:1:9"}]},{"nodeType":"YulVariableDeclaration","src":"7333:20:9","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7346:3:9","type":"","value":"128"},{"name":"r","nodeType":"YulIdentifier","src":"7351:1:9"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"7342:3:9"},"nodeType":"YulFunctionCall","src":"7342:11:9"},"variables":[{"name":"f","nodeType":"YulTypedName","src":"7337:1:9","type":""}]},{"nodeType":"YulAssignment","src":"7366:30:9","value":{"arguments":[{"name":"log_2","nodeType":"YulIdentifier","src":"7378:5:9"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7389:2:9","type":"","value":"55"},{"name":"f","nodeType":"YulIdentifier","src":"7393:1:9"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"7385:3:9"},"nodeType":"YulFunctionCall","src":"7385:10:9"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"7375:2:9"},"nodeType":"YulFunctionCall","src":"7375:21:9"},"variableNames":[{"name":"log_2","nodeType":"YulIdentifier","src":"7366:5:9"}]},{"nodeType":"YulAssignment","src":"7409:14:9","value":{"arguments":[{"name":"f","nodeType":"YulIdentifier","src":"7418:1:9"},{"name":"r","nodeType":"YulIdentifier","src":"7421:1:9"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"7414:3:9"},"nodeType":"YulFunctionCall","src":"7414:9:9"},"variableNames":[{"name":"r","nodeType":"YulIdentifier","src":"7409:1:9"}]}]},"evmVersion":"istanbul","externalReferences":[{"declaration":1361,"isOffset":false,"isSlot":false,"src":"7366:5:9","valueSize":1},{"declaration":1361,"isOffset":false,"isSlot":false,"src":"7378:5:9","valueSize":1},{"declaration":1323,"isOffset":false,"isSlot":false,"src":"7296:1:9","valueSize":1},{"declaration":1323,"isOffset":false,"isSlot":false,"src":"7314:1:9","valueSize":1},{"declaration":1323,"isOffset":false,"isSlot":false,"src":"7317:1:9","valueSize":1},{"declaration":1323,"isOffset":false,"isSlot":false,"src":"7351:1:9","valueSize":1},{"declaration":1323,"isOffset":false,"isSlot":false,"src":"7409:1:9","valueSize":1},{"declaration":1323,"isOffset":false,"isSlot":false,"src":"7421:1:9","valueSize":1}],"id":1380,"nodeType":"InlineAssembly","src":"7273:160:9"},{"AST":{"nodeType":"YulBlock","src":"7451:151:9","statements":[{"nodeType":"YulAssignment","src":"7465:24:9","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7474:3:9","type":"","value":"127"},{"arguments":[{"name":"r","nodeType":"YulIdentifier","src":"7483:1:9"},{"name":"r","nodeType":"YulIdentifier","src":"7486:1:9"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"7479:3:9"},"nodeType":"YulFunctionCall","src":"7479:9:9"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"7470:3:9"},"nodeType":"YulFunctionCall","src":"7470:19:9"},"variableNames":[{"name":"r","nodeType":"YulIdentifier","src":"7465:1:9"}]},{"nodeType":"YulVariableDeclaration","src":"7502:20:9","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7515:3:9","type":"","value":"128"},{"name":"r","nodeType":"YulIdentifier","src":"7520:1:9"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"7511:3:9"},"nodeType":"YulFunctionCall","src":"7511:11:9"},"variables":[{"name":"f","nodeType":"YulTypedName","src":"7506:1:9","type":""}]},{"nodeType":"YulAssignment","src":"7535:30:9","value":{"arguments":[{"name":"log_2","nodeType":"YulIdentifier","src":"7547:5:9"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7558:2:9","type":"","value":"54"},{"name":"f","nodeType":"YulIdentifier","src":"7562:1:9"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"7554:3:9"},"nodeType":"YulFunctionCall","src":"7554:10:9"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"7544:2:9"},"nodeType":"YulFunctionCall","src":"7544:21:9"},"variableNames":[{"name":"log_2","nodeType":"YulIdentifier","src":"7535:5:9"}]},{"nodeType":"YulAssignment","src":"7578:14:9","value":{"arguments":[{"name":"f","nodeType":"YulIdentifier","src":"7587:1:9"},{"name":"r","nodeType":"YulIdentifier","src":"7590:1:9"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"7583:3:9"},"nodeType":"YulFunctionCall","src":"7583:9:9"},"variableNames":[{"name":"r","nodeType":"YulIdentifier","src":"7578:1:9"}]}]},"evmVersion":"istanbul","externalReferences":[{"declaration":1361,"isOffset":false,"isSlot":false,"src":"7535:5:9","valueSize":1},{"declaration":1361,"isOffset":false,"isSlot":false,"src":"7547:5:9","valueSize":1},{"declaration":1323,"isOffset":false,"isSlot":false,"src":"7465:1:9","valueSize":1},{"declaration":1323,"isOffset":false,"isSlot":false,"src":"7483:1:9","valueSize":1},{"declaration":1323,"isOffset":false,"isSlot":false,"src":"7486:1:9","valueSize":1},{"declaration":1323,"isOffset":false,"isSlot":false,"src":"7520:1:9","valueSize":1},{"declaration":1323,"isOffset":false,"isSlot":false,"src":"7578:1:9","valueSize":1},{"declaration":1323,"isOffset":false,"isSlot":false,"src":"7590:1:9","valueSize":1}],"id":1381,"nodeType":"InlineAssembly","src":"7442:160:9"},{"AST":{"nodeType":"YulBlock","src":"7620:151:9","statements":[{"nodeType":"YulAssignment","src":"7634:24:9","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7643:3:9","type":"","value":"127"},{"arguments":[{"name":"r","nodeType":"YulIdentifier","src":"7652:1:9"},{"name":"r","nodeType":"YulIdentifier","src":"7655:1:9"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"7648:3:9"},"nodeType":"YulFunctionCall","src":"7648:9:9"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"7639:3:9"},"nodeType":"YulFunctionCall","src":"7639:19:9"},"variableNames":[{"name":"r","nodeType":"YulIdentifier","src":"7634:1:9"}]},{"nodeType":"YulVariableDeclaration","src":"7671:20:9","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7684:3:9","type":"","value":"128"},{"name":"r","nodeType":"YulIdentifier","src":"7689:1:9"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"7680:3:9"},"nodeType":"YulFunctionCall","src":"7680:11:9"},"variables":[{"name":"f","nodeType":"YulTypedName","src":"7675:1:9","type":""}]},{"nodeType":"YulAssignment","src":"7704:30:9","value":{"arguments":[{"name":"log_2","nodeType":"YulIdentifier","src":"7716:5:9"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7727:2:9","type":"","value":"53"},{"name":"f","nodeType":"YulIdentifier","src":"7731:1:9"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"7723:3:9"},"nodeType":"YulFunctionCall","src":"7723:10:9"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"7713:2:9"},"nodeType":"YulFunctionCall","src":"7713:21:9"},"variableNames":[{"name":"log_2","nodeType":"YulIdentifier","src":"7704:5:9"}]},{"nodeType":"YulAssignment","src":"7747:14:9","value":{"arguments":[{"name":"f","nodeType":"YulIdentifier","src":"7756:1:9"},{"name":"r","nodeType":"YulIdentifier","src":"7759:1:9"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"7752:3:9"},"nodeType":"YulFunctionCall","src":"7752:9:9"},"variableNames":[{"name":"r","nodeType":"YulIdentifier","src":"7747:1:9"}]}]},"evmVersion":"istanbul","externalReferences":[{"declaration":1361,"isOffset":false,"isSlot":false,"src":"7704:5:9","valueSize":1},{"declaration":1361,"isOffset":false,"isSlot":false,"src":"7716:5:9","valueSize":1},{"declaration":1323,"isOffset":false,"isSlot":false,"src":"7634:1:9","valueSize":1},{"declaration":1323,"isOffset":false,"isSlot":false,"src":"7652:1:9","valueSize":1},{"declaration":1323,"isOffset":false,"isSlot":false,"src":"7655:1:9","valueSize":1},{"declaration":1323,"isOffset":false,"isSlot":false,"src":"7689:1:9","valueSize":1},{"declaration":1323,"isOffset":false,"isSlot":false,"src":"7747:1:9","valueSize":1},{"declaration":1323,"isOffset":false,"isSlot":false,"src":"7759:1:9","valueSize":1}],"id":1382,"nodeType":"InlineAssembly","src":"7611:160:9"},{"AST":{"nodeType":"YulBlock","src":"7789:151:9","statements":[{"nodeType":"YulAssignment","src":"7803:24:9","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7812:3:9","type":"","value":"127"},{"arguments":[{"name":"r","nodeType":"YulIdentifier","src":"7821:1:9"},{"name":"r","nodeType":"YulIdentifier","src":"7824:1:9"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"7817:3:9"},"nodeType":"YulFunctionCall","src":"7817:9:9"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"7808:3:9"},"nodeType":"YulFunctionCall","src":"7808:19:9"},"variableNames":[{"name":"r","nodeType":"YulIdentifier","src":"7803:1:9"}]},{"nodeType":"YulVariableDeclaration","src":"7840:20:9","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7853:3:9","type":"","value":"128"},{"name":"r","nodeType":"YulIdentifier","src":"7858:1:9"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"7849:3:9"},"nodeType":"YulFunctionCall","src":"7849:11:9"},"variables":[{"name":"f","nodeType":"YulTypedName","src":"7844:1:9","type":""}]},{"nodeType":"YulAssignment","src":"7873:30:9","value":{"arguments":[{"name":"log_2","nodeType":"YulIdentifier","src":"7885:5:9"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7896:2:9","type":"","value":"52"},{"name":"f","nodeType":"YulIdentifier","src":"7900:1:9"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"7892:3:9"},"nodeType":"YulFunctionCall","src":"7892:10:9"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"7882:2:9"},"nodeType":"YulFunctionCall","src":"7882:21:9"},"variableNames":[{"name":"log_2","nodeType":"YulIdentifier","src":"7873:5:9"}]},{"nodeType":"YulAssignment","src":"7916:14:9","value":{"arguments":[{"name":"f","nodeType":"YulIdentifier","src":"7925:1:9"},{"name":"r","nodeType":"YulIdentifier","src":"7928:1:9"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"7921:3:9"},"nodeType":"YulFunctionCall","src":"7921:9:9"},"variableNames":[{"name":"r","nodeType":"YulIdentifier","src":"7916:1:9"}]}]},"evmVersion":"istanbul","externalReferences":[{"declaration":1361,"isOffset":false,"isSlot":false,"src":"7873:5:9","valueSize":1},{"declaration":1361,"isOffset":false,"isSlot":false,"src":"7885:5:9","valueSize":1},{"declaration":1323,"isOffset":false,"isSlot":false,"src":"7803:1:9","valueSize":1},{"declaration":1323,"isOffset":false,"isSlot":false,"src":"7821:1:9","valueSize":1},{"declaration":1323,"isOffset":false,"isSlot":false,"src":"7824:1:9","valueSize":1},{"declaration":1323,"isOffset":false,"isSlot":false,"src":"7858:1:9","valueSize":1},{"declaration":1323,"isOffset":false,"isSlot":false,"src":"7916:1:9","valueSize":1},{"declaration":1323,"isOffset":false,"isSlot":false,"src":"7928:1:9","valueSize":1}],"id":1383,"nodeType":"InlineAssembly","src":"7780:160:9"},{"AST":{"nodeType":"YulBlock","src":"7958:151:9","statements":[{"nodeType":"YulAssignment","src":"7972:24:9","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7981:3:9","type":"","value":"127"},{"arguments":[{"name":"r","nodeType":"YulIdentifier","src":"7990:1:9"},{"name":"r","nodeType":"YulIdentifier","src":"7993:1:9"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"7986:3:9"},"nodeType":"YulFunctionCall","src":"7986:9:9"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"7977:3:9"},"nodeType":"YulFunctionCall","src":"7977:19:9"},"variableNames":[{"name":"r","nodeType":"YulIdentifier","src":"7972:1:9"}]},{"nodeType":"YulVariableDeclaration","src":"8009:20:9","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8022:3:9","type":"","value":"128"},{"name":"r","nodeType":"YulIdentifier","src":"8027:1:9"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"8018:3:9"},"nodeType":"YulFunctionCall","src":"8018:11:9"},"variables":[{"name":"f","nodeType":"YulTypedName","src":"8013:1:9","type":""}]},{"nodeType":"YulAssignment","src":"8042:30:9","value":{"arguments":[{"name":"log_2","nodeType":"YulIdentifier","src":"8054:5:9"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8065:2:9","type":"","value":"51"},{"name":"f","nodeType":"YulIdentifier","src":"8069:1:9"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"8061:3:9"},"nodeType":"YulFunctionCall","src":"8061:10:9"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"8051:2:9"},"nodeType":"YulFunctionCall","src":"8051:21:9"},"variableNames":[{"name":"log_2","nodeType":"YulIdentifier","src":"8042:5:9"}]},{"nodeType":"YulAssignment","src":"8085:14:9","value":{"arguments":[{"name":"f","nodeType":"YulIdentifier","src":"8094:1:9"},{"name":"r","nodeType":"YulIdentifier","src":"8097:1:9"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"8090:3:9"},"nodeType":"YulFunctionCall","src":"8090:9:9"},"variableNames":[{"name":"r","nodeType":"YulIdentifier","src":"8085:1:9"}]}]},"evmVersion":"istanbul","externalReferences":[{"declaration":1361,"isOffset":false,"isSlot":false,"src":"8042:5:9","valueSize":1},{"declaration":1361,"isOffset":false,"isSlot":false,"src":"8054:5:9","valueSize":1},{"declaration":1323,"isOffset":false,"isSlot":false,"src":"7972:1:9","valueSize":1},{"declaration":1323,"isOffset":false,"isSlot":false,"src":"7990:1:9","valueSize":1},{"declaration":1323,"isOffset":false,"isSlot":false,"src":"7993:1:9","valueSize":1},{"declaration":1323,"isOffset":false,"isSlot":false,"src":"8027:1:9","valueSize":1},{"declaration":1323,"isOffset":false,"isSlot":false,"src":"8085:1:9","valueSize":1},{"declaration":1323,"isOffset":false,"isSlot":false,"src":"8097:1:9","valueSize":1}],"id":1384,"nodeType":"InlineAssembly","src":"7949:160:9"},{"AST":{"nodeType":"YulBlock","src":"8127:124:9","statements":[{"nodeType":"YulAssignment","src":"8141:24:9","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8150:3:9","type":"","value":"127"},{"arguments":[{"name":"r","nodeType":"YulIdentifier","src":"8159:1:9"},{"name":"r","nodeType":"YulIdentifier","src":"8162:1:9"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"8155:3:9"},"nodeType":"YulFunctionCall","src":"8155:9:9"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"8146:3:9"},"nodeType":"YulFunctionCall","src":"8146:19:9"},"variableNames":[{"name":"r","nodeType":"YulIdentifier","src":"8141:1:9"}]},{"nodeType":"YulVariableDeclaration","src":"8178:20:9","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8191:3:9","type":"","value":"128"},{"name":"r","nodeType":"YulIdentifier","src":"8196:1:9"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"8187:3:9"},"nodeType":"YulFunctionCall","src":"8187:11:9"},"variables":[{"name":"f","nodeType":"YulTypedName","src":"8182:1:9","type":""}]},{"nodeType":"YulAssignment","src":"8211:30:9","value":{"arguments":[{"name":"log_2","nodeType":"YulIdentifier","src":"8223:5:9"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8234:2:9","type":"","value":"50"},{"name":"f","nodeType":"YulIdentifier","src":"8238:1:9"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"8230:3:9"},"nodeType":"YulFunctionCall","src":"8230:10:9"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"8220:2:9"},"nodeType":"YulFunctionCall","src":"8220:21:9"},"variableNames":[{"name":"log_2","nodeType":"YulIdentifier","src":"8211:5:9"}]}]},"evmVersion":"istanbul","externalReferences":[{"declaration":1361,"isOffset":false,"isSlot":false,"src":"8211:5:9","valueSize":1},{"declaration":1361,"isOffset":false,"isSlot":false,"src":"8223:5:9","valueSize":1},{"declaration":1323,"isOffset":false,"isSlot":false,"src":"8141:1:9","valueSize":1},{"declaration":1323,"isOffset":false,"isSlot":false,"src":"8159:1:9","valueSize":1},{"declaration":1323,"isOffset":false,"isSlot":false,"src":"8162:1:9","valueSize":1},{"declaration":1323,"isOffset":false,"isSlot":false,"src":"8196:1:9","valueSize":1}],"id":1385,"nodeType":"InlineAssembly","src":"8118:133:9"},{"assignments":[1387],"declarations":[{"constant":false,"id":1387,"mutability":"mutable","name":"log_sqrt10001","nodeType":"VariableDeclaration","scope":1432,"src":"8261:20:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":1386,"name":"int256","nodeType":"ElementaryTypeName","src":"8261:6:9","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":1391,"initialValue":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":1390,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1388,"name":"log_2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1361,"src":"8284:5:9","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"323535373338393538393939363033383236333437313431","id":1389,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8292:24:9","typeDescriptions":{"typeIdentifier":"t_rational_255738958999603826347141_by_1","typeString":"int_const 255738958999603826347141"},"value":"255738958999603826347141"},"src":"8284:32:9","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"8261:55:9"},{"assignments":[1393],"declarations":[{"constant":false,"id":1393,"mutability":"mutable","name":"tickLow","nodeType":"VariableDeclaration","scope":1432,"src":"8345:13:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"},"typeName":{"id":1392,"name":"int24","nodeType":"ElementaryTypeName","src":"8345:5:9","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"visibility":"internal"}],"id":1403,"initialValue":{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":1401,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":1398,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1396,"name":"log_sqrt10001","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1387,"src":"8368:13:9","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"33343032393932393536383039313332343138353936313430313030363630323437323130","id":1397,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8384:37:9","typeDescriptions":{"typeIdentifier":"t_rational_3402992956809132418596140100660247210_by_1","typeString":"int_const 3402...(29 digits omitted)...7210"},"value":"3402992956809132418596140100660247210"},"src":"8368:53:9","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":1399,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"8367:55:9","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"313238","id":1400,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8426:3:9","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"8367:62:9","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":1395,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8361:5:9","typeDescriptions":{"typeIdentifier":"t_type$_t_int24_$","typeString":"type(int24)"},"typeName":{"id":1394,"name":"int24","nodeType":"ElementaryTypeName","src":"8361:5:9","typeDescriptions":{}}},"id":1402,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8361:69:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"nodeType":"VariableDeclarationStatement","src":"8345:85:9"},{"assignments":[1405],"declarations":[{"constant":false,"id":1405,"mutability":"mutable","name":"tickHi","nodeType":"VariableDeclaration","scope":1432,"src":"8440:12:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"},"typeName":{"id":1404,"name":"int24","nodeType":"ElementaryTypeName","src":"8440:5:9","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"visibility":"internal"}],"id":1415,"initialValue":{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":1413,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":1410,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1408,"name":"log_sqrt10001","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1387,"src":"8462:13:9","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"323931333339343634373731393839363232393037303237363231313533333938303838343935","id":1409,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8478:39:9","typeDescriptions":{"typeIdentifier":"t_rational_291339464771989622907027621153398088495_by_1","typeString":"int_const 2913...(31 digits omitted)...8495"},"value":"291339464771989622907027621153398088495"},"src":"8462:55:9","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":1411,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"8461:57:9","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"313238","id":1412,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8522:3:9","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"8461:64:9","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":1407,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8455:5:9","typeDescriptions":{"typeIdentifier":"t_type$_t_int24_$","typeString":"type(int24)"},"typeName":{"id":1406,"name":"int24","nodeType":"ElementaryTypeName","src":"8455:5:9","typeDescriptions":{}}},"id":1414,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8455:71:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"nodeType":"VariableDeclarationStatement","src":"8440:86:9"},{"expression":{"id":1430,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1416,"name":"tick","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1300,"src":"8537:4:9","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"condition":{"commonType":{"typeIdentifier":"t_int24","typeString":"int24"},"id":1419,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1417,"name":"tickLow","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1393,"src":"8544:7:9","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":1418,"name":"tickHi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1405,"src":"8555:6:9","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"src":"8544:17:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"condition":{"commonType":{"typeIdentifier":"t_uint160","typeString":"uint160"},"id":1425,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":1422,"name":"tickHi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1405,"src":"8617:6:9","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int24","typeString":"int24"}],"id":1421,"name":"getSqrtRatioAtTick","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1294,"src":"8598:18:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int24_$returns$_t_uint160_$","typeString":"function (int24) pure returns (uint160)"}},"id":1423,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8598:26:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":1424,"name":"sqrtPriceX96","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1297,"src":"8628:12:9","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},"src":"8598:42:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":1427,"name":"tickLow","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1393,"src":"8684:7:9","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"id":1428,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"8598:93:9","trueExpression":{"id":1426,"name":"tickHi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1405,"src":"8659:6:9","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"id":1429,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"8544:147:9","trueExpression":{"id":1420,"name":"tickLow","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1393,"src":"8576:7:9","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"src":"8537:154:9","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"id":1431,"nodeType":"ExpressionStatement","src":"8537:154:9"}]},"documentation":{"id":1295,"nodeType":"StructuredDocumentation","src":"3948:408:9","text":"@notice Calculates the greatest tick value such that getRatioAtTick(tick) <= ratio\n @dev Throws in case sqrtPriceX96 < MIN_SQRT_RATIO, as MIN_SQRT_RATIO is the lowest value getRatioAtTick may\n ever return.\n @param sqrtPriceX96 The sqrt ratio for which to compute the tick as a Q64.96\n @return tick The greatest tick for which the ratio is less than or equal to the input ratio"},"id":1433,"implemented":true,"kind":"function","modifiers":[],"name":"getTickAtSqrtRatio","nodeType":"FunctionDefinition","parameters":{"id":1298,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1297,"mutability":"mutable","name":"sqrtPriceX96","nodeType":"VariableDeclaration","scope":1433,"src":"4389:20:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"},"typeName":{"id":1296,"name":"uint160","nodeType":"ElementaryTypeName","src":"4389:7:9","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},"visibility":"internal"}],"src":"4388:22:9"},"returnParameters":{"id":1301,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1300,"mutability":"mutable","name":"tick","nodeType":"VariableDeclaration","scope":1433,"src":"4434:10:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"},"typeName":{"id":1299,"name":"int24","nodeType":"ElementaryTypeName","src":"4434:5:9","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"visibility":"internal"}],"src":"4433:12:9"},"scope":1434,"src":"4361:4337:9","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":1435,"src":"313:8387:9"}],"src":"45:8656:9"},"id":9},"@openzeppelin/contracts/math/SafeMath.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/math/SafeMath.sol","exportedSymbols":{"SafeMath":[1789]},"id":1790,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1436,"literals":["solidity","^","0.7",".0"],"nodeType":"PragmaDirective","src":"33:23:10"},{"abstract":false,"baseContracts":[],"contractDependencies":[],"contractKind":"library","documentation":{"id":1437,"nodeType":"StructuredDocumentation","src":"58:563:10","text":" @dev Wrappers over Solidity's arithmetic operations with added overflow\n checks.\n Arithmetic operations in Solidity wrap on overflow. This can easily result\n in bugs, because programmers usually assume that an overflow raises an\n error, which is the standard behavior in high level programming languages.\n `SafeMath` restores this intuition by reverting the transaction when an\n operation overflows.\n Using this library instead of the unchecked operations eliminates an entire\n class of bugs, so it's recommended to use it always."},"fullyImplemented":true,"id":1789,"linearizedBaseContracts":[1789],"name":"SafeMath","nodeType":"ContractDefinition","nodes":[{"body":{"id":1467,"nodeType":"Block","src":"857:98:10","statements":[{"assignments":[1450],"declarations":[{"constant":false,"id":1450,"mutability":"mutable","name":"c","nodeType":"VariableDeclaration","scope":1467,"src":"867:9:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1449,"name":"uint256","nodeType":"ElementaryTypeName","src":"867:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1454,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1453,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1451,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1440,"src":"879:1:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":1452,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1442,"src":"883:1:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"879:5:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"867:17:10"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1457,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1455,"name":"c","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1450,"src":"898:1:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":1456,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1440,"src":"902:1:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"898:5:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1462,"nodeType":"IfStatement","src":"894:28:10","trueBody":{"expression":{"components":[{"hexValue":"66616c7365","id":1458,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"913:5:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"hexValue":"30","id":1459,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"920:1:10","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"id":1460,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"912:10:10","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_rational_0_by_1_$","typeString":"tuple(bool,int_const 0)"}},"functionReturnParameters":1448,"id":1461,"nodeType":"Return","src":"905:17:10"}},{"expression":{"components":[{"hexValue":"74727565","id":1463,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"940:4:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"id":1464,"name":"c","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1450,"src":"946:1:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":1465,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"939:9:10","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$","typeString":"tuple(bool,uint256)"}},"functionReturnParameters":1448,"id":1466,"nodeType":"Return","src":"932:16:10"}]},"documentation":{"id":1438,"nodeType":"StructuredDocumentation","src":"645:131:10","text":" @dev Returns the addition of two unsigned integers, with an overflow flag.\n _Available since v3.4._"},"id":1468,"implemented":true,"kind":"function","modifiers":[],"name":"tryAdd","nodeType":"FunctionDefinition","parameters":{"id":1443,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1440,"mutability":"mutable","name":"a","nodeType":"VariableDeclaration","scope":1468,"src":"797:9:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1439,"name":"uint256","nodeType":"ElementaryTypeName","src":"797:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1442,"mutability":"mutable","name":"b","nodeType":"VariableDeclaration","scope":1468,"src":"808:9:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1441,"name":"uint256","nodeType":"ElementaryTypeName","src":"808:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"796:22:10"},"returnParameters":{"id":1448,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1445,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","scope":1468,"src":"842:4:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1444,"name":"bool","nodeType":"ElementaryTypeName","src":"842:4:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":1447,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","scope":1468,"src":"848:7:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1446,"name":"uint256","nodeType":"ElementaryTypeName","src":"848:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"841:15:10"},"scope":1789,"src":"781:174:10","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":1494,"nodeType":"Block","src":"1177:75:10","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1482,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1480,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1473,"src":"1191:1:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":1481,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1471,"src":"1195:1:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1191:5:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1487,"nodeType":"IfStatement","src":"1187:28:10","trueBody":{"expression":{"components":[{"hexValue":"66616c7365","id":1483,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1206:5:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"hexValue":"30","id":1484,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1213:1:10","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"id":1485,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1205:10:10","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_rational_0_by_1_$","typeString":"tuple(bool,int_const 0)"}},"functionReturnParameters":1479,"id":1486,"nodeType":"Return","src":"1198:17:10"}},{"expression":{"components":[{"hexValue":"74727565","id":1488,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1233:4:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1491,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1489,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1471,"src":"1239:1:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":1490,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1473,"src":"1243:1:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1239:5:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":1492,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1232:13:10","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$","typeString":"tuple(bool,uint256)"}},"functionReturnParameters":1479,"id":1493,"nodeType":"Return","src":"1225:20:10"}]},"documentation":{"id":1469,"nodeType":"StructuredDocumentation","src":"961:135:10","text":" @dev Returns the substraction of two unsigned integers, with an overflow flag.\n _Available since v3.4._"},"id":1495,"implemented":true,"kind":"function","modifiers":[],"name":"trySub","nodeType":"FunctionDefinition","parameters":{"id":1474,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1471,"mutability":"mutable","name":"a","nodeType":"VariableDeclaration","scope":1495,"src":"1117:9:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1470,"name":"uint256","nodeType":"ElementaryTypeName","src":"1117:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1473,"mutability":"mutable","name":"b","nodeType":"VariableDeclaration","scope":1495,"src":"1128:9:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1472,"name":"uint256","nodeType":"ElementaryTypeName","src":"1128:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1116:22:10"},"returnParameters":{"id":1479,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1476,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","scope":1495,"src":"1162:4:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1475,"name":"bool","nodeType":"ElementaryTypeName","src":"1162:4:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":1478,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","scope":1495,"src":"1168:7:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1477,"name":"uint256","nodeType":"ElementaryTypeName","src":"1168:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1161:15:10"},"scope":1789,"src":"1101:151:10","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":1535,"nodeType":"Block","src":"1476:359:10","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1509,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1507,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1498,"src":"1708:1:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":1508,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1713:1:10","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1708:6:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1514,"nodeType":"IfStatement","src":"1704:28:10","trueBody":{"expression":{"components":[{"hexValue":"74727565","id":1510,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1724:4:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"hexValue":"30","id":1511,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1730:1:10","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"id":1512,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1723:9:10","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_rational_0_by_1_$","typeString":"tuple(bool,int_const 0)"}},"functionReturnParameters":1506,"id":1513,"nodeType":"Return","src":"1716:16:10"}},{"assignments":[1516],"declarations":[{"constant":false,"id":1516,"mutability":"mutable","name":"c","nodeType":"VariableDeclaration","scope":1535,"src":"1742:9:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1515,"name":"uint256","nodeType":"ElementaryTypeName","src":"1742:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1520,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1519,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1517,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1498,"src":"1754:1:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":1518,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1500,"src":"1758:1:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1754:5:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1742:17:10"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1525,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1523,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1521,"name":"c","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1516,"src":"1773:1:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":1522,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1498,"src":"1777:1:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1773:5:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":1524,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1500,"src":"1782:1:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1773:10:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1530,"nodeType":"IfStatement","src":"1769:33:10","trueBody":{"expression":{"components":[{"hexValue":"66616c7365","id":1526,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1793:5:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"hexValue":"30","id":1527,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1800:1:10","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"id":1528,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1792:10:10","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_rational_0_by_1_$","typeString":"tuple(bool,int_const 0)"}},"functionReturnParameters":1506,"id":1529,"nodeType":"Return","src":"1785:17:10"}},{"expression":{"components":[{"hexValue":"74727565","id":1531,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1820:4:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"id":1532,"name":"c","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1516,"src":"1826:1:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":1533,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1819:9:10","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$","typeString":"tuple(bool,uint256)"}},"functionReturnParameters":1506,"id":1534,"nodeType":"Return","src":"1812:16:10"}]},"documentation":{"id":1496,"nodeType":"StructuredDocumentation","src":"1258:137:10","text":" @dev Returns the multiplication of two unsigned integers, with an overflow flag.\n _Available since v3.4._"},"id":1536,"implemented":true,"kind":"function","modifiers":[],"name":"tryMul","nodeType":"FunctionDefinition","parameters":{"id":1501,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1498,"mutability":"mutable","name":"a","nodeType":"VariableDeclaration","scope":1536,"src":"1416:9:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1497,"name":"uint256","nodeType":"ElementaryTypeName","src":"1416:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1500,"mutability":"mutable","name":"b","nodeType":"VariableDeclaration","scope":1536,"src":"1427:9:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1499,"name":"uint256","nodeType":"ElementaryTypeName","src":"1427:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1415:22:10"},"returnParameters":{"id":1506,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1503,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","scope":1536,"src":"1461:4:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1502,"name":"bool","nodeType":"ElementaryTypeName","src":"1461:4:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":1505,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","scope":1536,"src":"1467:7:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1504,"name":"uint256","nodeType":"ElementaryTypeName","src":"1467:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1460:15:10"},"scope":1789,"src":"1400:435:10","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":1562,"nodeType":"Block","src":"2060:76:10","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1550,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1548,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1541,"src":"2074:1:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":1549,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2079:1:10","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2074:6:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1555,"nodeType":"IfStatement","src":"2070:29:10","trueBody":{"expression":{"components":[{"hexValue":"66616c7365","id":1551,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2090:5:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"hexValue":"30","id":1552,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2097:1:10","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"id":1553,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"2089:10:10","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_rational_0_by_1_$","typeString":"tuple(bool,int_const 0)"}},"functionReturnParameters":1547,"id":1554,"nodeType":"Return","src":"2082:17:10"}},{"expression":{"components":[{"hexValue":"74727565","id":1556,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2117:4:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1559,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1557,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1539,"src":"2123:1:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":1558,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1541,"src":"2127:1:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2123:5:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":1560,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2116:13:10","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$","typeString":"tuple(bool,uint256)"}},"functionReturnParameters":1547,"id":1561,"nodeType":"Return","src":"2109:20:10"}]},"documentation":{"id":1537,"nodeType":"StructuredDocumentation","src":"1841:138:10","text":" @dev Returns the division of two unsigned integers, with a division by zero flag.\n _Available since v3.4._"},"id":1563,"implemented":true,"kind":"function","modifiers":[],"name":"tryDiv","nodeType":"FunctionDefinition","parameters":{"id":1542,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1539,"mutability":"mutable","name":"a","nodeType":"VariableDeclaration","scope":1563,"src":"2000:9:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1538,"name":"uint256","nodeType":"ElementaryTypeName","src":"2000:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1541,"mutability":"mutable","name":"b","nodeType":"VariableDeclaration","scope":1563,"src":"2011:9:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1540,"name":"uint256","nodeType":"ElementaryTypeName","src":"2011:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1999:22:10"},"returnParameters":{"id":1547,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1544,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","scope":1563,"src":"2045:4:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1543,"name":"bool","nodeType":"ElementaryTypeName","src":"2045:4:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":1546,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","scope":1563,"src":"2051:7:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1545,"name":"uint256","nodeType":"ElementaryTypeName","src":"2051:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2044:15:10"},"scope":1789,"src":"1984:152:10","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":1589,"nodeType":"Block","src":"2371:76:10","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1577,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1575,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1568,"src":"2385:1:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":1576,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2390:1:10","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2385:6:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1582,"nodeType":"IfStatement","src":"2381:29:10","trueBody":{"expression":{"components":[{"hexValue":"66616c7365","id":1578,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2401:5:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"hexValue":"30","id":1579,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2408:1:10","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"id":1580,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"2400:10:10","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_rational_0_by_1_$","typeString":"tuple(bool,int_const 0)"}},"functionReturnParameters":1574,"id":1581,"nodeType":"Return","src":"2393:17:10"}},{"expression":{"components":[{"hexValue":"74727565","id":1583,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2428:4:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1586,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1584,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1566,"src":"2434:1:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"%","rightExpression":{"id":1585,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1568,"src":"2438:1:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2434:5:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":1587,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2427:13:10","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$","typeString":"tuple(bool,uint256)"}},"functionReturnParameters":1574,"id":1588,"nodeType":"Return","src":"2420:20:10"}]},"documentation":{"id":1564,"nodeType":"StructuredDocumentation","src":"2142:148:10","text":" @dev Returns the remainder of dividing two unsigned integers, with a division by zero flag.\n _Available since v3.4._"},"id":1590,"implemented":true,"kind":"function","modifiers":[],"name":"tryMod","nodeType":"FunctionDefinition","parameters":{"id":1569,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1566,"mutability":"mutable","name":"a","nodeType":"VariableDeclaration","scope":1590,"src":"2311:9:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1565,"name":"uint256","nodeType":"ElementaryTypeName","src":"2311:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1568,"mutability":"mutable","name":"b","nodeType":"VariableDeclaration","scope":1590,"src":"2322:9:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1567,"name":"uint256","nodeType":"ElementaryTypeName","src":"2322:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2310:22:10"},"returnParameters":{"id":1574,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1571,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","scope":1590,"src":"2356:4:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1570,"name":"bool","nodeType":"ElementaryTypeName","src":"2356:4:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":1573,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","scope":1590,"src":"2362:7:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1572,"name":"uint256","nodeType":"ElementaryTypeName","src":"2362:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2355:15:10"},"scope":1789,"src":"2295:152:10","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":1615,"nodeType":"Block","src":"2749:108:10","statements":[{"assignments":[1601],"declarations":[{"constant":false,"id":1601,"mutability":"mutable","name":"c","nodeType":"VariableDeclaration","scope":1615,"src":"2759:9:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1600,"name":"uint256","nodeType":"ElementaryTypeName","src":"2759:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1605,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1604,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1602,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1593,"src":"2771:1:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":1603,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1595,"src":"2775:1:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2771:5:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2759:17:10"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1609,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1607,"name":"c","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1601,"src":"2794:1:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":1608,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1593,"src":"2799:1:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2794:6:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"536166654d6174683a206164646974696f6e206f766572666c6f77","id":1610,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2802:29:10","typeDescriptions":{"typeIdentifier":"t_stringliteral_30cc447bcc13b3e22b45cef0dd9b0b514842d836dd9b6eb384e20dedfb47723a","typeString":"literal_string \"SafeMath: addition overflow\""},"value":"SafeMath: addition overflow"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_30cc447bcc13b3e22b45cef0dd9b0b514842d836dd9b6eb384e20dedfb47723a","typeString":"literal_string \"SafeMath: addition overflow\""}],"id":1606,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2786:7:10","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1611,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2786:46:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1612,"nodeType":"ExpressionStatement","src":"2786:46:10"},{"expression":{"id":1613,"name":"c","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1601,"src":"2849:1:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":1599,"id":1614,"nodeType":"Return","src":"2842:8:10"}]},"documentation":{"id":1591,"nodeType":"StructuredDocumentation","src":"2453:224:10","text":" @dev Returns the addition of two unsigned integers, reverting on\n overflow.\n Counterpart to Solidity's `+` operator.\n Requirements:\n - Addition cannot overflow."},"id":1616,"implemented":true,"kind":"function","modifiers":[],"name":"add","nodeType":"FunctionDefinition","parameters":{"id":1596,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1593,"mutability":"mutable","name":"a","nodeType":"VariableDeclaration","scope":1616,"src":"2695:9:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1592,"name":"uint256","nodeType":"ElementaryTypeName","src":"2695:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1595,"mutability":"mutable","name":"b","nodeType":"VariableDeclaration","scope":1616,"src":"2706:9:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1594,"name":"uint256","nodeType":"ElementaryTypeName","src":"2706:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2694:22:10"},"returnParameters":{"id":1599,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1598,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","scope":1616,"src":"2740:7:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1597,"name":"uint256","nodeType":"ElementaryTypeName","src":"2740:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2739:9:10"},"scope":1789,"src":"2682:175:10","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":1637,"nodeType":"Block","src":"3195:88:10","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1629,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1627,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1621,"src":"3213:1:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":1628,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1619,"src":"3218:1:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3213:6:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"536166654d6174683a207375627472616374696f6e206f766572666c6f77","id":1630,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3221:32:10","typeDescriptions":{"typeIdentifier":"t_stringliteral_50b058e9b5320e58880d88223c9801cd9eecdcf90323d5c2318bc1b6b916e862","typeString":"literal_string \"SafeMath: subtraction overflow\""},"value":"SafeMath: subtraction overflow"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_50b058e9b5320e58880d88223c9801cd9eecdcf90323d5c2318bc1b6b916e862","typeString":"literal_string \"SafeMath: subtraction overflow\""}],"id":1626,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3205:7:10","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1631,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3205:49:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1632,"nodeType":"ExpressionStatement","src":"3205:49:10"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1635,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1633,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1619,"src":"3271:1:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":1634,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1621,"src":"3275:1:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3271:5:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":1625,"id":1636,"nodeType":"Return","src":"3264:12:10"}]},"documentation":{"id":1617,"nodeType":"StructuredDocumentation","src":"2863:260:10","text":" @dev Returns the subtraction of two unsigned integers, reverting on\n overflow (when the result is negative).\n Counterpart to Solidity's `-` operator.\n Requirements:\n - Subtraction cannot overflow."},"id":1638,"implemented":true,"kind":"function","modifiers":[],"name":"sub","nodeType":"FunctionDefinition","parameters":{"id":1622,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1619,"mutability":"mutable","name":"a","nodeType":"VariableDeclaration","scope":1638,"src":"3141:9:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1618,"name":"uint256","nodeType":"ElementaryTypeName","src":"3141:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1621,"mutability":"mutable","name":"b","nodeType":"VariableDeclaration","scope":1638,"src":"3152:9:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1620,"name":"uint256","nodeType":"ElementaryTypeName","src":"3152:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3140:22:10"},"returnParameters":{"id":1625,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1624,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","scope":1638,"src":"3186:7:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1623,"name":"uint256","nodeType":"ElementaryTypeName","src":"3186:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3185:9:10"},"scope":1789,"src":"3128:155:10","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":1671,"nodeType":"Block","src":"3597:148:10","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1650,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1648,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1641,"src":"3611:1:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":1649,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3616:1:10","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3611:6:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1653,"nodeType":"IfStatement","src":"3607:20:10","trueBody":{"expression":{"hexValue":"30","id":1651,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3626:1:10","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":1647,"id":1652,"nodeType":"Return","src":"3619:8:10"}},{"assignments":[1655],"declarations":[{"constant":false,"id":1655,"mutability":"mutable","name":"c","nodeType":"VariableDeclaration","scope":1671,"src":"3637:9:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1654,"name":"uint256","nodeType":"ElementaryTypeName","src":"3637:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1659,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1658,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1656,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1641,"src":"3649:1:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":1657,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1643,"src":"3653:1:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3649:5:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3637:17:10"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1665,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1663,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1661,"name":"c","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1655,"src":"3672:1:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":1662,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1641,"src":"3676:1:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3672:5:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":1664,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1643,"src":"3681:1:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3672:10:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77","id":1666,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3684:35:10","typeDescriptions":{"typeIdentifier":"t_stringliteral_9113bb53c2876a3805b2c9242029423fc540a728243ce887ab24c82cf119fba3","typeString":"literal_string \"SafeMath: multiplication overflow\""},"value":"SafeMath: multiplication overflow"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_9113bb53c2876a3805b2c9242029423fc540a728243ce887ab24c82cf119fba3","typeString":"literal_string \"SafeMath: multiplication overflow\""}],"id":1660,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3664:7:10","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1667,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3664:56:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1668,"nodeType":"ExpressionStatement","src":"3664:56:10"},{"expression":{"id":1669,"name":"c","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1655,"src":"3737:1:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":1647,"id":1670,"nodeType":"Return","src":"3730:8:10"}]},"documentation":{"id":1639,"nodeType":"StructuredDocumentation","src":"3289:236:10","text":" @dev Returns the multiplication of two unsigned integers, reverting on\n overflow.\n Counterpart to Solidity's `*` operator.\n Requirements:\n - Multiplication cannot overflow."},"id":1672,"implemented":true,"kind":"function","modifiers":[],"name":"mul","nodeType":"FunctionDefinition","parameters":{"id":1644,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1641,"mutability":"mutable","name":"a","nodeType":"VariableDeclaration","scope":1672,"src":"3543:9:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1640,"name":"uint256","nodeType":"ElementaryTypeName","src":"3543:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1643,"mutability":"mutable","name":"b","nodeType":"VariableDeclaration","scope":1672,"src":"3554:9:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1642,"name":"uint256","nodeType":"ElementaryTypeName","src":"3554:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3542:22:10"},"returnParameters":{"id":1647,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1646,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","scope":1672,"src":"3588:7:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1645,"name":"uint256","nodeType":"ElementaryTypeName","src":"3588:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3587:9:10"},"scope":1789,"src":"3530:215:10","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":1693,"nodeType":"Block","src":"4276:83:10","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1685,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1683,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1677,"src":"4294:1:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":1684,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4298:1:10","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4294:5:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"536166654d6174683a206469766973696f6e206279207a65726f","id":1686,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4301:28:10","typeDescriptions":{"typeIdentifier":"t_stringliteral_5b7cc70dda4dc2143e5adb63bd5d1f349504f461dbdfd9bc76fac1f8ca6d019f","typeString":"literal_string \"SafeMath: division by zero\""},"value":"SafeMath: division by zero"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_5b7cc70dda4dc2143e5adb63bd5d1f349504f461dbdfd9bc76fac1f8ca6d019f","typeString":"literal_string \"SafeMath: division by zero\""}],"id":1682,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4286:7:10","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1687,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4286:44:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1688,"nodeType":"ExpressionStatement","src":"4286:44:10"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1691,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1689,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1675,"src":"4347:1:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":1690,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1677,"src":"4351:1:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4347:5:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":1681,"id":1692,"nodeType":"Return","src":"4340:12:10"}]},"documentation":{"id":1673,"nodeType":"StructuredDocumentation","src":"3751:453:10","text":" @dev Returns the integer division of two unsigned integers, reverting on\n division by zero. The result is rounded towards zero.\n Counterpart to Solidity's `/` operator. Note: this function uses a\n `revert` opcode (which leaves remaining gas untouched) while Solidity\n uses an invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero."},"id":1694,"implemented":true,"kind":"function","modifiers":[],"name":"div","nodeType":"FunctionDefinition","parameters":{"id":1678,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1675,"mutability":"mutable","name":"a","nodeType":"VariableDeclaration","scope":1694,"src":"4222:9:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1674,"name":"uint256","nodeType":"ElementaryTypeName","src":"4222:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1677,"mutability":"mutable","name":"b","nodeType":"VariableDeclaration","scope":1694,"src":"4233:9:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1676,"name":"uint256","nodeType":"ElementaryTypeName","src":"4233:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4221:22:10"},"returnParameters":{"id":1681,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1680,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","scope":1694,"src":"4267:7:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1679,"name":"uint256","nodeType":"ElementaryTypeName","src":"4267:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4266:9:10"},"scope":1789,"src":"4209:150:10","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":1715,"nodeType":"Block","src":"4879:81:10","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1707,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1705,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1699,"src":"4897:1:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":1706,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4901:1:10","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4897:5:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"536166654d6174683a206d6f64756c6f206279207a65726f","id":1708,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4904:26:10","typeDescriptions":{"typeIdentifier":"t_stringliteral_726e51f7b81fce0a68f5f214f445e275313b20b1633f08ce954ee39abf8d7832","typeString":"literal_string \"SafeMath: modulo by zero\""},"value":"SafeMath: modulo by zero"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_726e51f7b81fce0a68f5f214f445e275313b20b1633f08ce954ee39abf8d7832","typeString":"literal_string \"SafeMath: modulo by zero\""}],"id":1704,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4889:7:10","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1709,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4889:42:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1710,"nodeType":"ExpressionStatement","src":"4889:42:10"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1713,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1711,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1697,"src":"4948:1:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"%","rightExpression":{"id":1712,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1699,"src":"4952:1:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4948:5:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":1703,"id":1714,"nodeType":"Return","src":"4941:12:10"}]},"documentation":{"id":1695,"nodeType":"StructuredDocumentation","src":"4365:442:10","text":" @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\n reverting when dividing by zero.\n Counterpart to Solidity's `%` operator. This function uses a `revert`\n opcode (which leaves remaining gas untouched) while Solidity uses an\n invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero."},"id":1716,"implemented":true,"kind":"function","modifiers":[],"name":"mod","nodeType":"FunctionDefinition","parameters":{"id":1700,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1697,"mutability":"mutable","name":"a","nodeType":"VariableDeclaration","scope":1716,"src":"4825:9:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1696,"name":"uint256","nodeType":"ElementaryTypeName","src":"4825:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1699,"mutability":"mutable","name":"b","nodeType":"VariableDeclaration","scope":1716,"src":"4836:9:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1698,"name":"uint256","nodeType":"ElementaryTypeName","src":"4836:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4824:22:10"},"returnParameters":{"id":1703,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1702,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","scope":1716,"src":"4870:7:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1701,"name":"uint256","nodeType":"ElementaryTypeName","src":"4870:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4869:9:10"},"scope":1789,"src":"4812:148:10","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":1739,"nodeType":"Block","src":"5519:68:10","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1731,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1729,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1721,"src":"5537:1:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":1730,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1719,"src":"5542:1:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5537:6:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":1732,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1723,"src":"5545:12:10","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":1728,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5529:7:10","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1733,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5529:29:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1734,"nodeType":"ExpressionStatement","src":"5529:29:10"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1737,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1735,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1719,"src":"5575:1:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":1736,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1721,"src":"5579:1:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5575:5:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":1727,"id":1738,"nodeType":"Return","src":"5568:12:10"}]},"documentation":{"id":1717,"nodeType":"StructuredDocumentation","src":"4966:453:10","text":" @dev Returns the subtraction of two unsigned integers, reverting with custom message on\n overflow (when the result is negative).\n CAUTION: This function is deprecated because it requires allocating memory for the error\n message unnecessarily. For custom revert reasons use {trySub}.\n Counterpart to Solidity's `-` operator.\n Requirements:\n - Subtraction cannot overflow."},"id":1740,"implemented":true,"kind":"function","modifiers":[],"name":"sub","nodeType":"FunctionDefinition","parameters":{"id":1724,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1719,"mutability":"mutable","name":"a","nodeType":"VariableDeclaration","scope":1740,"src":"5437:9:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1718,"name":"uint256","nodeType":"ElementaryTypeName","src":"5437:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1721,"mutability":"mutable","name":"b","nodeType":"VariableDeclaration","scope":1740,"src":"5448:9:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1720,"name":"uint256","nodeType":"ElementaryTypeName","src":"5448:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1723,"mutability":"mutable","name":"errorMessage","nodeType":"VariableDeclaration","scope":1740,"src":"5459:26:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1722,"name":"string","nodeType":"ElementaryTypeName","src":"5459:6:10","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"5436:50:10"},"returnParameters":{"id":1727,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1726,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","scope":1740,"src":"5510:7:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1725,"name":"uint256","nodeType":"ElementaryTypeName","src":"5510:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5509:9:10"},"scope":1789,"src":"5424:163:10","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":1763,"nodeType":"Block","src":"6339:67:10","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1755,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1753,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1745,"src":"6357:1:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":1754,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6361:1:10","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6357:5:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":1756,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1747,"src":"6364:12:10","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":1752,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"6349:7:10","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1757,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6349:28:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1758,"nodeType":"ExpressionStatement","src":"6349:28:10"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1761,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1759,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1743,"src":"6394:1:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":1760,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1745,"src":"6398:1:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6394:5:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":1751,"id":1762,"nodeType":"Return","src":"6387:12:10"}]},"documentation":{"id":1741,"nodeType":"StructuredDocumentation","src":"5593:646:10","text":" @dev Returns the integer division of two unsigned integers, reverting with custom message on\n division by zero. The result is rounded towards zero.\n CAUTION: This function is deprecated because it requires allocating memory for the error\n message unnecessarily. For custom revert reasons use {tryDiv}.\n Counterpart to Solidity's `/` operator. Note: this function uses a\n `revert` opcode (which leaves remaining gas untouched) while Solidity\n uses an invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero."},"id":1764,"implemented":true,"kind":"function","modifiers":[],"name":"div","nodeType":"FunctionDefinition","parameters":{"id":1748,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1743,"mutability":"mutable","name":"a","nodeType":"VariableDeclaration","scope":1764,"src":"6257:9:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1742,"name":"uint256","nodeType":"ElementaryTypeName","src":"6257:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1745,"mutability":"mutable","name":"b","nodeType":"VariableDeclaration","scope":1764,"src":"6268:9:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1744,"name":"uint256","nodeType":"ElementaryTypeName","src":"6268:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1747,"mutability":"mutable","name":"errorMessage","nodeType":"VariableDeclaration","scope":1764,"src":"6279:26:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1746,"name":"string","nodeType":"ElementaryTypeName","src":"6279:6:10","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"6256:50:10"},"returnParameters":{"id":1751,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1750,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","scope":1764,"src":"6330:7:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1749,"name":"uint256","nodeType":"ElementaryTypeName","src":"6330:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6329:9:10"},"scope":1789,"src":"6244:162:10","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":1787,"nodeType":"Block","src":"7147:67:10","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1779,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1777,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1769,"src":"7165:1:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":1778,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7169:1:10","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"7165:5:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":1780,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1771,"src":"7172:12:10","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":1776,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"7157:7:10","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1781,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7157:28:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1782,"nodeType":"ExpressionStatement","src":"7157:28:10"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1785,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1783,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1767,"src":"7202:1:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"%","rightExpression":{"id":1784,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1769,"src":"7206:1:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7202:5:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":1775,"id":1786,"nodeType":"Return","src":"7195:12:10"}]},"documentation":{"id":1765,"nodeType":"StructuredDocumentation","src":"6412:635:10","text":" @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\n reverting with custom message when dividing by zero.\n CAUTION: This function is deprecated because it requires allocating memory for the error\n message unnecessarily. For custom revert reasons use {tryMod}.\n Counterpart to Solidity's `%` operator. This function uses a `revert`\n opcode (which leaves remaining gas untouched) while Solidity uses an\n invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero."},"id":1788,"implemented":true,"kind":"function","modifiers":[],"name":"mod","nodeType":"FunctionDefinition","parameters":{"id":1772,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1767,"mutability":"mutable","name":"a","nodeType":"VariableDeclaration","scope":1788,"src":"7065:9:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1766,"name":"uint256","nodeType":"ElementaryTypeName","src":"7065:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1769,"mutability":"mutable","name":"b","nodeType":"VariableDeclaration","scope":1788,"src":"7076:9:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1768,"name":"uint256","nodeType":"ElementaryTypeName","src":"7076:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1771,"mutability":"mutable","name":"errorMessage","nodeType":"VariableDeclaration","scope":1788,"src":"7087:26:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1770,"name":"string","nodeType":"ElementaryTypeName","src":"7087:6:10","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"7064:50:10"},"returnParameters":{"id":1775,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1774,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","scope":1788,"src":"7138:7:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1773,"name":"uint256","nodeType":"ElementaryTypeName","src":"7138:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7137:9:10"},"scope":1789,"src":"7052:162:10","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":1790,"src":"622:6594:10"}],"src":"33:7184:10"},"id":10},"@openzeppelin/contracts/math/SignedSafeMath.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/math/SignedSafeMath.sol","exportedSymbols":{"SignedSafeMath":[1968]},"id":1969,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1791,"literals":["solidity","^","0.7",".0"],"nodeType":"PragmaDirective","src":"33:23:11"},{"abstract":false,"baseContracts":[],"contractDependencies":[],"contractKind":"library","documentation":{"id":1792,"nodeType":"StructuredDocumentation","src":"58:104:11","text":" @title SignedSafeMath\n @dev Signed math operations with safety checks that revert on error."},"fullyImplemented":true,"id":1968,"linearizedBaseContracts":[1968],"name":"SignedSafeMath","nodeType":"ContractDefinition","nodes":[{"constant":true,"id":1798,"mutability":"constant","name":"_INT256_MIN","nodeType":"VariableDeclaration","scope":1968,"src":"192:45:11","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":1793,"name":"int256","nodeType":"ElementaryTypeName","src":"192:6:11","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"value":{"commonType":{"typeIdentifier":"t_rational_minus_57896044618658097711785492504343953926634992332820282019728792003956564819968_by_1","typeString":"int_const -578...(70 digits omitted)...9968"},"id":1797,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"id":1795,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"-","prefix":true,"src":"230:2:11","subExpression":{"hexValue":"32","id":1794,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"231:1:11","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"typeDescriptions":{"typeIdentifier":"t_rational_minus_2_by_1","typeString":"int_const -2"}},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"323535","id":1796,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"234:3:11","typeDescriptions":{"typeIdentifier":"t_rational_255_by_1","typeString":"int_const 255"},"value":"255"},"src":"230:7:11","typeDescriptions":{"typeIdentifier":"t_rational_minus_57896044618658097711785492504343953926634992332820282019728792003956564819968_by_1","typeString":"int_const -578...(70 digits omitted)...9968"}},"visibility":"private"},{"body":{"id":1846,"nodeType":"Block","src":"547:490:11","statements":[{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":1810,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1808,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1801,"src":"779:1:11","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":1809,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"784:1:11","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"779:6:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1814,"nodeType":"IfStatement","src":"775:45:11","trueBody":{"id":1813,"nodeType":"Block","src":"787:33:11","statements":[{"expression":{"hexValue":"30","id":1811,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"808:1:11","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":1807,"id":1812,"nodeType":"Return","src":"801:8:11"}]}},{"expression":{"arguments":[{"id":1825,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"838:30:11","subExpression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":1823,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":1819,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1816,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1801,"src":"840:1:11","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":1818,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"-","prefix":true,"src":"845:2:11","subExpression":{"hexValue":"31","id":1817,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"846:1:11","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"typeDescriptions":{"typeIdentifier":"t_rational_minus_1_by_1","typeString":"int_const -1"}},"src":"840:7:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":1822,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1820,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1803,"src":"851:1:11","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":1821,"name":"_INT256_MIN","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1798,"src":"856:11:11","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"851:16:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"840:27:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":1824,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"839:29:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5369676e6564536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77","id":1826,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"870:41:11","typeDescriptions":{"typeIdentifier":"t_stringliteral_a608fbdf6cc4ee9c43b141f63e234f4edb26cfb78aba3140cfd865641cb2c954","typeString":"literal_string \"SignedSafeMath: multiplication overflow\""},"value":"SignedSafeMath: multiplication overflow"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_a608fbdf6cc4ee9c43b141f63e234f4edb26cfb78aba3140cfd865641cb2c954","typeString":"literal_string \"SignedSafeMath: multiplication overflow\""}],"id":1815,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"830:7:11","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1827,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"830:82:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1828,"nodeType":"ExpressionStatement","src":"830:82:11"},{"assignments":[1830],"declarations":[{"constant":false,"id":1830,"mutability":"mutable","name":"c","nodeType":"VariableDeclaration","scope":1846,"src":"923:8:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":1829,"name":"int256","nodeType":"ElementaryTypeName","src":"923:6:11","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":1834,"initialValue":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":1833,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1831,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1801,"src":"934:1:11","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":1832,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1803,"src":"938:1:11","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"934:5:11","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"923:16:11"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":1840,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":1838,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1836,"name":"c","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1830,"src":"957:1:11","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":1837,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1801,"src":"961:1:11","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"957:5:11","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":1839,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1803,"src":"966:1:11","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"957:10:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5369676e6564536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77","id":1841,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"969:41:11","typeDescriptions":{"typeIdentifier":"t_stringliteral_a608fbdf6cc4ee9c43b141f63e234f4edb26cfb78aba3140cfd865641cb2c954","typeString":"literal_string \"SignedSafeMath: multiplication overflow\""},"value":"SignedSafeMath: multiplication overflow"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_a608fbdf6cc4ee9c43b141f63e234f4edb26cfb78aba3140cfd865641cb2c954","typeString":"literal_string \"SignedSafeMath: multiplication overflow\""}],"id":1835,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"949:7:11","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1842,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"949:62:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1843,"nodeType":"ExpressionStatement","src":"949:62:11"},{"expression":{"id":1844,"name":"c","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1830,"src":"1029:1:11","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"functionReturnParameters":1807,"id":1845,"nodeType":"Return","src":"1022:8:11"}]},"documentation":{"id":1799,"nodeType":"StructuredDocumentation","src":"244:234:11","text":" @dev Returns the multiplication of two signed integers, reverting on\n overflow.\n Counterpart to Solidity's `*` operator.\n Requirements:\n - Multiplication cannot overflow."},"id":1847,"implemented":true,"kind":"function","modifiers":[],"name":"mul","nodeType":"FunctionDefinition","parameters":{"id":1804,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1801,"mutability":"mutable","name":"a","nodeType":"VariableDeclaration","scope":1847,"src":"496:8:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":1800,"name":"int256","nodeType":"ElementaryTypeName","src":"496:6:11","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":1803,"mutability":"mutable","name":"b","nodeType":"VariableDeclaration","scope":1847,"src":"506:8:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":1802,"name":"int256","nodeType":"ElementaryTypeName","src":"506:6:11","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"495:20:11"},"returnParameters":{"id":1807,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1806,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","scope":1847,"src":"539:6:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":1805,"name":"int256","nodeType":"ElementaryTypeName","src":"539:6:11","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"538:8:11"},"scope":1968,"src":"483:554:11","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":1886,"nodeType":"Block","src":"1561:200:11","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":1860,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1858,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1852,"src":"1579:1:11","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":1859,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1584:1:11","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1579:6:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5369676e6564536166654d6174683a206469766973696f6e206279207a65726f","id":1861,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1587:34:11","typeDescriptions":{"typeIdentifier":"t_stringliteral_ebc4d0068c2e029285c70894a725032247a74fcdc822ba305ea67dbddf7750bd","typeString":"literal_string \"SignedSafeMath: division by zero\""},"value":"SignedSafeMath: division by zero"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_ebc4d0068c2e029285c70894a725032247a74fcdc822ba305ea67dbddf7750bd","typeString":"literal_string \"SignedSafeMath: division by zero\""}],"id":1857,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1571:7:11","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1862,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1571:51:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1863,"nodeType":"ExpressionStatement","src":"1571:51:11"},{"expression":{"arguments":[{"id":1874,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"1640:30:11","subExpression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":1872,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":1868,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1865,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1852,"src":"1642:1:11","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":1867,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"-","prefix":true,"src":"1647:2:11","subExpression":{"hexValue":"31","id":1866,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1648:1:11","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"typeDescriptions":{"typeIdentifier":"t_rational_minus_1_by_1","typeString":"int_const -1"}},"src":"1642:7:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":1871,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1869,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1850,"src":"1653:1:11","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":1870,"name":"_INT256_MIN","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1798,"src":"1658:11:11","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"1653:16:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1642:27:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":1873,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1641:29:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5369676e6564536166654d6174683a206469766973696f6e206f766572666c6f77","id":1875,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1672:35:11","typeDescriptions":{"typeIdentifier":"t_stringliteral_7bc0f3df013376568eb9f7cb8999198097051f79bdb4d07d83447767f5224b81","typeString":"literal_string \"SignedSafeMath: division overflow\""},"value":"SignedSafeMath: division overflow"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_7bc0f3df013376568eb9f7cb8999198097051f79bdb4d07d83447767f5224b81","typeString":"literal_string \"SignedSafeMath: division overflow\""}],"id":1864,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1632:7:11","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1876,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1632:76:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1877,"nodeType":"ExpressionStatement","src":"1632:76:11"},{"assignments":[1879],"declarations":[{"constant":false,"id":1879,"mutability":"mutable","name":"c","nodeType":"VariableDeclaration","scope":1886,"src":"1719:8:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":1878,"name":"int256","nodeType":"ElementaryTypeName","src":"1719:6:11","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":1883,"initialValue":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":1882,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1880,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1850,"src":"1730:1:11","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":1881,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1852,"src":"1734:1:11","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"1730:5:11","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"1719:16:11"},{"expression":{"id":1884,"name":"c","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1879,"src":"1753:1:11","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"functionReturnParameters":1856,"id":1885,"nodeType":"Return","src":"1746:8:11"}]},"documentation":{"id":1848,"nodeType":"StructuredDocumentation","src":"1043:449:11","text":" @dev Returns the integer division of two signed integers. Reverts on\n division by zero. The result is rounded towards zero.\n Counterpart to Solidity's `/` operator. Note: this function uses a\n `revert` opcode (which leaves remaining gas untouched) while Solidity\n uses an invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero."},"id":1887,"implemented":true,"kind":"function","modifiers":[],"name":"div","nodeType":"FunctionDefinition","parameters":{"id":1853,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1850,"mutability":"mutable","name":"a","nodeType":"VariableDeclaration","scope":1887,"src":"1510:8:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":1849,"name":"int256","nodeType":"ElementaryTypeName","src":"1510:6:11","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":1852,"mutability":"mutable","name":"b","nodeType":"VariableDeclaration","scope":1887,"src":"1520:8:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":1851,"name":"int256","nodeType":"ElementaryTypeName","src":"1520:6:11","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"1509:20:11"},"returnParameters":{"id":1856,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1855,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","scope":1887,"src":"1553:6:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":1854,"name":"int256","nodeType":"ElementaryTypeName","src":"1553:6:11","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"1552:8:11"},"scope":1968,"src":"1497:264:11","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":1926,"nodeType":"Block","src":"2064:149:11","statements":[{"assignments":[1898],"declarations":[{"constant":false,"id":1898,"mutability":"mutable","name":"c","nodeType":"VariableDeclaration","scope":1926,"src":"2074:8:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":1897,"name":"int256","nodeType":"ElementaryTypeName","src":"2074:6:11","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":1902,"initialValue":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":1901,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1899,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1890,"src":"2085:1:11","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":1900,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1892,"src":"2089:1:11","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"2085:5:11","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"2074:16:11"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":1920,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":1910,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":1906,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1904,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1892,"src":"2109:1:11","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"hexValue":"30","id":1905,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2114:1:11","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2109:6:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":1909,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1907,"name":"c","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1898,"src":"2119:1:11","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":1908,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1890,"src":"2124:1:11","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"2119:6:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2109:16:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":1911,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2108:18:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":1918,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":1914,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1912,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1892,"src":"2131:1:11","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"30","id":1913,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2135:1:11","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2131:5:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":1917,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1915,"name":"c","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1898,"src":"2140:1:11","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":1916,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1890,"src":"2144:1:11","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"2140:5:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2131:14:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":1919,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2130:16:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2108:38:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5369676e6564536166654d6174683a207375627472616374696f6e206f766572666c6f77","id":1921,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2148:38:11","typeDescriptions":{"typeIdentifier":"t_stringliteral_dfe37ab0612d67daeef366062296f3ebcaf7e2cc3eb392bf66a6cb5a7bed3bcd","typeString":"literal_string \"SignedSafeMath: subtraction overflow\""},"value":"SignedSafeMath: subtraction overflow"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_dfe37ab0612d67daeef366062296f3ebcaf7e2cc3eb392bf66a6cb5a7bed3bcd","typeString":"literal_string \"SignedSafeMath: subtraction overflow\""}],"id":1903,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2100:7:11","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1922,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2100:87:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1923,"nodeType":"ExpressionStatement","src":"2100:87:11"},{"expression":{"id":1924,"name":"c","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1898,"src":"2205:1:11","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"functionReturnParameters":1896,"id":1925,"nodeType":"Return","src":"2198:8:11"}]},"documentation":{"id":1888,"nodeType":"StructuredDocumentation","src":"1767:228:11","text":" @dev Returns the subtraction of two signed integers, reverting on\n overflow.\n Counterpart to Solidity's `-` operator.\n Requirements:\n - Subtraction cannot overflow."},"id":1927,"implemented":true,"kind":"function","modifiers":[],"name":"sub","nodeType":"FunctionDefinition","parameters":{"id":1893,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1890,"mutability":"mutable","name":"a","nodeType":"VariableDeclaration","scope":1927,"src":"2013:8:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":1889,"name":"int256","nodeType":"ElementaryTypeName","src":"2013:6:11","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":1892,"mutability":"mutable","name":"b","nodeType":"VariableDeclaration","scope":1927,"src":"2023:8:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":1891,"name":"int256","nodeType":"ElementaryTypeName","src":"2023:6:11","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"2012:20:11"},"returnParameters":{"id":1896,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1895,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","scope":1927,"src":"2056:6:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":1894,"name":"int256","nodeType":"ElementaryTypeName","src":"2056:6:11","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"2055:8:11"},"scope":1968,"src":"2000:213:11","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":1966,"nodeType":"Block","src":"2510:146:11","statements":[{"assignments":[1938],"declarations":[{"constant":false,"id":1938,"mutability":"mutable","name":"c","nodeType":"VariableDeclaration","scope":1966,"src":"2520:8:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":1937,"name":"int256","nodeType":"ElementaryTypeName","src":"2520:6:11","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":1942,"initialValue":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":1941,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1939,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1930,"src":"2531:1:11","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":1940,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1932,"src":"2535:1:11","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"2531:5:11","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"2520:16:11"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":1960,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":1950,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":1946,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1944,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1932,"src":"2555:1:11","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"hexValue":"30","id":1945,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2560:1:11","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2555:6:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":1949,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1947,"name":"c","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1938,"src":"2565:1:11","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":1948,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1930,"src":"2570:1:11","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"2565:6:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2555:16:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":1951,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2554:18:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":1958,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":1954,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1952,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1932,"src":"2577:1:11","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"30","id":1953,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2581:1:11","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2577:5:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":1957,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1955,"name":"c","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1938,"src":"2586:1:11","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":1956,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1930,"src":"2590:1:11","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"2586:5:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2577:14:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":1959,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2576:16:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2554:38:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5369676e6564536166654d6174683a206164646974696f6e206f766572666c6f77","id":1961,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2594:35:11","typeDescriptions":{"typeIdentifier":"t_stringliteral_47c8d4a3974eee4fcf9925cffefc088ed6ac723b55fb65cf621edb1b7db7b8eb","typeString":"literal_string \"SignedSafeMath: addition overflow\""},"value":"SignedSafeMath: addition overflow"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_47c8d4a3974eee4fcf9925cffefc088ed6ac723b55fb65cf621edb1b7db7b8eb","typeString":"literal_string \"SignedSafeMath: addition overflow\""}],"id":1943,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2546:7:11","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1962,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2546:84:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1963,"nodeType":"ExpressionStatement","src":"2546:84:11"},{"expression":{"id":1964,"name":"c","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1938,"src":"2648:1:11","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"functionReturnParameters":1936,"id":1965,"nodeType":"Return","src":"2641:8:11"}]},"documentation":{"id":1928,"nodeType":"StructuredDocumentation","src":"2219:222:11","text":" @dev Returns the addition of two signed integers, reverting on\n overflow.\n Counterpart to Solidity's `+` operator.\n Requirements:\n - Addition cannot overflow."},"id":1967,"implemented":true,"kind":"function","modifiers":[],"name":"add","nodeType":"FunctionDefinition","parameters":{"id":1933,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1930,"mutability":"mutable","name":"a","nodeType":"VariableDeclaration","scope":1967,"src":"2459:8:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":1929,"name":"int256","nodeType":"ElementaryTypeName","src":"2459:6:11","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":1932,"mutability":"mutable","name":"b","nodeType":"VariableDeclaration","scope":1967,"src":"2469:8:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":1931,"name":"int256","nodeType":"ElementaryTypeName","src":"2469:6:11","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"2458:20:11"},"returnParameters":{"id":1936,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1935,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","scope":1967,"src":"2502:6:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":1934,"name":"int256","nodeType":"ElementaryTypeName","src":"2502:6:11","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"2501:8:11"},"scope":1968,"src":"2446:210:11","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":1969,"src":"163:2495:11"}],"src":"33:2626:11"},"id":11},"@openzeppelin/contracts/utils/Strings.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/Strings.sol","exportedSymbols":{"Strings":[2055]},"id":2056,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1970,"literals":["solidity","^","0.7",".0"],"nodeType":"PragmaDirective","src":"33:23:12"},{"abstract":false,"baseContracts":[],"contractDependencies":[],"contractKind":"library","documentation":{"id":1971,"nodeType":"StructuredDocumentation","src":"58:34:12","text":" @dev String operations."},"fullyImplemented":true,"id":2055,"linearizedBaseContracts":[2055],"name":"Strings","nodeType":"ContractDefinition","nodes":[{"body":{"id":2053,"nodeType":"Block","src":"273:654:12","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1981,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1979,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1974,"src":"475:5:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":1980,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"484:1:12","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"475:10:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1985,"nodeType":"IfStatement","src":"471:51:12","trueBody":{"id":1984,"nodeType":"Block","src":"487:35:12","statements":[{"expression":{"hexValue":"30","id":1982,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"508:3:12","typeDescriptions":{"typeIdentifier":"t_stringliteral_044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d","typeString":"literal_string \"0\""},"value":"0"},"functionReturnParameters":1978,"id":1983,"nodeType":"Return","src":"501:10:12"}]}},{"assignments":[1987],"declarations":[{"constant":false,"id":1987,"mutability":"mutable","name":"temp","nodeType":"VariableDeclaration","scope":2053,"src":"531:12:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1986,"name":"uint256","nodeType":"ElementaryTypeName","src":"531:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1989,"initialValue":{"id":1988,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1974,"src":"546:5:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"531:20:12"},{"assignments":[1991],"declarations":[{"constant":false,"id":1991,"mutability":"mutable","name":"digits","nodeType":"VariableDeclaration","scope":2053,"src":"561:14:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1990,"name":"uint256","nodeType":"ElementaryTypeName","src":"561:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1992,"nodeType":"VariableDeclarationStatement","src":"561:14:12"},{"body":{"id":2003,"nodeType":"Block","src":"603:57:12","statements":[{"expression":{"id":1997,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"617:8:12","subExpression":{"id":1996,"name":"digits","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1991,"src":"617:6:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1998,"nodeType":"ExpressionStatement","src":"617:8:12"},{"expression":{"id":2001,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1999,"name":"temp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1987,"src":"639:4:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"hexValue":"3130","id":2000,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"647:2:12","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"src":"639:10:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2002,"nodeType":"ExpressionStatement","src":"639:10:12"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1995,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1993,"name":"temp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1987,"src":"592:4:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":1994,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"600:1:12","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"592:9:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2004,"nodeType":"WhileStatement","src":"585:75:12"},{"assignments":[2006],"declarations":[{"constant":false,"id":2006,"mutability":"mutable","name":"buffer","nodeType":"VariableDeclaration","scope":2053,"src":"669:19:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2005,"name":"bytes","nodeType":"ElementaryTypeName","src":"669:5:12","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":2011,"initialValue":{"arguments":[{"id":2009,"name":"digits","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1991,"src":"701:6:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2008,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"691:9:12","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":2007,"name":"bytes","nodeType":"ElementaryTypeName","src":"695:5:12","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":2010,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"691:17:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"669:39:12"},{"assignments":[2013],"declarations":[{"constant":false,"id":2013,"mutability":"mutable","name":"index","nodeType":"VariableDeclaration","scope":2053,"src":"718:13:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2012,"name":"uint256","nodeType":"ElementaryTypeName","src":"718:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2017,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2016,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2014,"name":"digits","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1991,"src":"734:6:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":2015,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"743:1:12","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"734:10:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"718:26:12"},{"expression":{"id":2020,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2018,"name":"temp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1987,"src":"754:4:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":2019,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1974,"src":"761:5:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"754:12:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2021,"nodeType":"ExpressionStatement","src":"754:12:12"},{"body":{"id":2046,"nodeType":"Block","src":"794:96:12","statements":[{"expression":{"id":2040,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":2025,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2006,"src":"808:6:12","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":2028,"indexExpression":{"id":2027,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"--","prefix":false,"src":"815:7:12","subExpression":{"id":2026,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2013,"src":"815:5:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"808:15:12","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2037,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3438","id":2033,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"839:2:12","typeDescriptions":{"typeIdentifier":"t_rational_48_by_1","typeString":"int_const 48"},"value":"48"},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2036,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2034,"name":"temp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1987,"src":"844:4:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"%","rightExpression":{"hexValue":"3130","id":2035,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"851:2:12","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"src":"844:9:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"839:14:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2032,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"833:5:12","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":2031,"name":"uint8","nodeType":"ElementaryTypeName","src":"833:5:12","typeDescriptions":{}}},"id":2038,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"833:21:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":2030,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"826:6:12","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes1_$","typeString":"type(bytes1)"},"typeName":{"id":2029,"name":"bytes1","nodeType":"ElementaryTypeName","src":"826:6:12","typeDescriptions":{}}},"id":2039,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"826:29:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"src":"808:47:12","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"id":2041,"nodeType":"ExpressionStatement","src":"808:47:12"},{"expression":{"id":2044,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2042,"name":"temp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1987,"src":"869:4:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"hexValue":"3130","id":2043,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"877:2:12","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"src":"869:10:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2045,"nodeType":"ExpressionStatement","src":"869:10:12"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2024,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2022,"name":"temp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1987,"src":"783:4:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":2023,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"791:1:12","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"783:9:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2047,"nodeType":"WhileStatement","src":"776:114:12"},{"expression":{"arguments":[{"id":2050,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2006,"src":"913:6:12","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":2049,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"906:6:12","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":2048,"name":"string","nodeType":"ElementaryTypeName","src":"906:6:12","typeDescriptions":{}}},"id":2051,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"906:14:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":1978,"id":2052,"nodeType":"Return","src":"899:21:12"}]},"documentation":{"id":1972,"nodeType":"StructuredDocumentation","src":"115:82:12","text":" @dev Converts a `uint256` to its ASCII `string` representation."},"id":2054,"implemented":true,"kind":"function","modifiers":[],"name":"toString","nodeType":"FunctionDefinition","parameters":{"id":1975,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1974,"mutability":"mutable","name":"value","nodeType":"VariableDeclaration","scope":2054,"src":"220:13:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1973,"name":"uint256","nodeType":"ElementaryTypeName","src":"220:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"219:15:12"},"returnParameters":{"id":1978,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1977,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","scope":2054,"src":"258:13:12","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1976,"name":"string","nodeType":"ElementaryTypeName","src":"258:6:12","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"257:15:12"},"scope":2055,"src":"202:725:12","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":2056,"src":"93:836:12"}],"src":"33:897:12"},"id":12},"base64-sol/base64.sol":{"ast":{"absolutePath":"base64-sol/base64.sol","exportedSymbols":{"Base64":[2105]},"id":2106,"license":"MIT","nodeType":"SourceUnit","nodes":[{"abstract":false,"baseContracts":[],"contractDependencies":[],"contractKind":"library","documentation":{"id":2057,"nodeType":"StructuredDocumentation","src":"33:133:13","text":"@title Base64\n @author Brecht Devos - <brecht@loopring.org>\n @notice Provides a function for encoding some bytes in base64"},"fullyImplemented":true,"id":2105,"linearizedBaseContracts":[2105],"name":"Base64","nodeType":"ContractDefinition","nodes":[{"constant":true,"id":2060,"mutability":"constant","name":"TABLE","nodeType":"VariableDeclaration","scope":2105,"src":"187:99:13","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":2058,"name":"string","nodeType":"ElementaryTypeName","src":"187:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"4142434445464748494a4b4c4d4e4f505152535455565758595a6162636465666768696a6b6c6d6e6f707172737475767778797a303132333435363738392b2f","id":2059,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"220:66:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_84d8a590de33e00cbdc16e1f28c3506f5ec15c599fab9a6a4bcd575cc2f110ce","typeString":"literal_string \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\""},"value":"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"},"visibility":"internal"},{"body":{"id":2103,"nodeType":"Block","src":"366:1912:13","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2070,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":2067,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2062,"src":"380:4:13","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":2068,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"380:11:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":2069,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"395:1:13","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"380:16:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2073,"nodeType":"IfStatement","src":"376:31:13","trueBody":{"expression":{"hexValue":"","id":2071,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"405:2:13","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""},"functionReturnParameters":2066,"id":2072,"nodeType":"Return","src":"398:9:13"}},{"assignments":[2075],"declarations":[{"constant":false,"id":2075,"mutability":"mutable","name":"table","nodeType":"VariableDeclaration","scope":2103,"src":"464:19:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":2074,"name":"string","nodeType":"ElementaryTypeName","src":"464:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"id":2077,"initialValue":{"id":2076,"name":"TABLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2060,"src":"486:5:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"VariableDeclarationStatement","src":"464:27:13"},{"assignments":[2079],"declarations":[{"constant":false,"id":2079,"mutability":"mutable","name":"encodedLen","nodeType":"VariableDeclaration","scope":2103,"src":"540:18:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2078,"name":"uint256","nodeType":"ElementaryTypeName","src":"540:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2090,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2089,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"34","id":2080,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"561:1:13","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2087,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2084,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":2081,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2062,"src":"567:4:13","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":2082,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"567:11:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"32","id":2083,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"581:1:13","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"567:15:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":2085,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"566:17:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"hexValue":"33","id":2086,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"586:1:13","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"src":"566:21:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":2088,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"565:23:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"561:27:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"540:48:13"},{"assignments":[2092],"declarations":[{"constant":false,"id":2092,"mutability":"mutable","name":"result","nodeType":"VariableDeclaration","scope":2103,"src":"668:20:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":2091,"name":"string","nodeType":"ElementaryTypeName","src":"668:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"id":2099,"initialValue":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2097,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2095,"name":"encodedLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2079,"src":"702:10:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"3332","id":2096,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"715:2:13","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"702:15:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2094,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"691:10:13","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256) pure returns (string memory)"},"typeName":{"id":2093,"name":"string","nodeType":"ElementaryTypeName","src":"695:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}}},"id":2098,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"691:27:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"VariableDeclarationStatement","src":"668:50:13"},{"AST":{"nodeType":"YulBlock","src":"738:1502:13","statements":[{"expression":{"arguments":[{"name":"result","nodeType":"YulIdentifier","src":"803:6:13"},{"name":"encodedLen","nodeType":"YulIdentifier","src":"811:10:13"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"796:6:13"},"nodeType":"YulFunctionCall","src":"796:26:13"},"nodeType":"YulExpressionStatement","src":"796:26:13"},{"nodeType":"YulVariableDeclaration","src":"888:29:13","value":{"arguments":[{"name":"table","nodeType":"YulIdentifier","src":"908:5:13"},{"kind":"number","nodeType":"YulLiteral","src":"915:1:13","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"904:3:13"},"nodeType":"YulFunctionCall","src":"904:13:13"},"variables":[{"name":"tablePtr","nodeType":"YulTypedName","src":"892:8:13","type":""}]},{"nodeType":"YulVariableDeclaration","src":"968:19:13","value":{"name":"data","nodeType":"YulIdentifier","src":"983:4:13"},"variables":[{"name":"dataPtr","nodeType":"YulTypedName","src":"972:7:13","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1000:39:13","value":{"arguments":[{"name":"dataPtr","nodeType":"YulIdentifier","src":"1018:7:13"},{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"1033:4:13"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1027:5:13"},"nodeType":"YulFunctionCall","src":"1027:11:13"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1014:3:13"},"nodeType":"YulFunctionCall","src":"1014:25:13"},"variables":[{"name":"endPtr","nodeType":"YulTypedName","src":"1004:6:13","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1109:32:13","value":{"arguments":[{"name":"result","nodeType":"YulIdentifier","src":"1130:6:13"},{"kind":"number","nodeType":"YulLiteral","src":"1138:2:13","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1126:3:13"},"nodeType":"YulFunctionCall","src":"1126:15:13"},"variables":[{"name":"resultPtr","nodeType":"YulTypedName","src":"1113:9:13","type":""}]},{"body":{"nodeType":"YulBlock","src":"1262:752:13","statements":[{"nodeType":"YulAssignment","src":"1279:26:13","value":{"arguments":[{"name":"dataPtr","nodeType":"YulIdentifier","src":"1294:7:13"},{"kind":"number","nodeType":"YulLiteral","src":"1303:1:13","type":"","value":"3"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1290:3:13"},"nodeType":"YulFunctionCall","src":"1290:15:13"},"variableNames":[{"name":"dataPtr","nodeType":"YulIdentifier","src":"1279:7:13"}]},{"nodeType":"YulVariableDeclaration","src":"1368:27:13","value":{"arguments":[{"name":"dataPtr","nodeType":"YulIdentifier","src":"1387:7:13"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1381:5:13"},"nodeType":"YulFunctionCall","src":"1381:14:13"},"variables":[{"name":"input","nodeType":"YulTypedName","src":"1372:5:13","type":""}]},{"expression":{"arguments":[{"name":"resultPtr","nodeType":"YulIdentifier","src":"1471:9:13"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1486:3:13","type":"","value":"248"},{"arguments":[{"arguments":[{"name":"tablePtr","nodeType":"YulIdentifier","src":"1501:8:13"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1519:2:13","type":"","value":"18"},{"name":"input","nodeType":"YulIdentifier","src":"1523:5:13"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"1515:3:13"},"nodeType":"YulFunctionCall","src":"1515:14:13"},{"kind":"number","nodeType":"YulLiteral","src":"1531:4:13","type":"","value":"0x3F"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1511:3:13"},"nodeType":"YulFunctionCall","src":"1511:25:13"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1497:3:13"},"nodeType":"YulFunctionCall","src":"1497:40:13"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1491:5:13"},"nodeType":"YulFunctionCall","src":"1491:47:13"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1482:3:13"},"nodeType":"YulFunctionCall","src":"1482:57:13"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1464:6:13"},"nodeType":"YulFunctionCall","src":"1464:76:13"},"nodeType":"YulExpressionStatement","src":"1464:76:13"},{"nodeType":"YulAssignment","src":"1556:30:13","value":{"arguments":[{"name":"resultPtr","nodeType":"YulIdentifier","src":"1573:9:13"},{"kind":"number","nodeType":"YulLiteral","src":"1584:1:13","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1569:3:13"},"nodeType":"YulFunctionCall","src":"1569:17:13"},"variableNames":[{"name":"resultPtr","nodeType":"YulIdentifier","src":"1556:9:13"}]},{"expression":{"arguments":[{"name":"resultPtr","nodeType":"YulIdentifier","src":"1609:9:13"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1624:3:13","type":"","value":"248"},{"arguments":[{"arguments":[{"name":"tablePtr","nodeType":"YulIdentifier","src":"1639:8:13"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1657:2:13","type":"","value":"12"},{"name":"input","nodeType":"YulIdentifier","src":"1661:5:13"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"1653:3:13"},"nodeType":"YulFunctionCall","src":"1653:14:13"},{"kind":"number","nodeType":"YulLiteral","src":"1669:4:13","type":"","value":"0x3F"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1649:3:13"},"nodeType":"YulFunctionCall","src":"1649:25:13"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1635:3:13"},"nodeType":"YulFunctionCall","src":"1635:40:13"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1629:5:13"},"nodeType":"YulFunctionCall","src":"1629:47:13"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1620:3:13"},"nodeType":"YulFunctionCall","src":"1620:57:13"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1602:6:13"},"nodeType":"YulFunctionCall","src":"1602:76:13"},"nodeType":"YulExpressionStatement","src":"1602:76:13"},{"nodeType":"YulAssignment","src":"1694:30:13","value":{"arguments":[{"name":"resultPtr","nodeType":"YulIdentifier","src":"1711:9:13"},{"kind":"number","nodeType":"YulLiteral","src":"1722:1:13","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1707:3:13"},"nodeType":"YulFunctionCall","src":"1707:17:13"},"variableNames":[{"name":"resultPtr","nodeType":"YulIdentifier","src":"1694:9:13"}]},{"expression":{"arguments":[{"name":"resultPtr","nodeType":"YulIdentifier","src":"1747:9:13"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1762:3:13","type":"","value":"248"},{"arguments":[{"arguments":[{"name":"tablePtr","nodeType":"YulIdentifier","src":"1777:8:13"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1796:1:13","type":"","value":"6"},{"name":"input","nodeType":"YulIdentifier","src":"1799:5:13"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"1791:3:13"},"nodeType":"YulFunctionCall","src":"1791:14:13"},{"kind":"number","nodeType":"YulLiteral","src":"1807:4:13","type":"","value":"0x3F"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1787:3:13"},"nodeType":"YulFunctionCall","src":"1787:25:13"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1773:3:13"},"nodeType":"YulFunctionCall","src":"1773:40:13"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1767:5:13"},"nodeType":"YulFunctionCall","src":"1767:47:13"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1758:3:13"},"nodeType":"YulFunctionCall","src":"1758:57:13"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1740:6:13"},"nodeType":"YulFunctionCall","src":"1740:76:13"},"nodeType":"YulExpressionStatement","src":"1740:76:13"},{"nodeType":"YulAssignment","src":"1832:30:13","value":{"arguments":[{"name":"resultPtr","nodeType":"YulIdentifier","src":"1849:9:13"},{"kind":"number","nodeType":"YulLiteral","src":"1860:1:13","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1845:3:13"},"nodeType":"YulFunctionCall","src":"1845:17:13"},"variableNames":[{"name":"resultPtr","nodeType":"YulIdentifier","src":"1832:9:13"}]},{"expression":{"arguments":[{"name":"resultPtr","nodeType":"YulIdentifier","src":"1885:9:13"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1900:3:13","type":"","value":"248"},{"arguments":[{"arguments":[{"name":"tablePtr","nodeType":"YulIdentifier","src":"1915:8:13"},{"arguments":[{"name":"input","nodeType":"YulIdentifier","src":"1937:5:13"},{"kind":"number","nodeType":"YulLiteral","src":"1945:4:13","type":"","value":"0x3F"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1925:3:13"},"nodeType":"YulFunctionCall","src":"1925:25:13"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1911:3:13"},"nodeType":"YulFunctionCall","src":"1911:40:13"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1905:5:13"},"nodeType":"YulFunctionCall","src":"1905:47:13"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1896:3:13"},"nodeType":"YulFunctionCall","src":"1896:57:13"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1878:6:13"},"nodeType":"YulFunctionCall","src":"1878:76:13"},"nodeType":"YulExpressionStatement","src":"1878:76:13"},{"nodeType":"YulAssignment","src":"1970:30:13","value":{"arguments":[{"name":"resultPtr","nodeType":"YulIdentifier","src":"1987:9:13"},{"kind":"number","nodeType":"YulLiteral","src":"1998:1:13","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1983:3:13"},"nodeType":"YulFunctionCall","src":"1983:17:13"},"variableNames":[{"name":"resultPtr","nodeType":"YulIdentifier","src":"1970:9:13"}]}]},"condition":{"arguments":[{"name":"dataPtr","nodeType":"YulIdentifier","src":"1230:7:13"},{"name":"endPtr","nodeType":"YulIdentifier","src":"1239:6:13"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"1227:2:13"},"nodeType":"YulFunctionCall","src":"1227:19:13"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"1247:2:13","statements":[]},"pre":{"nodeType":"YulBlock","src":"1224:2:13","statements":[]},"src":"1220:794:13"},{"cases":[{"body":{"nodeType":"YulBlock","src":"2118:47:13","statements":[{"expression":{"arguments":[{"arguments":[{"name":"resultPtr","nodeType":"YulIdentifier","src":"2131:9:13"},{"kind":"number","nodeType":"YulLiteral","src":"2142:1:13","type":"","value":"2"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2127:3:13"},"nodeType":"YulFunctionCall","src":"2127:17:13"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2150:3:13","type":"","value":"240"},{"kind":"number","nodeType":"YulLiteral","src":"2155:6:13","type":"","value":"0x3d3d"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2146:3:13"},"nodeType":"YulFunctionCall","src":"2146:16:13"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2120:6:13"},"nodeType":"YulFunctionCall","src":"2120:43:13"},"nodeType":"YulExpressionStatement","src":"2120:43:13"}]},"nodeType":"YulCase","src":"2111:54:13","value":{"kind":"number","nodeType":"YulLiteral","src":"2116:1:13","type":"","value":"1"}},{"body":{"nodeType":"YulBlock","src":"2185:45:13","statements":[{"expression":{"arguments":[{"arguments":[{"name":"resultPtr","nodeType":"YulIdentifier","src":"2198:9:13"},{"kind":"number","nodeType":"YulLiteral","src":"2209:1:13","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2194:3:13"},"nodeType":"YulFunctionCall","src":"2194:17:13"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2217:3:13","type":"","value":"248"},{"kind":"number","nodeType":"YulLiteral","src":"2222:4:13","type":"","value":"0x3d"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2213:3:13"},"nodeType":"YulFunctionCall","src":"2213:14:13"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2187:6:13"},"nodeType":"YulFunctionCall","src":"2187:41:13"},"nodeType":"YulExpressionStatement","src":"2187:41:13"}]},"nodeType":"YulCase","src":"2178:52:13","value":{"kind":"number","nodeType":"YulLiteral","src":"2183:1:13","type":"","value":"2"}}],"expression":{"arguments":[{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"2089:4:13"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2083:5:13"},"nodeType":"YulFunctionCall","src":"2083:11:13"},{"kind":"number","nodeType":"YulLiteral","src":"2096:1:13","type":"","value":"3"}],"functionName":{"name":"mod","nodeType":"YulIdentifier","src":"2079:3:13"},"nodeType":"YulFunctionCall","src":"2079:19:13"},"nodeType":"YulSwitch","src":"2072:158:13"}]},"evmVersion":"istanbul","externalReferences":[{"declaration":2062,"isOffset":false,"isSlot":false,"src":"1033:4:13","valueSize":1},{"declaration":2062,"isOffset":false,"isSlot":false,"src":"2089:4:13","valueSize":1},{"declaration":2062,"isOffset":false,"isSlot":false,"src":"983:4:13","valueSize":1},{"declaration":2079,"isOffset":false,"isSlot":false,"src":"811:10:13","valueSize":1},{"declaration":2092,"isOffset":false,"isSlot":false,"src":"1130:6:13","valueSize":1},{"declaration":2092,"isOffset":false,"isSlot":false,"src":"803:6:13","valueSize":1},{"declaration":2075,"isOffset":false,"isSlot":false,"src":"908:5:13","valueSize":1}],"id":2100,"nodeType":"InlineAssembly","src":"729:1511:13"},{"expression":{"id":2101,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2092,"src":"2265:6:13","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":2066,"id":2102,"nodeType":"Return","src":"2258:13:13"}]},"id":2104,"implemented":true,"kind":"function","modifiers":[],"name":"encode","nodeType":"FunctionDefinition","parameters":{"id":2063,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2062,"mutability":"mutable","name":"data","nodeType":"VariableDeclaration","scope":2104,"src":"309:17:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2061,"name":"bytes","nodeType":"ElementaryTypeName","src":"309:5:13","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"308:19:13"},"returnParameters":{"id":2066,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2065,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","scope":2104,"src":"351:13:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":2064,"name":"string","nodeType":"ElementaryTypeName","src":"351:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"350:15:13"},"scope":2105,"src":"293:1985:13","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":2106,"src":"166:2114:13"}],"src":"166:2115:13"},"id":13},"contracts/libraries/HexStrings.sol":{"ast":{"absolutePath":"contracts/libraries/HexStrings.sol","exportedSymbols":{"HexStrings":[2240]},"id":2241,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":2107,"literals":["solidity","=","0.7",".6"],"nodeType":"PragmaDirective","src":"32:23:14"},{"abstract":false,"baseContracts":[],"contractDependencies":[],"contractKind":"library","fullyImplemented":true,"id":2240,"linearizedBaseContracts":[2240],"name":"HexStrings","nodeType":"ContractDefinition","nodes":[{"constant":true,"id":2110,"mutability":"constant","name":"ALPHABET","nodeType":"VariableDeclaration","scope":2240,"src":"82:55:14","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"},"typeName":{"id":2108,"name":"bytes16","nodeType":"ElementaryTypeName","src":"82:7:14","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},"value":{"hexValue":"30313233343536373839616263646566","id":2109,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"119:18:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_cb29997ed99ead0db59ce4d12b7d3723198c827273e5796737c926d78019c39f","typeString":"literal_string \"0123456789abcdef\""},"value":"0123456789abcdef"},"visibility":"internal"},{"body":{"id":2185,"nodeType":"Block","src":"527:347:14","statements":[{"assignments":[2121],"declarations":[{"constant":false,"id":2121,"mutability":"mutable","name":"buffer","nodeType":"VariableDeclaration","scope":2185,"src":"537:19:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2120,"name":"bytes","nodeType":"ElementaryTypeName","src":"537:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":2130,"initialValue":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2128,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2126,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":2124,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"569:1:14","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":2125,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2115,"src":"573:6:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"569:10:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"32","id":2127,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"582:1:14","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"569:14:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2123,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"559:9:14","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":2122,"name":"bytes","nodeType":"ElementaryTypeName","src":"563:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":2129,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"559:25:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"537:47:14"},{"expression":{"id":2135,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":2131,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2121,"src":"594:6:14","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":2133,"indexExpression":{"hexValue":"30","id":2132,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"601:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"594:9:14","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":2134,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"606:3:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d","typeString":"literal_string \"0\""},"value":"0"},"src":"594:15:14","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"id":2136,"nodeType":"ExpressionStatement","src":"594:15:14"},{"expression":{"id":2141,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":2137,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2121,"src":"619:6:14","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":2139,"indexExpression":{"hexValue":"31","id":2138,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"626:1:14","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"619:9:14","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"78","id":2140,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"631:3:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_7521d1cadbcfa91eec65aa16715b94ffc1c9654ba57ea2ef1a2127bca1127a83","typeString":"literal_string \"x\""},"value":"x"},"src":"619:15:14","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"id":2142,"nodeType":"ExpressionStatement","src":"619:15:14"},{"body":{"id":2171,"nodeType":"Block","src":"689:83:14","statements":[{"expression":{"id":2165,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":2157,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2121,"src":"703:6:14","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":2159,"indexExpression":{"id":2158,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2144,"src":"710:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"703:9:14","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":2160,"name":"ALPHABET","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2110,"src":"715:8:14","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},"id":2164,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2163,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2161,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2113,"src":"724:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"hexValue":"307866","id":2162,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"732:3:14","typeDescriptions":{"typeIdentifier":"t_rational_15_by_1","typeString":"int_const 15"},"value":"0xf"},"src":"724:11:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"715:21:14","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"src":"703:33:14","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"id":2166,"nodeType":"ExpressionStatement","src":"703:33:14"},{"expression":{"id":2169,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2167,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2113,"src":"750:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"34","id":2168,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"760:1:14","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"750:11:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2170,"nodeType":"ExpressionStatement","src":"750:11:14"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2153,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2151,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2144,"src":"677:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"31","id":2152,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"681:1:14","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"677:5:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2172,"initializationExpression":{"assignments":[2144],"declarations":[{"constant":false,"id":2144,"mutability":"mutable","name":"i","nodeType":"VariableDeclaration","scope":2172,"src":"649:9:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2143,"name":"uint256","nodeType":"ElementaryTypeName","src":"649:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2150,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2149,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2147,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":2145,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"661:1:14","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":2146,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2115,"src":"665:6:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"661:10:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":2148,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"674:1:14","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"661:14:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"649:26:14"},"loopExpression":{"expression":{"id":2155,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"--","prefix":true,"src":"684:3:14","subExpression":{"id":2154,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2144,"src":"686:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2156,"nodeType":"ExpressionStatement","src":"684:3:14"},"nodeType":"ForStatement","src":"644:128:14"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2176,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2174,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2113,"src":"789:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":2175,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"798:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"789:10:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"537472696e67733a20686578206c656e67746820696e73756666696369656e74","id":2177,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"801:34:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2","typeString":"literal_string \"Strings: hex length insufficient\""},"value":"Strings: hex length insufficient"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_04fc88320d7c9f639317c75102c103ff0044d3075a5c627e24e76e5bbb2733c2","typeString":"literal_string \"Strings: hex length insufficient\""}],"id":2173,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"781:7:14","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2178,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"781:55:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2179,"nodeType":"ExpressionStatement","src":"781:55:14"},{"expression":{"arguments":[{"id":2182,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2121,"src":"860:6:14","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":2181,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"853:6:14","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":2180,"name":"string","nodeType":"ElementaryTypeName","src":"853:6:14","typeDescriptions":{}}},"id":2183,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"853:14:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":2119,"id":2184,"nodeType":"Return","src":"846:21:14"}]},"documentation":{"id":2111,"nodeType":"StructuredDocumentation","src":"144:288:14","text":"@notice Converts a `uint256` to its ASCII `string` hexadecimal representation with fixed length.\n @dev Credit to Open Zeppelin under MIT license https://github.com/OpenZeppelin/openzeppelin-contracts/blob/243adff49ce1700e0ecb99fe522fb16cff1d1ddc/contracts/utils/Strings.sol#L55"},"id":2186,"implemented":true,"kind":"function","modifiers":[],"name":"toHexString","nodeType":"FunctionDefinition","parameters":{"id":2116,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2113,"mutability":"mutable","name":"value","nodeType":"VariableDeclaration","scope":2186,"src":"458:13:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2112,"name":"uint256","nodeType":"ElementaryTypeName","src":"458:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2115,"mutability":"mutable","name":"length","nodeType":"VariableDeclaration","scope":2186,"src":"473:14:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2114,"name":"uint256","nodeType":"ElementaryTypeName","src":"473:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"457:31:14"},"returnParameters":{"id":2119,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2118,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","scope":2186,"src":"512:13:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":2117,"name":"string","nodeType":"ElementaryTypeName","src":"512:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"511:15:14"},"scope":2240,"src":"437:437:14","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2238,"nodeType":"Block","src":"978:231:14","statements":[{"assignments":[2196],"declarations":[{"constant":false,"id":2196,"mutability":"mutable","name":"buffer","nodeType":"VariableDeclaration","scope":2238,"src":"988:19:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2195,"name":"bytes","nodeType":"ElementaryTypeName","src":"988:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":2203,"initialValue":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2201,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":2199,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1020:1:14","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":2200,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2190,"src":"1024:6:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1020:10:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2198,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"1010:9:14","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":2197,"name":"bytes","nodeType":"ElementaryTypeName","src":"1014:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":2202,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1010:21:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"988:43:14"},{"body":{"id":2231,"nodeType":"Block","src":"1085:87:14","statements":[{"expression":{"id":2225,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":2215,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2196,"src":"1099:6:14","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":2219,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2218,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2216,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2205,"src":"1106:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":2217,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1110:1:14","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1106:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1099:13:14","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":2220,"name":"ALPHABET","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2110,"src":"1115:8:14","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},"id":2224,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2223,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2221,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2188,"src":"1124:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"hexValue":"307866","id":2222,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1132:3:14","typeDescriptions":{"typeIdentifier":"t_rational_15_by_1","typeString":"int_const 15"},"value":"0xf"},"src":"1124:11:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1115:21:14","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"src":"1099:37:14","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"id":2226,"nodeType":"ExpressionStatement","src":"1099:37:14"},{"expression":{"id":2229,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2227,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2188,"src":"1150:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"34","id":2228,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1160:1:14","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"1150:11:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2230,"nodeType":"ExpressionStatement","src":"1150:11:14"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2211,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2209,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2205,"src":"1073:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":2210,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1077:1:14","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1073:5:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2232,"initializationExpression":{"assignments":[2205],"declarations":[{"constant":false,"id":2205,"mutability":"mutable","name":"i","nodeType":"VariableDeclaration","scope":2232,"src":"1046:9:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2204,"name":"uint256","nodeType":"ElementaryTypeName","src":"1046:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2208,"initialValue":{"expression":{"id":2206,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2196,"src":"1058:6:14","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":2207,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"1058:13:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1046:25:14"},"loopExpression":{"expression":{"id":2213,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"--","prefix":false,"src":"1080:3:14","subExpression":{"id":2212,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2205,"src":"1080:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2214,"nodeType":"ExpressionStatement","src":"1080:3:14"},"nodeType":"ForStatement","src":"1041:131:14"},{"expression":{"arguments":[{"id":2235,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2196,"src":"1195:6:14","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":2234,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1188:6:14","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":2233,"name":"string","nodeType":"ElementaryTypeName","src":"1188:6:14","typeDescriptions":{}}},"id":2236,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1188:14:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":2194,"id":2237,"nodeType":"Return","src":"1181:21:14"}]},"id":2239,"implemented":true,"kind":"function","modifiers":[],"name":"toHexStringNoPrefix","nodeType":"FunctionDefinition","parameters":{"id":2191,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2188,"mutability":"mutable","name":"value","nodeType":"VariableDeclaration","scope":2239,"src":"909:13:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2187,"name":"uint256","nodeType":"ElementaryTypeName","src":"909:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2190,"mutability":"mutable","name":"length","nodeType":"VariableDeclaration","scope":2239,"src":"924:14:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2189,"name":"uint256","nodeType":"ElementaryTypeName","src":"924:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"908:31:14"},"returnParameters":{"id":2194,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2193,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","scope":2239,"src":"963:13:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":2192,"name":"string","nodeType":"ElementaryTypeName","src":"963:6:14","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"962:15:14"},"scope":2240,"src":"880:329:14","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":2241,"src":"57:1154:14"}],"src":"32:1180:14"},"id":14},"contracts/libraries/NFTDescriptor.sol":{"ast":{"absolutePath":"contracts/libraries/NFTDescriptor.sol","exportedSymbols":{"Base64":[2105],"BitMath":[726],"FullMath":[899],"HexStrings":[2240],"IAstraCLPool":[27],"IAstraCLPoolActions":[123],"IAstraCLPoolDerivedState":[154],"IAstraCLPoolEvents":[273],"IAstraCLPoolImmutables":[313],"IAstraCLPoolOwnerActions":[339],"IAstraCLPoolState":[447],"NFTDescriptor":[3947],"NFTSVG":[4885],"SafeMath":[1789],"SignedSafeMath":[1968],"Strings":[2055],"TickMath":[1434]},"id":3948,"license":"GPL-2.0-or-later","nodeType":"SourceUnit","nodes":[{"id":2242,"literals":["solidity",">=","0.7",".0"],"nodeType":"PragmaDirective","src":"45:24:15"},{"id":2243,"literals":["abicoder","v2"],"nodeType":"PragmaDirective","src":"70:19:15"},{"absolutePath":"@airdao/astra-cl-core/contracts/interfaces/IAstraCLPool.sol","file":"@airdao/astra-cl-core/contracts/interfaces/IAstraCLPool.sol","id":2244,"nodeType":"ImportDirective","scope":3948,"sourceUnit":28,"src":"144:69:15","symbolAliases":[],"unitAlias":""},{"absolutePath":"@airdao/astra-cl-core/contracts/libraries/TickMath.sol","file":"@airdao/astra-cl-core/contracts/libraries/TickMath.sol","id":2245,"nodeType":"ImportDirective","scope":3948,"sourceUnit":1435,"src":"267:64:15","symbolAliases":[],"unitAlias":""},{"absolutePath":"@airdao/astra-cl-core/contracts/libraries/BitMath.sol","file":"@airdao/astra-cl-core/contracts/libraries/BitMath.sol","id":2246,"nodeType":"ImportDirective","scope":3948,"sourceUnit":727,"src":"385:63:15","symbolAliases":[],"unitAlias":""},{"absolutePath":"@airdao/astra-cl-core/contracts/libraries/FullMath.sol","file":"@airdao/astra-cl-core/contracts/libraries/FullMath.sol","id":2247,"nodeType":"ImportDirective","scope":3948,"sourceUnit":900,"src":"502:64:15","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/Strings.sol","file":"@openzeppelin/contracts/utils/Strings.sol","id":2248,"nodeType":"ImportDirective","scope":3948,"sourceUnit":2056,"src":"567:51:15","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/math/SafeMath.sol","file":"@openzeppelin/contracts/math/SafeMath.sol","id":2249,"nodeType":"ImportDirective","scope":3948,"sourceUnit":1790,"src":"619:51:15","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/math/SignedSafeMath.sol","file":"@openzeppelin/contracts/math/SignedSafeMath.sol","id":2250,"nodeType":"ImportDirective","scope":3948,"sourceUnit":1969,"src":"671:57:15","symbolAliases":[],"unitAlias":""},{"absolutePath":"base64-sol/base64.sol","file":"base64-sol/base64.sol","id":2251,"nodeType":"ImportDirective","scope":3948,"sourceUnit":2106,"src":"729:31:15","symbolAliases":[],"unitAlias":""},{"absolutePath":"contracts/libraries/HexStrings.sol","file":"./HexStrings.sol","id":2252,"nodeType":"ImportDirective","scope":3948,"sourceUnit":2241,"src":"761:26:15","symbolAliases":[],"unitAlias":""},{"absolutePath":"contracts/libraries/NFTSVG.sol","file":"./NFTSVG.sol","id":2253,"nodeType":"ImportDirective","scope":3948,"sourceUnit":4886,"src":"788:22:15","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[],"contractDependencies":[],"contractKind":"library","fullyImplemented":true,"id":3947,"linearizedBaseContracts":[3947],"name":"NFTDescriptor","nodeType":"ContractDefinition","nodes":[{"id":2256,"libraryName":{"id":2254,"name":"TickMath","nodeType":"UserDefinedTypeName","referencedDeclaration":1434,"src":"846:8:15","typeDescriptions":{"typeIdentifier":"t_contract$_TickMath_$1434","typeString":"library TickMath"}},"nodeType":"UsingForDirective","src":"840:25:15","typeName":{"id":2255,"name":"int24","nodeType":"ElementaryTypeName","src":"859:5:15","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}}},{"id":2259,"libraryName":{"id":2257,"name":"Strings","nodeType":"UserDefinedTypeName","referencedDeclaration":2055,"src":"876:7:15","typeDescriptions":{"typeIdentifier":"t_contract$_Strings_$2055","typeString":"library Strings"}},"nodeType":"UsingForDirective","src":"870:26:15","typeName":{"id":2258,"name":"uint256","nodeType":"ElementaryTypeName","src":"888:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},{"id":2262,"libraryName":{"id":2260,"name":"SafeMath","nodeType":"UserDefinedTypeName","referencedDeclaration":1789,"src":"907:8:15","typeDescriptions":{"typeIdentifier":"t_contract$_SafeMath_$1789","typeString":"library SafeMath"}},"nodeType":"UsingForDirective","src":"901:27:15","typeName":{"id":2261,"name":"uint256","nodeType":"ElementaryTypeName","src":"920:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},{"id":2265,"libraryName":{"id":2263,"name":"SafeMath","nodeType":"UserDefinedTypeName","referencedDeclaration":1789,"src":"939:8:15","typeDescriptions":{"typeIdentifier":"t_contract$_SafeMath_$1789","typeString":"library SafeMath"}},"nodeType":"UsingForDirective","src":"933:27:15","typeName":{"id":2264,"name":"uint160","nodeType":"ElementaryTypeName","src":"952:7:15","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}},{"id":2268,"libraryName":{"id":2266,"name":"SafeMath","nodeType":"UserDefinedTypeName","referencedDeclaration":1789,"src":"971:8:15","typeDescriptions":{"typeIdentifier":"t_contract$_SafeMath_$1789","typeString":"library SafeMath"}},"nodeType":"UsingForDirective","src":"965:25:15","typeName":{"id":2267,"name":"uint8","nodeType":"ElementaryTypeName","src":"984:5:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}},{"id":2271,"libraryName":{"id":2269,"name":"SignedSafeMath","nodeType":"UserDefinedTypeName","referencedDeclaration":1968,"src":"1001:14:15","typeDescriptions":{"typeIdentifier":"t_contract$_SignedSafeMath_$1968","typeString":"library SignedSafeMath"}},"nodeType":"UsingForDirective","src":"995:32:15","typeName":{"id":2270,"name":"int256","nodeType":"ElementaryTypeName","src":"1020:6:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}},{"id":2274,"libraryName":{"id":2272,"name":"HexStrings","nodeType":"UserDefinedTypeName","referencedDeclaration":2240,"src":"1038:10:15","typeDescriptions":{"typeIdentifier":"t_contract$_HexStrings_$2240","typeString":"library HexStrings"}},"nodeType":"UsingForDirective","src":"1032:29:15","typeName":{"id":2273,"name":"uint256","nodeType":"ElementaryTypeName","src":"1053:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},{"constant":true,"id":2277,"mutability":"constant","name":"sqrt10X128","nodeType":"VariableDeclaration","scope":3947,"src":"1067:70:15","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2275,"name":"uint256","nodeType":"ElementaryTypeName","src":"1067:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"31303736303637333237303633333033323036383738313035373537323634343932363235323236","id":2276,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1097:40:15","typeDescriptions":{"typeIdentifier":"t_rational_1076067327063303206878105757264492625226_by_1","typeString":"int_const 1076...(32 digits omitted)...5226"},"value":"1076067327063303206878105757264492625226"},"visibility":"internal"},{"canonicalName":"NFTDescriptor.ConstructTokenURIParams","id":2306,"members":[{"constant":false,"id":2279,"mutability":"mutable","name":"tokenId","nodeType":"VariableDeclaration","scope":2306,"src":"1185:15:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2278,"name":"uint256","nodeType":"ElementaryTypeName","src":"1185:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2281,"mutability":"mutable","name":"quoteTokenAddress","nodeType":"VariableDeclaration","scope":2306,"src":"1210:25:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2280,"name":"address","nodeType":"ElementaryTypeName","src":"1210:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2283,"mutability":"mutable","name":"baseTokenAddress","nodeType":"VariableDeclaration","scope":2306,"src":"1245:24:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2282,"name":"address","nodeType":"ElementaryTypeName","src":"1245:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2285,"mutability":"mutable","name":"quoteTokenSymbol","nodeType":"VariableDeclaration","scope":2306,"src":"1279:23:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":2284,"name":"string","nodeType":"ElementaryTypeName","src":"1279:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":2287,"mutability":"mutable","name":"baseTokenSymbol","nodeType":"VariableDeclaration","scope":2306,"src":"1312:22:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":2286,"name":"string","nodeType":"ElementaryTypeName","src":"1312:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":2289,"mutability":"mutable","name":"quoteTokenDecimals","nodeType":"VariableDeclaration","scope":2306,"src":"1344:24:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":2288,"name":"uint8","nodeType":"ElementaryTypeName","src":"1344:5:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":2291,"mutability":"mutable","name":"baseTokenDecimals","nodeType":"VariableDeclaration","scope":2306,"src":"1378:23:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":2290,"name":"uint8","nodeType":"ElementaryTypeName","src":"1378:5:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":2293,"mutability":"mutable","name":"flipRatio","nodeType":"VariableDeclaration","scope":2306,"src":"1411:14:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2292,"name":"bool","nodeType":"ElementaryTypeName","src":"1411:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":2295,"mutability":"mutable","name":"tickLower","nodeType":"VariableDeclaration","scope":2306,"src":"1435:15:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"},"typeName":{"id":2294,"name":"int24","nodeType":"ElementaryTypeName","src":"1435:5:15","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"visibility":"internal"},{"constant":false,"id":2297,"mutability":"mutable","name":"tickUpper","nodeType":"VariableDeclaration","scope":2306,"src":"1460:15:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"},"typeName":{"id":2296,"name":"int24","nodeType":"ElementaryTypeName","src":"1460:5:15","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"visibility":"internal"},{"constant":false,"id":2299,"mutability":"mutable","name":"tickCurrent","nodeType":"VariableDeclaration","scope":2306,"src":"1485:17:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"},"typeName":{"id":2298,"name":"int24","nodeType":"ElementaryTypeName","src":"1485:5:15","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"visibility":"internal"},{"constant":false,"id":2301,"mutability":"mutable","name":"tickSpacing","nodeType":"VariableDeclaration","scope":2306,"src":"1512:17:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"},"typeName":{"id":2300,"name":"int24","nodeType":"ElementaryTypeName","src":"1512:5:15","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"visibility":"internal"},{"constant":false,"id":2303,"mutability":"mutable","name":"fee","nodeType":"VariableDeclaration","scope":2306,"src":"1539:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"},"typeName":{"id":2302,"name":"uint24","nodeType":"ElementaryTypeName","src":"1539:6:15","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},"visibility":"internal"},{"constant":false,"id":2305,"mutability":"mutable","name":"poolAddress","nodeType":"VariableDeclaration","scope":2306,"src":"1559:19:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2304,"name":"address","nodeType":"ElementaryTypeName","src":"1559:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"name":"ConstructTokenURIParams","nodeType":"StructDefinition","scope":3947,"src":"1144:441:15","visibility":"public"},{"body":{"id":2403,"nodeType":"Block","src":"1693:1496:15","statements":[{"assignments":[2314],"declarations":[{"constant":false,"id":2314,"mutability":"mutable","name":"name","nodeType":"VariableDeclaration","scope":2403,"src":"1703:18:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":2313,"name":"string","nodeType":"ElementaryTypeName","src":"1703:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"id":2322,"initialValue":{"arguments":[{"id":2316,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2308,"src":"1737:6:15","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructTokenURIParams_$2306_memory_ptr","typeString":"struct NFTDescriptor.ConstructTokenURIParams memory"}},{"arguments":[{"expression":{"id":2318,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2308,"src":"1764:6:15","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructTokenURIParams_$2306_memory_ptr","typeString":"struct NFTDescriptor.ConstructTokenURIParams memory"}},"id":2319,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"fee","nodeType":"MemberAccess","referencedDeclaration":2303,"src":"1764:10:15","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint24","typeString":"uint24"}],"id":2317,"name":"feeToPercentString","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3614,"src":"1745:18:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint24_$returns$_t_string_memory_ptr_$","typeString":"function (uint24) pure returns (string memory)"}},"id":2320,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1745:30:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ConstructTokenURIParams_$2306_memory_ptr","typeString":"struct NFTDescriptor.ConstructTokenURIParams memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":2315,"name":"generateName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2639,"src":"1724:12:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_ConstructTokenURIParams_$2306_memory_ptr_$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (struct NFTDescriptor.ConstructTokenURIParams memory,string memory) pure returns (string memory)"}},"id":2321,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1724:52:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"VariableDeclarationStatement","src":"1703:73:15"},{"assignments":[2324],"declarations":[{"constant":false,"id":2324,"mutability":"mutable","name":"descriptionPartOne","nodeType":"VariableDeclaration","scope":2403,"src":"1786:32:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":2323,"name":"string","nodeType":"ElementaryTypeName","src":"1786:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"id":2339,"initialValue":{"arguments":[{"arguments":[{"expression":{"id":2327,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2308,"src":"1874:6:15","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructTokenURIParams_$2306_memory_ptr","typeString":"struct NFTDescriptor.ConstructTokenURIParams memory"}},"id":2328,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"quoteTokenSymbol","nodeType":"MemberAccess","referencedDeclaration":2285,"src":"1874:23:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":2326,"name":"escapeQuotes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2508,"src":"1861:12:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (string memory) pure returns (string memory)"}},"id":2329,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1861:37:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"arguments":[{"expression":{"id":2331,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2308,"src":"1925:6:15","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructTokenURIParams_$2306_memory_ptr","typeString":"struct NFTDescriptor.ConstructTokenURIParams memory"}},"id":2332,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"baseTokenSymbol","nodeType":"MemberAccess","referencedDeclaration":2287,"src":"1925:22:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":2330,"name":"escapeQuotes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2508,"src":"1912:12:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (string memory) pure returns (string memory)"}},"id":2333,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1912:36:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"arguments":[{"expression":{"id":2335,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2308,"src":"1978:6:15","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructTokenURIParams_$2306_memory_ptr","typeString":"struct NFTDescriptor.ConstructTokenURIParams memory"}},"id":2336,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"poolAddress","nodeType":"MemberAccess","referencedDeclaration":2305,"src":"1978:18:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":2334,"name":"addressToString","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3631,"src":"1962:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_string_memory_ptr_$","typeString":"function (address) pure returns (string memory)"}},"id":2337,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1962:35:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":2325,"name":"generateDescriptionPartOne","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2537,"src":"1821:26:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (string memory,string memory,string memory) pure returns (string memory)"}},"id":2338,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1821:186:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"VariableDeclarationStatement","src":"1786:221:15"},{"assignments":[2341],"declarations":[{"constant":false,"id":2341,"mutability":"mutable","name":"descriptionPartTwo","nodeType":"VariableDeclaration","scope":2403,"src":"2017:32:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":2340,"name":"string","nodeType":"ElementaryTypeName","src":"2017:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"id":2364,"initialValue":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":2343,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2308,"src":"2092:6:15","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructTokenURIParams_$2306_memory_ptr","typeString":"struct NFTDescriptor.ConstructTokenURIParams memory"}},"id":2344,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"tokenId","nodeType":"MemberAccess","referencedDeclaration":2279,"src":"2092:14:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2345,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"toString","nodeType":"MemberAccess","referencedDeclaration":2054,"src":"2092:23:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_string_memory_ptr_$bound_to$_t_uint256_$","typeString":"function (uint256) pure returns (string memory)"}},"id":2346,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2092:25:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"arguments":[{"expression":{"id":2348,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2308,"src":"2144:6:15","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructTokenURIParams_$2306_memory_ptr","typeString":"struct NFTDescriptor.ConstructTokenURIParams memory"}},"id":2349,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"baseTokenSymbol","nodeType":"MemberAccess","referencedDeclaration":2287,"src":"2144:22:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":2347,"name":"escapeQuotes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2508,"src":"2131:12:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (string memory) pure returns (string memory)"}},"id":2350,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2131:36:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"arguments":[{"expression":{"id":2352,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2308,"src":"2197:6:15","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructTokenURIParams_$2306_memory_ptr","typeString":"struct NFTDescriptor.ConstructTokenURIParams memory"}},"id":2353,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"quoteTokenAddress","nodeType":"MemberAccess","referencedDeclaration":2281,"src":"2197:24:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":2351,"name":"addressToString","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3631,"src":"2181:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_string_memory_ptr_$","typeString":"function (address) pure returns (string memory)"}},"id":2354,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2181:41:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"arguments":[{"expression":{"id":2356,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2308,"src":"2252:6:15","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructTokenURIParams_$2306_memory_ptr","typeString":"struct NFTDescriptor.ConstructTokenURIParams memory"}},"id":2357,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"baseTokenAddress","nodeType":"MemberAccess","referencedDeclaration":2283,"src":"2252:23:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":2355,"name":"addressToString","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3631,"src":"2236:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_string_memory_ptr_$","typeString":"function (address) pure returns (string memory)"}},"id":2358,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2236:40:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"arguments":[{"expression":{"id":2360,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2308,"src":"2309:6:15","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructTokenURIParams_$2306_memory_ptr","typeString":"struct NFTDescriptor.ConstructTokenURIParams memory"}},"id":2361,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"fee","nodeType":"MemberAccess","referencedDeclaration":2303,"src":"2309:10:15","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint24","typeString":"uint24"}],"id":2359,"name":"feeToPercentString","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3614,"src":"2290:18:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint24_$returns$_t_string_memory_ptr_$","typeString":"function (uint24) pure returns (string memory)"}},"id":2362,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2290:30:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":2342,"name":"generateDescriptionPartTwo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2572,"src":"2052:26:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (string memory,string memory,string memory,string memory,string memory) pure returns (string memory)"}},"id":2363,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2052:278:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"VariableDeclarationStatement","src":"2017:313:15"},{"assignments":[2366],"declarations":[{"constant":false,"id":2366,"mutability":"mutable","name":"image","nodeType":"VariableDeclaration","scope":2403,"src":"2340:19:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":2365,"name":"string","nodeType":"ElementaryTypeName","src":"2340:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"id":2376,"initialValue":{"arguments":[{"arguments":[{"arguments":[{"id":2372,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2308,"src":"2399:6:15","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructTokenURIParams_$2306_memory_ptr","typeString":"struct NFTDescriptor.ConstructTokenURIParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ConstructTokenURIParams_$2306_memory_ptr","typeString":"struct NFTDescriptor.ConstructTokenURIParams memory"}],"id":2371,"name":"generateSVGImage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3814,"src":"2382:16:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_ConstructTokenURIParams_$2306_memory_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (struct NFTDescriptor.ConstructTokenURIParams memory) pure returns (string memory)"}},"id":2373,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2382:24:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":2370,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2376:5:15","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":2369,"name":"bytes","nodeType":"ElementaryTypeName","src":"2376:5:15","typeDescriptions":{}}},"id":2374,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2376:31:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":2367,"name":"Base64","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2105,"src":"2362:6:15","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Base64_$2105_$","typeString":"type(library Base64)"}},"id":2368,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"encode","nodeType":"MemberAccess","referencedDeclaration":2104,"src":"2362:13:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (bytes memory) pure returns (string memory)"}},"id":2375,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2362:46:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"VariableDeclarationStatement","src":"2340:68:15"},{"expression":{"arguments":[{"arguments":[{"hexValue":"646174613a6170706c69636174696f6e2f6a736f6e3b6261736536342c","id":2381,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2500:31:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_bccab2d885f86fda81bfd84dd4248d31f8073b473d187111d36536db073076fa","typeString":"literal_string \"data:application/json;base64,\""},"value":"data:application/json;base64,"},{"arguments":[{"arguments":[{"arguments":[{"hexValue":"7b226e616d65223a22","id":2388,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2677:11:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_14271abadab347880c45d45d3abf3dce36bb4aa23c658e4207d08ac9b3f38832","typeString":"literal_string \"{\"name\":\"\""},"value":"{\"name\":\""},{"id":2389,"name":"name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2314,"src":"2722:4:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"222c20226465736372697074696f6e223a22","id":2390,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2760:20:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_9780691b4087a1893a28b24020f5f6d0c7583060bd6cfeb54b8284a5bf55f11f","typeString":"literal_string \"\", \"description\":\"\""},"value":"\", \"description\":\""},{"id":2391,"name":"descriptionPartOne","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2324,"src":"2814:18:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":2392,"name":"descriptionPartTwo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2341,"src":"2866:18:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"222c2022696d616765223a2022","id":2393,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2918:15:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_8d0de490dde571af103e878aa265925a94dd83b4f74e62b617db5ad43a4f76af","typeString":"literal_string \"\", \"image\": \"\""},"value":"\", \"image\": \""},{"hexValue":"646174613a696d6167652f7376672b786d6c3b6261736536342c","id":2394,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2967:28:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_f90ae014c41cb48231e1f02c314087ff9c479133697911d25c5fe231e237dd14","typeString":"literal_string \"data:image/svg+xml;base64,\""},"value":"data:image/svg+xml;base64,"},{"id":2395,"name":"image","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2366,"src":"3029:5:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"227d","id":2396,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3068:4:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_835b459273672627bbafc3a2eded65187a632f4128bdc79e126c7ef579a27475","typeString":"literal_string \"\"}\""},"value":"\"}"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_14271abadab347880c45d45d3abf3dce36bb4aa23c658e4207d08ac9b3f38832","typeString":"literal_string \"{\"name\":\"\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_stringliteral_9780691b4087a1893a28b24020f5f6d0c7583060bd6cfeb54b8284a5bf55f11f","typeString":"literal_string \"\", \"description\":\"\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_stringliteral_8d0de490dde571af103e878aa265925a94dd83b4f74e62b617db5ad43a4f76af","typeString":"literal_string \"\", \"image\": \"\""},{"typeIdentifier":"t_stringliteral_f90ae014c41cb48231e1f02c314087ff9c479133697911d25c5fe231e237dd14","typeString":"literal_string \"data:image/svg+xml;base64,\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_stringliteral_835b459273672627bbafc3a2eded65187a632f4128bdc79e126c7ef579a27475","typeString":"literal_string \"\"}\""}],"expression":{"id":2386,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2627:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":2387,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodePacked","nodeType":"MemberAccess","src":"2627:16:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":2397,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2627:475:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":2385,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2592:5:15","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":2384,"name":"bytes","nodeType":"ElementaryTypeName","src":"2592:5:15","typeDescriptions":{}}},"id":2398,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2592:536:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":2382,"name":"Base64","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2105,"src":"2553:6:15","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Base64_$2105_$","typeString":"type(library Base64)"}},"id":2383,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"encode","nodeType":"MemberAccess","referencedDeclaration":2104,"src":"2553:13:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (bytes memory) pure returns (string memory)"}},"id":2399,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2553:597:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_bccab2d885f86fda81bfd84dd4248d31f8073b473d187111d36536db073076fa","typeString":"literal_string \"data:application/json;base64,\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":2379,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2462:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":2380,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodePacked","nodeType":"MemberAccess","src":"2462:16:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":2400,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2462:706:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":2378,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2438:6:15","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":2377,"name":"string","nodeType":"ElementaryTypeName","src":"2438:6:15","typeDescriptions":{}}},"id":2401,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2438:744:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":2312,"id":2402,"nodeType":"Return","src":"2419:763:15"}]},"functionSelector":"c49917d7","id":2404,"implemented":true,"kind":"function","modifiers":[],"name":"constructTokenURI","nodeType":"FunctionDefinition","parameters":{"id":2309,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2308,"mutability":"mutable","name":"params","nodeType":"VariableDeclaration","scope":2404,"src":"1618:37:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructTokenURIParams_$2306_memory_ptr","typeString":"struct NFTDescriptor.ConstructTokenURIParams"},"typeName":{"id":2307,"name":"ConstructTokenURIParams","nodeType":"UserDefinedTypeName","referencedDeclaration":2306,"src":"1618:23:15","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructTokenURIParams_$2306_storage_ptr","typeString":"struct NFTDescriptor.ConstructTokenURIParams"}},"visibility":"internal"}],"src":"1617:39:15"},"returnParameters":{"id":2312,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2311,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","scope":2404,"src":"1678:13:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":2310,"name":"string","nodeType":"ElementaryTypeName","src":"1678:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1677:15:15"},"scope":3947,"src":"1591:1598:15","stateMutability":"pure","virtual":false,"visibility":"public"},{"body":{"id":2507,"nodeType":"Block","src":"3277:704:15","statements":[{"assignments":[2412],"declarations":[{"constant":false,"id":2412,"mutability":"mutable","name":"symbolBytes","nodeType":"VariableDeclaration","scope":2507,"src":"3287:24:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2411,"name":"bytes","nodeType":"ElementaryTypeName","src":"3287:5:15","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":2417,"initialValue":{"arguments":[{"id":2415,"name":"symbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2406,"src":"3320:6:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":2414,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3314:5:15","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":2413,"name":"bytes","nodeType":"ElementaryTypeName","src":"3314:5:15","typeDescriptions":{}}},"id":2416,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3314:13:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"3287:40:15"},{"assignments":[2419],"declarations":[{"constant":false,"id":2419,"mutability":"mutable","name":"quotesCount","nodeType":"VariableDeclaration","scope":2507,"src":"3337:17:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":2418,"name":"uint8","nodeType":"ElementaryTypeName","src":"3337:5:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"id":2421,"initialValue":{"hexValue":"30","id":2420,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3357:1:15","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"3337:21:15"},{"body":{"id":2443,"nodeType":"Block","src":"3415:97:15","statements":[{"condition":{"commonType":{"typeIdentifier":"t_bytes1","typeString":"bytes1"},"id":2437,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":2433,"name":"symbolBytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2412,"src":"3433:11:15","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":2435,"indexExpression":{"id":2434,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2423,"src":"3445:1:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3433:14:15","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"22","id":2436,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3451:3:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_6e9f33448a4153023cdaf3eb759f1afdc24aba433a3e18b683f8c04a6eaa69f0","typeString":"literal_string \"\"\""},"value":"\""},"src":"3433:21:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2442,"nodeType":"IfStatement","src":"3429:73:15","trueBody":{"id":2441,"nodeType":"Block","src":"3456:46:15","statements":[{"expression":{"id":2439,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"3474:13:15","subExpression":{"id":2438,"name":"quotesCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2419,"src":"3474:11:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":2440,"nodeType":"ExpressionStatement","src":"3474:13:15"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2429,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2426,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2423,"src":"3386:1:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":2427,"name":"symbolBytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2412,"src":"3390:11:15","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":2428,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"3390:18:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3386:22:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2444,"initializationExpression":{"assignments":[2423],"declarations":[{"constant":false,"id":2423,"mutability":"mutable","name":"i","nodeType":"VariableDeclaration","scope":2444,"src":"3373:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":2422,"name":"uint8","nodeType":"ElementaryTypeName","src":"3373:5:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"id":2425,"initialValue":{"hexValue":"30","id":2424,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3383:1:15","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"3373:11:15"},"loopExpression":{"expression":{"id":2431,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"3410:3:15","subExpression":{"id":2430,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2423,"src":"3410:1:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":2432,"nodeType":"ExpressionStatement","src":"3410:3:15"},"nodeType":"ForStatement","src":"3368:144:15"},{"condition":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":2447,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2445,"name":"quotesCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2419,"src":"3525:11:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":2446,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3539:1:15","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3525:15:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2504,"nodeType":"IfStatement","src":"3521:431:15","trueBody":{"id":2503,"nodeType":"Block","src":"3542:410:15","statements":[{"assignments":[2449],"declarations":[{"constant":false,"id":2449,"mutability":"mutable","name":"escapedBytes","nodeType":"VariableDeclaration","scope":2503,"src":"3556:25:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2448,"name":"bytes","nodeType":"ElementaryTypeName","src":"3556:5:15","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":2458,"initialValue":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2456,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":2452,"name":"symbolBytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2412,"src":"3594:11:15","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":2453,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"3594:18:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"components":[{"id":2454,"name":"quotesCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2419,"src":"3616:11:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"id":2455,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3615:13:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"3594:34:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2451,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"3584:9:15","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":2450,"name":"bytes","nodeType":"ElementaryTypeName","src":"3588:5:15","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":2457,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3584:45:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"3556:73:15"},{"assignments":[2460],"declarations":[{"constant":false,"id":2460,"mutability":"mutable","name":"index","nodeType":"VariableDeclaration","scope":2503,"src":"3643:13:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2459,"name":"uint256","nodeType":"ElementaryTypeName","src":"3643:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2461,"nodeType":"VariableDeclarationStatement","src":"3643:13:15"},{"body":{"id":2496,"nodeType":"Block","src":"3717:184:15","statements":[{"condition":{"commonType":{"typeIdentifier":"t_bytes1","typeString":"bytes1"},"id":2477,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":2473,"name":"symbolBytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2412,"src":"3739:11:15","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":2475,"indexExpression":{"id":2474,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2463,"src":"3751:1:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3739:14:15","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"22","id":2476,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3757:3:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_6e9f33448a4153023cdaf3eb759f1afdc24aba433a3e18b683f8c04a6eaa69f0","typeString":"literal_string \"\"\""},"value":"\""},"src":"3739:21:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2486,"nodeType":"IfStatement","src":"3735:96:15","trueBody":{"id":2485,"nodeType":"Block","src":"3762:69:15","statements":[{"expression":{"id":2483,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":2478,"name":"escapedBytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2449,"src":"3784:12:15","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":2481,"indexExpression":{"id":2480,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"3797:7:15","subExpression":{"id":2479,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2460,"src":"3797:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3784:21:15","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"5c","id":2482,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3808:4:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_731553fa98541ade8b78284229adfe09a819380dee9244baac20dd1e0aa24095","typeString":"literal_string \"\\\""},"value":"\\"},"src":"3784:28:15","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"id":2484,"nodeType":"ExpressionStatement","src":"3784:28:15"}]}},{"expression":{"id":2494,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":2487,"name":"escapedBytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2449,"src":"3848:12:15","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":2490,"indexExpression":{"id":2489,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"3861:7:15","subExpression":{"id":2488,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2460,"src":"3861:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3848:21:15","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":2491,"name":"symbolBytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2412,"src":"3872:11:15","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":2493,"indexExpression":{"id":2492,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2463,"src":"3884:1:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3872:14:15","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"src":"3848:38:15","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"id":2495,"nodeType":"ExpressionStatement","src":"3848:38:15"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2469,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2466,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2463,"src":"3688:1:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":2467,"name":"symbolBytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2412,"src":"3692:11:15","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":2468,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"3692:18:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3688:22:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2497,"initializationExpression":{"assignments":[2463],"declarations":[{"constant":false,"id":2463,"mutability":"mutable","name":"i","nodeType":"VariableDeclaration","scope":2497,"src":"3675:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":2462,"name":"uint8","nodeType":"ElementaryTypeName","src":"3675:5:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"id":2465,"initialValue":{"hexValue":"30","id":2464,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3685:1:15","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"3675:11:15"},"loopExpression":{"expression":{"id":2471,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"3712:3:15","subExpression":{"id":2470,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2463,"src":"3712:1:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":2472,"nodeType":"ExpressionStatement","src":"3712:3:15"},"nodeType":"ForStatement","src":"3670:231:15"},{"expression":{"arguments":[{"id":2500,"name":"escapedBytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2449,"src":"3928:12:15","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":2499,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3921:6:15","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":2498,"name":"string","nodeType":"ElementaryTypeName","src":"3921:6:15","typeDescriptions":{}}},"id":2501,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3921:20:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":2410,"id":2502,"nodeType":"Return","src":"3914:27:15"}]}},{"expression":{"id":2505,"name":"symbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2406,"src":"3968:6:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":2410,"id":2506,"nodeType":"Return","src":"3961:13:15"}]},"id":2508,"implemented":true,"kind":"function","modifiers":[],"name":"escapeQuotes","nodeType":"FunctionDefinition","parameters":{"id":2407,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2406,"mutability":"mutable","name":"symbol","nodeType":"VariableDeclaration","scope":2508,"src":"3217:20:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":2405,"name":"string","nodeType":"ElementaryTypeName","src":"3217:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"3216:22:15"},"returnParameters":{"id":2410,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2409,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","scope":2508,"src":"3262:13:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":2408,"name":"string","nodeType":"ElementaryTypeName","src":"3262:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"3261:15:15"},"scope":3947,"src":"3195:786:15","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2536,"nodeType":"Block","src":"4180:543:15","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"54686973204e465420726570726573656e74732061206c697175696469747920706f736974696f6e20696e206120417374726144455820434c20","id":2523,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4271:60:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_a5e36cfb8d1baee257d7c52959ea9d09b81589d687d56c5cf5480de85319d26b","typeString":"literal_string \"This NFT represents a liquidity position in a AstraDEX CL \""},"value":"This NFT represents a liquidity position in a AstraDEX CL "},{"id":2524,"name":"quoteTokenSymbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2510,"src":"4353:16:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"2d","id":2525,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4391:3:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_d3b8281179950f98149eefdb158d0e1acb56f56e8e343aa9fefafa7e36959561","typeString":"literal_string \"-\""},"value":"-"},{"id":2526,"name":"baseTokenSymbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2512,"src":"4416:15:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"20706f6f6c2e20","id":2527,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4453:9:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_653c56b4082275492c676e2e8a392152fd3797ddaf9258db7bb55df6f1109f07","typeString":"literal_string \" pool. \""},"value":" pool. "},{"hexValue":"546865206f776e6572206f662074686973204e46542063616e206d6f64696679206f722072656465656d2074686520706f736974696f6e2e5c6e","id":2528,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4484:61:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_9013e84e1527194f2724f9cc76ecfb22d8c29795e059cbfa4956303bf5e4e20a","typeString":"literal_string \"The owner of this NFT can modify or redeem the position.\\n\""},"value":"The owner of this NFT can modify or redeem the position.\\n"},{"hexValue":"5c6e506f6f6c20416464726573733a20","id":2529,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4567:19:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_4517a570da75b0bbae4ccef80790cc987c9b97b99c62e75a69fa04f38ace8fc6","typeString":"literal_string \"\\nPool Address: \""},"value":"\\nPool Address: "},{"id":2530,"name":"poolAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2514,"src":"4608:11:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"5c6e","id":2531,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4641:5:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_90249a63b806acad050a60c81f8cc82fb6e7ebc3575d78119a9b4c5568b02cd2","typeString":"literal_string \"\\n\""},"value":"\\n"},{"id":2532,"name":"quoteTokenSymbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2510,"src":"4668:16:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a5e36cfb8d1baee257d7c52959ea9d09b81589d687d56c5cf5480de85319d26b","typeString":"literal_string \"This NFT represents a liquidity position in a AstraDEX CL \""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_stringliteral_d3b8281179950f98149eefdb158d0e1acb56f56e8e343aa9fefafa7e36959561","typeString":"literal_string \"-\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_stringliteral_653c56b4082275492c676e2e8a392152fd3797ddaf9258db7bb55df6f1109f07","typeString":"literal_string \" pool. \""},{"typeIdentifier":"t_stringliteral_9013e84e1527194f2724f9cc76ecfb22d8c29795e059cbfa4956303bf5e4e20a","typeString":"literal_string \"The owner of this NFT can modify or redeem the position.\\n\""},{"typeIdentifier":"t_stringliteral_4517a570da75b0bbae4ccef80790cc987c9b97b99c62e75a69fa04f38ace8fc6","typeString":"literal_string \"\\nPool Address: \""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_stringliteral_90249a63b806acad050a60c81f8cc82fb6e7ebc3575d78119a9b4c5568b02cd2","typeString":"literal_string \"\\n\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":2521,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4233:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":2522,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodePacked","nodeType":"MemberAccess","src":"4233:16:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":2533,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4233:469:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":2520,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4209:6:15","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":2519,"name":"string","nodeType":"ElementaryTypeName","src":"4209:6:15","typeDescriptions":{}}},"id":2534,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4209:507:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":2518,"id":2535,"nodeType":"Return","src":"4190:526:15"}]},"id":2537,"implemented":true,"kind":"function","modifiers":[],"name":"generateDescriptionPartOne","nodeType":"FunctionDefinition","parameters":{"id":2515,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2510,"mutability":"mutable","name":"quoteTokenSymbol","nodeType":"VariableDeclaration","scope":2537,"src":"4032:30:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":2509,"name":"string","nodeType":"ElementaryTypeName","src":"4032:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":2512,"mutability":"mutable","name":"baseTokenSymbol","nodeType":"VariableDeclaration","scope":2537,"src":"4072:29:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":2511,"name":"string","nodeType":"ElementaryTypeName","src":"4072:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":2514,"mutability":"mutable","name":"poolAddress","nodeType":"VariableDeclaration","scope":2537,"src":"4111:25:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":2513,"name":"string","nodeType":"ElementaryTypeName","src":"4111:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"4022:120:15"},"returnParameters":{"id":2518,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2517,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","scope":2537,"src":"4165:13:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":2516,"name":"string","nodeType":"ElementaryTypeName","src":"4165:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"4164:15:15"},"scope":3947,"src":"3987:736:15","stateMutability":"pure","virtual":false,"visibility":"private"},{"body":{"id":2571,"nodeType":"Block","src":"4990:668:15","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"20416464726573733a20","id":2556,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5081:12:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_7aa660bcf8ae0b7203360b6321d9d065d9e5aa33ec33d36eb947d624b5c3b3b0","typeString":"literal_string \" Address: \""},"value":" Address: "},{"id":2557,"name":"quoteTokenAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2543,"src":"5115:17:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"5c6e","id":2558,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5154:5:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_90249a63b806acad050a60c81f8cc82fb6e7ebc3575d78119a9b4c5568b02cd2","typeString":"literal_string \"\\n\""},"value":"\\n"},{"id":2559,"name":"baseTokenSymbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2541,"src":"5181:15:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"20416464726573733a20","id":2560,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5218:12:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_7aa660bcf8ae0b7203360b6321d9d065d9e5aa33ec33d36eb947d624b5c3b3b0","typeString":"literal_string \" Address: \""},"value":" Address: "},{"id":2561,"name":"baseTokenAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2545,"src":"5252:16:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"5c6e46656520546965723a20","id":2562,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5290:15:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_aded885378cc6538f3bd3ce068731b0abae76fa7bf8dbda35e1058e85aa79ab2","typeString":"literal_string \"\\nFee Tier: \""},"value":"\\nFee Tier: "},{"id":2563,"name":"feeTier","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2547,"src":"5327:7:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"5c6e546f6b656e2049443a20","id":2564,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5356:15:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_a2bfa4136760740c1452b04d79f8a1bc2d4b66a227d5106d32849e904d06aff9","typeString":"literal_string \"\\nToken ID: \""},"value":"\\nToken ID: "},{"id":2565,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2539,"src":"5393:7:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"5c6e5c6e","id":2566,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5422:8:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_c61933a8d2be5d811f4efe562efc05b21b97e6174fab5f4c4a9e0d70fcc60e1b","typeString":"literal_string \"\\n\\n\""},"value":"\\n\\n"},{"hexValue":"e29aa0efb88f20444953434c41494d45523a204475652064696c6967656e636520697320696d7065726174697665207768656e20617373657373696e672074686973204e46542e204d616b65207375726520746f6b656e20616464726573736573206d617463682074686520657870656374656420746f6b656e732c20617320746f6b656e2073796d626f6c73206d617920626520696d6974617465642e","id":2567,"isConstant":false,"isLValue":false,"isPure":true,"kind":"unicodeString","lValueRequested":false,"nodeType":"Literal","src":"5452:167:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_3378df0222f0793f0de1d8213e14093d5e40c9a86dac387a423dca1fb6175d77","typeString":"literal_string hex\"e29aa0efb88f20444953434c41494d45523a204475652064696c6967656e636520697320696d7065726174697665207768656e20617373657373696e672074686973204e46542e204d616b65207375726520746f6b656e20616464726573736573206d617463682074686520657870656374656420746f6b656e732c20617320746f6b656e2073796d626f6c73206d617920626520696d6974617465642e\""},"value":"⚠️ DISCLAIMER: Due diligence is imperative when assessing this NFT. Make sure token addresses match the expected tokens, as token symbols may be imitated."}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_7aa660bcf8ae0b7203360b6321d9d065d9e5aa33ec33d36eb947d624b5c3b3b0","typeString":"literal_string \" Address: \""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_stringliteral_90249a63b806acad050a60c81f8cc82fb6e7ebc3575d78119a9b4c5568b02cd2","typeString":"literal_string \"\\n\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_stringliteral_7aa660bcf8ae0b7203360b6321d9d065d9e5aa33ec33d36eb947d624b5c3b3b0","typeString":"literal_string \" Address: \""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_stringliteral_aded885378cc6538f3bd3ce068731b0abae76fa7bf8dbda35e1058e85aa79ab2","typeString":"literal_string \"\\nFee Tier: \""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_stringliteral_a2bfa4136760740c1452b04d79f8a1bc2d4b66a227d5106d32849e904d06aff9","typeString":"literal_string \"\\nToken ID: \""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_stringliteral_c61933a8d2be5d811f4efe562efc05b21b97e6174fab5f4c4a9e0d70fcc60e1b","typeString":"literal_string \"\\n\\n\""},{"typeIdentifier":"t_stringliteral_3378df0222f0793f0de1d8213e14093d5e40c9a86dac387a423dca1fb6175d77","typeString":"literal_string hex\"e29aa0efb88f20444953434c41494d45523a204475652064696c6967656e636520697320696d7065726174697665207768656e20617373657373696e672074686973204e46542e204d616b65207375726520746f6b656e20616464726573736573206d617463682074686520657870656374656420746f6b656e732c20617320746f6b656e2073796d626f6c73206d617920626520696d6974617465642e\""}],"expression":{"id":2554,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5043:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":2555,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodePacked","nodeType":"MemberAccess","src":"5043:16:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":2568,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5043:594:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":2553,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5019:6:15","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":2552,"name":"string","nodeType":"ElementaryTypeName","src":"5019:6:15","typeDescriptions":{}}},"id":2569,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5019:632:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":2551,"id":2570,"nodeType":"Return","src":"5000:651:15"}]},"id":2572,"implemented":true,"kind":"function","modifiers":[],"name":"generateDescriptionPartTwo","nodeType":"FunctionDefinition","parameters":{"id":2548,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2539,"mutability":"mutable","name":"tokenId","nodeType":"VariableDeclaration","scope":2572,"src":"4774:21:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":2538,"name":"string","nodeType":"ElementaryTypeName","src":"4774:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":2541,"mutability":"mutable","name":"baseTokenSymbol","nodeType":"VariableDeclaration","scope":2572,"src":"4805:29:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":2540,"name":"string","nodeType":"ElementaryTypeName","src":"4805:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":2543,"mutability":"mutable","name":"quoteTokenAddress","nodeType":"VariableDeclaration","scope":2572,"src":"4844:31:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":2542,"name":"string","nodeType":"ElementaryTypeName","src":"4844:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":2545,"mutability":"mutable","name":"baseTokenAddress","nodeType":"VariableDeclaration","scope":2572,"src":"4885:30:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":2544,"name":"string","nodeType":"ElementaryTypeName","src":"4885:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":2547,"mutability":"mutable","name":"feeTier","nodeType":"VariableDeclaration","scope":2572,"src":"4925:21:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":2546,"name":"string","nodeType":"ElementaryTypeName","src":"4925:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"4764:188:15"},"returnParameters":{"id":2551,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2550,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","scope":2572,"src":"4975:13:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":2549,"name":"string","nodeType":"ElementaryTypeName","src":"4975:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"4974:15:15"},"scope":3947,"src":"4729:929:15","stateMutability":"pure","virtual":false,"visibility":"private"},{"body":{"id":2638,"nodeType":"Block","src":"5807:1053:15","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"4173747261202d20","id":2585,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5898:10:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_5d81801f3faf5b53217aacfdd27e1c65119f316a8cce08f40ea147b9baf4752a","typeString":"literal_string \"Astra - \""},"value":"Astra - "},{"id":2586,"name":"feeTier","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2576,"src":"5930:7:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"202d20","id":2587,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5959:5:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_9e7b109ea8329776b4d3d2e2c2bf39b3f7e02ce64c66994d3a0db4ff2e229f54","typeString":"literal_string \" - \""},"value":" - "},{"arguments":[{"expression":{"id":2589,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2574,"src":"5999:6:15","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructTokenURIParams_$2306_memory_ptr","typeString":"struct NFTDescriptor.ConstructTokenURIParams memory"}},"id":2590,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"quoteTokenSymbol","nodeType":"MemberAccess","referencedDeclaration":2285,"src":"5999:23:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":2588,"name":"escapeQuotes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2508,"src":"5986:12:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (string memory) pure returns (string memory)"}},"id":2591,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5986:37:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"2f","id":2592,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6045:3:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_fba9715e477e68952d3f1df7a185b3708aadad50ec10cc793973864023868527","typeString":"literal_string \"/\""},"value":"/"},{"arguments":[{"expression":{"id":2594,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2574,"src":"6083:6:15","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructTokenURIParams_$2306_memory_ptr","typeString":"struct NFTDescriptor.ConstructTokenURIParams memory"}},"id":2595,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"baseTokenSymbol","nodeType":"MemberAccess","referencedDeclaration":2287,"src":"6083:22:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":2593,"name":"escapeQuotes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2508,"src":"6070:12:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (string memory) pure returns (string memory)"}},"id":2596,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6070:36:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"202d20","id":2597,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6128:5:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_9e7b109ea8329776b4d3d2e2c2bf39b3f7e02ce64c66994d3a0db4ff2e229f54","typeString":"literal_string \" - \""},"value":" - "},{"arguments":[{"condition":{"id":2601,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"6200:17:15","subExpression":{"expression":{"id":2599,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2574,"src":"6201:6:15","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructTokenURIParams_$2306_memory_ptr","typeString":"struct NFTDescriptor.ConstructTokenURIParams memory"}},"id":2600,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"flipRatio","nodeType":"MemberAccess","referencedDeclaration":2293,"src":"6201:16:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"expression":{"id":2604,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2574,"src":"6239:6:15","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructTokenURIParams_$2306_memory_ptr","typeString":"struct NFTDescriptor.ConstructTokenURIParams memory"}},"id":2605,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"tickUpper","nodeType":"MemberAccess","referencedDeclaration":2297,"src":"6239:16:15","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"id":2606,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"6200:55:15","trueExpression":{"expression":{"id":2602,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2574,"src":"6220:6:15","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructTokenURIParams_$2306_memory_ptr","typeString":"struct NFTDescriptor.ConstructTokenURIParams memory"}},"id":2603,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"tickLower","nodeType":"MemberAccess","referencedDeclaration":2295,"src":"6220:16:15","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},{"expression":{"id":2607,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2574,"src":"6281:6:15","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructTokenURIParams_$2306_memory_ptr","typeString":"struct NFTDescriptor.ConstructTokenURIParams memory"}},"id":2608,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"tickSpacing","nodeType":"MemberAccess","referencedDeclaration":2301,"src":"6281:18:15","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},{"expression":{"id":2609,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2574,"src":"6325:6:15","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructTokenURIParams_$2306_memory_ptr","typeString":"struct NFTDescriptor.ConstructTokenURIParams memory"}},"id":2610,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"baseTokenDecimals","nodeType":"MemberAccess","referencedDeclaration":2291,"src":"6325:24:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"expression":{"id":2611,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2574,"src":"6375:6:15","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructTokenURIParams_$2306_memory_ptr","typeString":"struct NFTDescriptor.ConstructTokenURIParams memory"}},"id":2612,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"quoteTokenDecimals","nodeType":"MemberAccess","referencedDeclaration":2289,"src":"6375:25:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"expression":{"id":2613,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2574,"src":"6426:6:15","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructTokenURIParams_$2306_memory_ptr","typeString":"struct NFTDescriptor.ConstructTokenURIParams memory"}},"id":2614,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"flipRatio","nodeType":"MemberAccess","referencedDeclaration":2293,"src":"6426:16:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int24","typeString":"int24"},{"typeIdentifier":"t_int24","typeString":"int24"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":2598,"name":"tickToDecimalString","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2872,"src":"6155:19:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int24_$_t_int24_$_t_uint8_$_t_uint8_$_t_bool_$returns$_t_string_memory_ptr_$","typeString":"function (int24,int24,uint8,uint8,bool) pure returns (string memory)"}},"id":2615,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6155:309:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"3c3e","id":2616,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6486:4:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_63ddde264cc2685372ed87a1dd423ce643b51225262aecd1e20b2c3e7a1c2462","typeString":"literal_string \"<>\""},"value":"<>"},{"arguments":[{"condition":{"id":2620,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"6557:17:15","subExpression":{"expression":{"id":2618,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2574,"src":"6558:6:15","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructTokenURIParams_$2306_memory_ptr","typeString":"struct NFTDescriptor.ConstructTokenURIParams memory"}},"id":2619,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"flipRatio","nodeType":"MemberAccess","referencedDeclaration":2293,"src":"6558:16:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"expression":{"id":2623,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2574,"src":"6596:6:15","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructTokenURIParams_$2306_memory_ptr","typeString":"struct NFTDescriptor.ConstructTokenURIParams memory"}},"id":2624,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"tickLower","nodeType":"MemberAccess","referencedDeclaration":2295,"src":"6596:16:15","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"id":2625,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"6557:55:15","trueExpression":{"expression":{"id":2621,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2574,"src":"6577:6:15","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructTokenURIParams_$2306_memory_ptr","typeString":"struct NFTDescriptor.ConstructTokenURIParams memory"}},"id":2622,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"tickUpper","nodeType":"MemberAccess","referencedDeclaration":2297,"src":"6577:16:15","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},{"expression":{"id":2626,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2574,"src":"6638:6:15","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructTokenURIParams_$2306_memory_ptr","typeString":"struct NFTDescriptor.ConstructTokenURIParams memory"}},"id":2627,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"tickSpacing","nodeType":"MemberAccess","referencedDeclaration":2301,"src":"6638:18:15","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},{"expression":{"id":2628,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2574,"src":"6682:6:15","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructTokenURIParams_$2306_memory_ptr","typeString":"struct NFTDescriptor.ConstructTokenURIParams memory"}},"id":2629,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"baseTokenDecimals","nodeType":"MemberAccess","referencedDeclaration":2291,"src":"6682:24:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"expression":{"id":2630,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2574,"src":"6732:6:15","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructTokenURIParams_$2306_memory_ptr","typeString":"struct NFTDescriptor.ConstructTokenURIParams memory"}},"id":2631,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"quoteTokenDecimals","nodeType":"MemberAccess","referencedDeclaration":2289,"src":"6732:25:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"expression":{"id":2632,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2574,"src":"6783:6:15","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructTokenURIParams_$2306_memory_ptr","typeString":"struct NFTDescriptor.ConstructTokenURIParams memory"}},"id":2633,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"flipRatio","nodeType":"MemberAccess","referencedDeclaration":2293,"src":"6783:16:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int24","typeString":"int24"},{"typeIdentifier":"t_int24","typeString":"int24"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":2617,"name":"tickToDecimalString","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2872,"src":"6512:19:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int24_$_t_int24_$_t_uint8_$_t_uint8_$_t_bool_$returns$_t_string_memory_ptr_$","typeString":"function (int24,int24,uint8,uint8,bool) pure returns (string memory)"}},"id":2634,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6512:309:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5d81801f3faf5b53217aacfdd27e1c65119f316a8cce08f40ea147b9baf4752a","typeString":"literal_string \"Astra - \""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_stringliteral_9e7b109ea8329776b4d3d2e2c2bf39b3f7e02ce64c66994d3a0db4ff2e229f54","typeString":"literal_string \" - \""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_stringliteral_fba9715e477e68952d3f1df7a185b3708aadad50ec10cc793973864023868527","typeString":"literal_string \"/\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_stringliteral_9e7b109ea8329776b4d3d2e2c2bf39b3f7e02ce64c66994d3a0db4ff2e229f54","typeString":"literal_string \" - \""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_stringliteral_63ddde264cc2685372ed87a1dd423ce643b51225262aecd1e20b2c3e7a1c2462","typeString":"literal_string \"<>\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":2583,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5860:3:15","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":2584,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodePacked","nodeType":"MemberAccess","src":"5860:16:15","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":2635,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5860:979:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":2582,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5836:6:15","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":2581,"name":"string","nodeType":"ElementaryTypeName","src":"5836:6:15","typeDescriptions":{}}},"id":2636,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5836:1017:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":2580,"id":2637,"nodeType":"Return","src":"5817:1036:15"}]},"id":2639,"implemented":true,"kind":"function","modifiers":[],"name":"generateName","nodeType":"FunctionDefinition","parameters":{"id":2577,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2574,"mutability":"mutable","name":"params","nodeType":"VariableDeclaration","scope":2639,"src":"5695:37:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructTokenURIParams_$2306_memory_ptr","typeString":"struct NFTDescriptor.ConstructTokenURIParams"},"typeName":{"id":2573,"name":"ConstructTokenURIParams","nodeType":"UserDefinedTypeName","referencedDeclaration":2306,"src":"5695:23:15","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructTokenURIParams_$2306_storage_ptr","typeString":"struct NFTDescriptor.ConstructTokenURIParams"}},"visibility":"internal"},{"constant":false,"id":2576,"mutability":"mutable","name":"feeTier","nodeType":"VariableDeclaration","scope":2639,"src":"5742:21:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":2575,"name":"string","nodeType":"ElementaryTypeName","src":"5742:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"5685:84:15"},"returnParameters":{"id":2580,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2579,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","scope":2639,"src":"5792:13:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":2578,"name":"string","nodeType":"ElementaryTypeName","src":"5792:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"5791:15:15"},"scope":3947,"src":"5664:1196:15","stateMutability":"pure","virtual":false,"visibility":"private"},{"canonicalName":"NFTDescriptor.DecimalStringParams","id":2656,"members":[{"constant":false,"id":2641,"mutability":"mutable","name":"sigfigs","nodeType":"VariableDeclaration","scope":2656,"src":"6945:15:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2640,"name":"uint256","nodeType":"ElementaryTypeName","src":"6945:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2643,"mutability":"mutable","name":"bufferLength","nodeType":"VariableDeclaration","scope":2656,"src":"7006:18:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":2642,"name":"uint8","nodeType":"ElementaryTypeName","src":"7006:5:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":2645,"mutability":"mutable","name":"sigfigIndex","nodeType":"VariableDeclaration","scope":2656,"src":"7129:17:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":2644,"name":"uint8","nodeType":"ElementaryTypeName","src":"7129:5:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":2647,"mutability":"mutable","name":"decimalIndex","nodeType":"VariableDeclaration","scope":2656,"src":"7208:18:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":2646,"name":"uint8","nodeType":"ElementaryTypeName","src":"7208:5:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":2649,"mutability":"mutable","name":"zerosStartIndex","nodeType":"VariableDeclaration","scope":2656,"src":"7313:21:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":2648,"name":"uint8","nodeType":"ElementaryTypeName","src":"7313:5:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":2651,"mutability":"mutable","name":"zerosEndIndex","nodeType":"VariableDeclaration","scope":2656,"src":"7419:19:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":2650,"name":"uint8","nodeType":"ElementaryTypeName","src":"7419:5:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":2653,"mutability":"mutable","name":"isLessThanOne","nodeType":"VariableDeclaration","scope":2656,"src":"7499:18:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2652,"name":"bool","nodeType":"ElementaryTypeName","src":"7499:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":2655,"mutability":"mutable","name":"isPercent","nodeType":"VariableDeclaration","scope":2656,"src":"7572:14:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2654,"name":"bool","nodeType":"ElementaryTypeName","src":"7572:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"name":"DecimalStringParams","nodeType":"StructDefinition","scope":3947,"src":"6866:727:15","visibility":"public"},{"body":{"id":2789,"nodeType":"Block","src":"7702:864:15","statements":[{"assignments":[2664],"declarations":[{"constant":false,"id":2664,"mutability":"mutable","name":"buffer","nodeType":"VariableDeclaration","scope":2789,"src":"7712:19:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2663,"name":"bytes","nodeType":"ElementaryTypeName","src":"7712:5:15","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":2670,"initialValue":{"arguments":[{"expression":{"id":2667,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2658,"src":"7744:6:15","typeDescriptions":{"typeIdentifier":"t_struct$_DecimalStringParams_$2656_memory_ptr","typeString":"struct NFTDescriptor.DecimalStringParams memory"}},"id":2668,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"bufferLength","nodeType":"MemberAccess","referencedDeclaration":2643,"src":"7744:19:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":2666,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"7734:9:15","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":2665,"name":"bytes","nodeType":"ElementaryTypeName","src":"7738:5:15","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":2669,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7734:30:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"7712:52:15"},{"condition":{"expression":{"id":2671,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2658,"src":"7778:6:15","typeDescriptions":{"typeIdentifier":"t_struct$_DecimalStringParams_$2656_memory_ptr","typeString":"struct NFTDescriptor.DecimalStringParams memory"}},"id":2672,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"isPercent","nodeType":"MemberAccess","referencedDeclaration":2655,"src":"7778:16:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2683,"nodeType":"IfStatement","src":"7774:78:15","trueBody":{"id":2682,"nodeType":"Block","src":"7796:56:15","statements":[{"expression":{"id":2680,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":2673,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2664,"src":"7810:6:15","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":2678,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2677,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":2674,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2664,"src":"7817:6:15","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":2675,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"7817:13:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":2676,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7833:1:15","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"7817:17:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7810:25:15","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"25","id":2679,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7838:3:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_43b2f7df8a0d3a744d9a3126411ef3787d9e447a59b458310e828119cf8614ad","typeString":"literal_string \"%\""},"value":"%"},"src":"7810:31:15","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"id":2681,"nodeType":"ExpressionStatement","src":"7810:31:15"}]}},{"condition":{"expression":{"id":2684,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2658,"src":"7865:6:15","typeDescriptions":{"typeIdentifier":"t_struct$_DecimalStringParams_$2656_memory_ptr","typeString":"struct NFTDescriptor.DecimalStringParams memory"}},"id":2685,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"isLessThanOne","nodeType":"MemberAccess","referencedDeclaration":2653,"src":"7865:20:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2699,"nodeType":"IfStatement","src":"7861:95:15","trueBody":{"id":2698,"nodeType":"Block","src":"7887:69:15","statements":[{"expression":{"id":2690,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":2686,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2664,"src":"7901:6:15","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":2688,"indexExpression":{"hexValue":"30","id":2687,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7908:1:15","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7901:9:15","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":2689,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7913:3:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d","typeString":"literal_string \"0\""},"value":"0"},"src":"7901:15:15","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"id":2691,"nodeType":"ExpressionStatement","src":"7901:15:15"},{"expression":{"id":2696,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":2692,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2664,"src":"7930:6:15","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":2694,"indexExpression":{"hexValue":"31","id":2693,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7937:1:15","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7930:9:15","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"2e","id":2695,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7942:3:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_6f010af653ebe3cb07d297a4ef13366103d392ceffa68dd48232e6e9ff2187bf","typeString":"literal_string \".\""},"value":"."},"src":"7930:15:15","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"id":2697,"nodeType":"ExpressionStatement","src":"7930:15:15"}]}},{"body":{"id":2727,"nodeType":"Block","src":"8111:64:15","statements":[{"expression":{"id":2725,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":2715,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2664,"src":"8125:6:15","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":2717,"indexExpression":{"id":2716,"name":"zerosCursor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2701,"src":"8132:11:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"8125:19:15","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"hexValue":"3438","id":2722,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8160:2:15","typeDescriptions":{"typeIdentifier":"t_rational_48_by_1","typeString":"int_const 48"},"value":"48"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_48_by_1","typeString":"int_const 48"}],"id":2721,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8154:5:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":2720,"name":"uint8","nodeType":"ElementaryTypeName","src":"8154:5:15","typeDescriptions":{}}},"id":2723,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8154:9:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":2719,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8147:6:15","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes1_$","typeString":"type(bytes1)"},"typeName":{"id":2718,"name":"bytes1","nodeType":"ElementaryTypeName","src":"8147:6:15","typeDescriptions":{}}},"id":2724,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8147:17:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"src":"8125:39:15","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"id":2726,"nodeType":"ExpressionStatement","src":"8125:39:15"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2711,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2705,"name":"zerosCursor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2701,"src":"8053:11:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"arguments":[{"hexValue":"31","id":2709,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8092:1:15","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"expression":{"expression":{"id":2706,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2658,"src":"8067:6:15","typeDescriptions":{"typeIdentifier":"t_struct$_DecimalStringParams_$2656_memory_ptr","typeString":"struct NFTDescriptor.DecimalStringParams memory"}},"id":2707,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"zerosEndIndex","nodeType":"MemberAccess","referencedDeclaration":2651,"src":"8067:20:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":2708,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"add","nodeType":"MemberAccess","referencedDeclaration":1616,"src":"8067:24:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":2710,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8067:27:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8053:41:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2728,"initializationExpression":{"assignments":[2701],"declarations":[{"constant":false,"id":2701,"mutability":"mutable","name":"zerosCursor","nodeType":"VariableDeclaration","scope":2728,"src":"8007:19:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2700,"name":"uint256","nodeType":"ElementaryTypeName","src":"8007:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2704,"initialValue":{"expression":{"id":2702,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2658,"src":"8029:6:15","typeDescriptions":{"typeIdentifier":"t_struct$_DecimalStringParams_$2656_memory_ptr","typeString":"struct NFTDescriptor.DecimalStringParams memory"}},"id":2703,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"zerosStartIndex","nodeType":"MemberAccess","referencedDeclaration":2649,"src":"8029:22:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"VariableDeclarationStatement","src":"8007:44:15"},"loopExpression":{"expression":{"id":2713,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"8096:13:15","subExpression":{"id":2712,"name":"zerosCursor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2701,"src":"8096:11:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2714,"nodeType":"ExpressionStatement","src":"8096:13:15"},"nodeType":"ForStatement","src":"8002:173:15"},{"body":{"id":2782,"nodeType":"Block","src":"8234:295:15","statements":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":2742,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":2736,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":2733,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2658,"src":"8252:6:15","typeDescriptions":{"typeIdentifier":"t_struct$_DecimalStringParams_$2656_memory_ptr","typeString":"struct NFTDescriptor.DecimalStringParams memory"}},"id":2734,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"decimalIndex","nodeType":"MemberAccess","referencedDeclaration":2647,"src":"8252:19:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":2735,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8274:1:15","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8252:23:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":2741,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":2737,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2658,"src":"8279:6:15","typeDescriptions":{"typeIdentifier":"t_struct$_DecimalStringParams_$2656_memory_ptr","typeString":"struct NFTDescriptor.DecimalStringParams memory"}},"id":2738,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"sigfigIndex","nodeType":"MemberAccess","referencedDeclaration":2645,"src":"8279:18:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":2739,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2658,"src":"8301:6:15","typeDescriptions":{"typeIdentifier":"t_struct$_DecimalStringParams_$2656_memory_ptr","typeString":"struct NFTDescriptor.DecimalStringParams memory"}},"id":2740,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"decimalIndex","nodeType":"MemberAccess","referencedDeclaration":2647,"src":"8301:19:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"8279:41:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"8252:68:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2752,"nodeType":"IfStatement","src":"8248:141:15","trueBody":{"id":2751,"nodeType":"Block","src":"8322:67:15","statements":[{"expression":{"id":2749,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":2743,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2664,"src":"8340:6:15","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":2747,"indexExpression":{"id":2746,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"--","prefix":false,"src":"8347:20:15","subExpression":{"expression":{"id":2744,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2658,"src":"8347:6:15","typeDescriptions":{"typeIdentifier":"t_struct$_DecimalStringParams_$2656_memory_ptr","typeString":"struct NFTDescriptor.DecimalStringParams memory"}},"id":2745,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"sigfigIndex","nodeType":"MemberAccess","referencedDeclaration":2645,"src":"8347:18:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"8340:28:15","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"2e","id":2748,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8371:3:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_6f010af653ebe3cb07d297a4ef13366103d392ceffa68dd48232e6e9ff2187bf","typeString":"literal_string \".\""},"value":"."},"src":"8340:34:15","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"id":2750,"nodeType":"ExpressionStatement","src":"8340:34:15"}]}},{"expression":{"id":2774,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":2753,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2664,"src":"8402:6:15","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":2757,"indexExpression":{"id":2756,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"--","prefix":false,"src":"8409:20:15","subExpression":{"expression":{"id":2754,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2658,"src":"8409:6:15","typeDescriptions":{"typeIdentifier":"t_struct$_DecimalStringParams_$2656_memory_ptr","typeString":"struct NFTDescriptor.DecimalStringParams memory"}},"id":2755,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"sigfigIndex","nodeType":"MemberAccess","referencedDeclaration":2645,"src":"8409:18:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"8402:28:15","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2770,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":2767,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2658,"src":"8462:6:15","typeDescriptions":{"typeIdentifier":"t_struct$_DecimalStringParams_$2656_memory_ptr","typeString":"struct NFTDescriptor.DecimalStringParams memory"}},"id":2768,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"sigfigs","nodeType":"MemberAccess","referencedDeclaration":2641,"src":"8462:14:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"%","rightExpression":{"hexValue":"3130","id":2769,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8479:2:15","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"src":"8462:19:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"hexValue":"3438","id":2764,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8454:2:15","typeDescriptions":{"typeIdentifier":"t_rational_48_by_1","typeString":"int_const 48"},"value":"48"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_48_by_1","typeString":"int_const 48"}],"id":2763,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8446:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":2762,"name":"uint256","nodeType":"ElementaryTypeName","src":"8446:7:15","typeDescriptions":{}}},"id":2765,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8446:11:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2766,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"add","nodeType":"MemberAccess","referencedDeclaration":1616,"src":"8446:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":2771,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8446:36:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2761,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8440:5:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":2760,"name":"uint8","nodeType":"ElementaryTypeName","src":"8440:5:15","typeDescriptions":{}}},"id":2772,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8440:43:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":2759,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8433:6:15","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes1_$","typeString":"type(bytes1)"},"typeName":{"id":2758,"name":"bytes1","nodeType":"ElementaryTypeName","src":"8433:6:15","typeDescriptions":{}}},"id":2773,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8433:51:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"src":"8402:82:15","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"id":2775,"nodeType":"ExpressionStatement","src":"8402:82:15"},{"expression":{"id":2780,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":2776,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2658,"src":"8498:6:15","typeDescriptions":{"typeIdentifier":"t_struct$_DecimalStringParams_$2656_memory_ptr","typeString":"struct NFTDescriptor.DecimalStringParams memory"}},"id":2778,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"sigfigs","nodeType":"MemberAccess","referencedDeclaration":2641,"src":"8498:14:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"hexValue":"3130","id":2779,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8516:2:15","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"src":"8498:20:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2781,"nodeType":"ExpressionStatement","src":"8498:20:15"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2732,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":2729,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2658,"src":"8214:6:15","typeDescriptions":{"typeIdentifier":"t_struct$_DecimalStringParams_$2656_memory_ptr","typeString":"struct NFTDescriptor.DecimalStringParams memory"}},"id":2730,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"sigfigs","nodeType":"MemberAccess","referencedDeclaration":2641,"src":"8214:14:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":2731,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8231:1:15","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8214:18:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2783,"nodeType":"WhileStatement","src":"8207:322:15"},{"expression":{"arguments":[{"id":2786,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2664,"src":"8552:6:15","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":2785,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8545:6:15","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":2784,"name":"string","nodeType":"ElementaryTypeName","src":"8545:6:15","typeDescriptions":{}}},"id":2787,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8545:14:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":2662,"id":2788,"nodeType":"Return","src":"8538:21:15"}]},"id":2790,"implemented":true,"kind":"function","modifiers":[],"name":"generateDecimalString","nodeType":"FunctionDefinition","parameters":{"id":2659,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2658,"mutability":"mutable","name":"params","nodeType":"VariableDeclaration","scope":2790,"src":"7630:33:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_DecimalStringParams_$2656_memory_ptr","typeString":"struct NFTDescriptor.DecimalStringParams"},"typeName":{"id":2657,"name":"DecimalStringParams","nodeType":"UserDefinedTypeName","referencedDeclaration":2656,"src":"7630:19:15","typeDescriptions":{"typeIdentifier":"t_struct$_DecimalStringParams_$2656_storage_ptr","typeString":"struct NFTDescriptor.DecimalStringParams"}},"visibility":"internal"}],"src":"7629:35:15"},"returnParameters":{"id":2662,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2661,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","scope":2790,"src":"7687:13:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":2660,"name":"string","nodeType":"ElementaryTypeName","src":"7687:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"7686:15:15"},"scope":3947,"src":"7599:967:15","stateMutability":"pure","virtual":false,"visibility":"private"},{"body":{"id":2871,"nodeType":"Block","src":"8783:566:15","statements":[{"condition":{"commonType":{"typeIdentifier":"t_int24","typeString":"int24"},"id":2813,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2805,"name":"tick","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2792,"src":"8797:4:15","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"commonType":{"typeIdentifier":"t_int24","typeString":"int24"},"id":2812,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_int24","typeString":"int24"},"id":2809,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":2806,"name":"TickMath","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1434,"src":"8806:8:15","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TickMath_$1434_$","typeString":"type(library TickMath)"}},"id":2807,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"MIN_TICK","nodeType":"MemberAccess","referencedDeclaration":907,"src":"8806:17:15","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":2808,"name":"tickSpacing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2794,"src":"8826:11:15","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"src":"8806:31:15","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}}],"id":2810,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"8805:33:15","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":2811,"name":"tickSpacing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2794,"src":"8841:11:15","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"src":"8805:47:15","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"src":"8797:55:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_int24","typeString":"int24"},"id":2829,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2821,"name":"tick","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2792,"src":"8922:4:15","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"commonType":{"typeIdentifier":"t_int24","typeString":"int24"},"id":2828,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_int24","typeString":"int24"},"id":2825,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":2822,"name":"TickMath","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1434,"src":"8931:8:15","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TickMath_$1434_$","typeString":"type(library TickMath)"}},"id":2823,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"MAX_TICK","nodeType":"MemberAccess","referencedDeclaration":912,"src":"8931:17:15","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":2824,"name":"tickSpacing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2794,"src":"8951:11:15","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"src":"8931:31:15","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}}],"id":2826,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"8930:33:15","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":2827,"name":"tickSpacing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2794,"src":"8966:11:15","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"src":"8930:47:15","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"src":"8922:55:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":2868,"nodeType":"Block","src":"9043:300:15","statements":[{"assignments":[2838],"declarations":[{"constant":false,"id":2838,"mutability":"mutable","name":"sqrtRatioX96","nodeType":"VariableDeclaration","scope":2868,"src":"9057:20:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"},"typeName":{"id":2837,"name":"uint160","nodeType":"ElementaryTypeName","src":"9057:7:15","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},"visibility":"internal"}],"id":2843,"initialValue":{"arguments":[{"id":2841,"name":"tick","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2792,"src":"9108:4:15","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int24","typeString":"int24"}],"expression":{"id":2839,"name":"TickMath","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1434,"src":"9080:8:15","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_TickMath_$1434_$","typeString":"type(library TickMath)"}},"id":2840,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getSqrtRatioAtTick","nodeType":"MemberAccess","referencedDeclaration":1294,"src":"9080:27:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int24_$returns$_t_uint160_$","typeString":"function (int24) pure returns (uint160)"}},"id":2842,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9080:33:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},"nodeType":"VariableDeclarationStatement","src":"9057:56:15"},{"condition":{"id":2844,"name":"flipRatio","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2800,"src":"9131:9:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2861,"nodeType":"IfStatement","src":"9127:107:15","trueBody":{"id":2860,"nodeType":"Block","src":"9142:92:15","statements":[{"expression":{"id":2858,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2845,"name":"sqrtRatioX96","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2838,"src":"9160:12:15","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":2855,"name":"sqrtRatioX96","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2838,"src":"9205:12:15","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_rational_6277101735386680763835789423207666416102355444464034512896_by_1","typeString":"int_const 6277...(50 digits omitted)...2896"},"id":2852,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":2850,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9191:1:15","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313932","id":2851,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9196:3:15","typeDescriptions":{"typeIdentifier":"t_rational_192_by_1","typeString":"int_const 192"},"value":"192"},"src":"9191:8:15","typeDescriptions":{"typeIdentifier":"t_rational_6277101735386680763835789423207666416102355444464034512896_by_1","typeString":"int_const 6277...(50 digits omitted)...2896"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_6277101735386680763835789423207666416102355444464034512896_by_1","typeString":"int_const 6277...(50 digits omitted)...2896"}],"id":2849,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9183:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":2848,"name":"uint256","nodeType":"ElementaryTypeName","src":"9183:7:15","typeDescriptions":{}}},"id":2853,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9183:17:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2854,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"div","nodeType":"MemberAccess","referencedDeclaration":1694,"src":"9183:21:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":2856,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9183:35:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2847,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9175:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":2846,"name":"uint160","nodeType":"ElementaryTypeName","src":"9175:7:15","typeDescriptions":{}}},"id":2857,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9175:44:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},"src":"9160:59:15","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},"id":2859,"nodeType":"ExpressionStatement","src":"9160:59:15"}]}},{"expression":{"arguments":[{"id":2863,"name":"sqrtRatioX96","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2838,"src":"9280:12:15","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},{"id":2864,"name":"baseTokenDecimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2796,"src":"9294:17:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":2865,"name":"quoteTokenDecimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2798,"src":"9313:18:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":2862,"name":"fixedPointToDecimalString","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3342,"src":"9254:25:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint160_$_t_uint8_$_t_uint8_$returns$_t_string_memory_ptr_$","typeString":"function (uint160,uint8,uint8) pure returns (string memory)"}},"id":2866,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9254:78:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":2804,"id":2867,"nodeType":"Return","src":"9247:85:15"}]},"id":2869,"nodeType":"IfStatement","src":"8918:425:15","trueBody":{"id":2836,"nodeType":"Block","src":"8979:58:15","statements":[{"expression":{"condition":{"id":2831,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"9000:10:15","subExpression":{"id":2830,"name":"flipRatio","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2800,"src":"9001:9:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"hexValue":"4d494e","id":2833,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9021:5:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_871eebeccaa432de5f38a72c534eb2fa59c2c3b49e3c6629c16c11981ee74f2a","typeString":"literal_string \"MIN\""},"value":"MIN"},"id":2834,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"9000:26:15","trueExpression":{"hexValue":"4d4158","id":2832,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9013:5:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_a42787877dd247913f847bc654d767d1919585674d8f1a26ea00084043233daa","typeString":"literal_string \"MAX\""},"value":"MAX"},"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":2804,"id":2835,"nodeType":"Return","src":"8993:33:15"}]}},"id":2870,"nodeType":"IfStatement","src":"8793:550:15","trueBody":{"id":2820,"nodeType":"Block","src":"8854:58:15","statements":[{"expression":{"condition":{"id":2815,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"8875:10:15","subExpression":{"id":2814,"name":"flipRatio","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2800,"src":"8876:9:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"hexValue":"4d4158","id":2817,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8896:5:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_a42787877dd247913f847bc654d767d1919585674d8f1a26ea00084043233daa","typeString":"literal_string \"MAX\""},"value":"MAX"},"id":2818,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"8875:26:15","trueExpression":{"hexValue":"4d494e","id":2816,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8888:5:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_871eebeccaa432de5f38a72c534eb2fa59c2c3b49e3c6629c16c11981ee74f2a","typeString":"literal_string \"MIN\""},"value":"MIN"},"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":2804,"id":2819,"nodeType":"Return","src":"8868:33:15"}]}}]},"id":2872,"implemented":true,"kind":"function","modifiers":[],"name":"tickToDecimalString","nodeType":"FunctionDefinition","parameters":{"id":2801,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2792,"mutability":"mutable","name":"tick","nodeType":"VariableDeclaration","scope":2872,"src":"8610:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"},"typeName":{"id":2791,"name":"int24","nodeType":"ElementaryTypeName","src":"8610:5:15","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"visibility":"internal"},{"constant":false,"id":2794,"mutability":"mutable","name":"tickSpacing","nodeType":"VariableDeclaration","scope":2872,"src":"8630:17:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"},"typeName":{"id":2793,"name":"int24","nodeType":"ElementaryTypeName","src":"8630:5:15","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"visibility":"internal"},{"constant":false,"id":2796,"mutability":"mutable","name":"baseTokenDecimals","nodeType":"VariableDeclaration","scope":2872,"src":"8657:23:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":2795,"name":"uint8","nodeType":"ElementaryTypeName","src":"8657:5:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":2798,"mutability":"mutable","name":"quoteTokenDecimals","nodeType":"VariableDeclaration","scope":2872,"src":"8690:24:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":2797,"name":"uint8","nodeType":"ElementaryTypeName","src":"8690:5:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":2800,"mutability":"mutable","name":"flipRatio","nodeType":"VariableDeclaration","scope":2872,"src":"8724:14:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2799,"name":"bool","nodeType":"ElementaryTypeName","src":"8724:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"8600:144:15"},"returnParameters":{"id":2804,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2803,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","scope":2872,"src":"8768:13:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":2802,"name":"string","nodeType":"ElementaryTypeName","src":"8768:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"8767:15:15"},"scope":3947,"src":"8572:777:15","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2945,"nodeType":"Block","src":"9445:437:15","statements":[{"assignments":[2884],"declarations":[{"constant":false,"id":2884,"mutability":"mutable","name":"extraDigit","nodeType":"VariableDeclaration","scope":2945,"src":"9455:15:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2883,"name":"bool","nodeType":"ElementaryTypeName","src":"9455:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":2885,"nodeType":"VariableDeclarationStatement","src":"9455:15:15"},{"condition":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":2888,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2886,"name":"digits","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2876,"src":"9484:6:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"35","id":2887,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9493:1:15","typeDescriptions":{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"},"value":"5"},"src":"9484:10:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2903,"nodeType":"IfStatement","src":"9480:80:15","trueBody":{"id":2902,"nodeType":"Block","src":"9496:64:15","statements":[{"expression":{"id":2900,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2889,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2874,"src":"9510:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2897,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":2892,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9529:2:15","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":2895,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2893,"name":"digits","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2876,"src":"9536:6:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"35","id":2894,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9545:1:15","typeDescriptions":{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"},"value":"5"},"src":"9536:10:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"id":2896,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"9535:12:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"9529:18:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":2898,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"9528:20:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":2890,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2874,"src":"9518:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2891,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"div","nodeType":"MemberAccess","referencedDeclaration":1694,"src":"9518:9:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":2899,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9518:31:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9510:39:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2901,"nodeType":"ExpressionStatement","src":"9510:39:15"}]}},{"assignments":[2905],"declarations":[{"constant":false,"id":2905,"mutability":"mutable","name":"roundUp","nodeType":"VariableDeclaration","scope":2945,"src":"9569:12:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2904,"name":"bool","nodeType":"ElementaryTypeName","src":"9569:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":2911,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2910,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2908,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2906,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2874,"src":"9584:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"%","rightExpression":{"hexValue":"3130","id":2907,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9592:2:15","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"src":"9584:10:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"34","id":2909,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9597:1:15","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"9584:14:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"9569:29:15"},{"expression":{"id":2917,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2912,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2874,"src":"9608:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"3130","id":2915,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9626:2:15","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"}],"expression":{"id":2913,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2874,"src":"9616:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2914,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"div","nodeType":"MemberAccess","referencedDeclaration":1694,"src":"9616:9:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":2916,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9616:13:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9608:21:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2918,"nodeType":"ExpressionStatement","src":"9608:21:15"},{"condition":{"id":2919,"name":"roundUp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2905,"src":"9643:7:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2927,"nodeType":"IfStatement","src":"9639:55:15","trueBody":{"id":2926,"nodeType":"Block","src":"9652:42:15","statements":[{"expression":{"id":2924,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2920,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2874,"src":"9666:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2923,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2921,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2874,"src":"9674:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":2922,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9682:1:15","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"9674:9:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9666:17:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2925,"nodeType":"ExpressionStatement","src":"9666:17:15"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2930,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2928,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2874,"src":"9756:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"313030303030","id":2929,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9765:6:15","typeDescriptions":{"typeIdentifier":"t_rational_100000_by_1","typeString":"int_const 100000"},"value":"100000"},"src":"9756:15:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2940,"nodeType":"IfStatement","src":"9752:88:15","trueBody":{"id":2939,"nodeType":"Block","src":"9773:67:15","statements":[{"expression":{"id":2933,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2931,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2874,"src":"9787:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"hexValue":"3130","id":2932,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9796:2:15","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"src":"9787:11:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2934,"nodeType":"ExpressionStatement","src":"9787:11:15"},{"expression":{"id":2937,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2935,"name":"extraDigit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2884,"src":"9812:10:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":2936,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"9825:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"9812:17:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2938,"nodeType":"ExpressionStatement","src":"9812:17:15"}]}},{"expression":{"components":[{"id":2941,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2874,"src":"9857:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":2942,"name":"extraDigit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2884,"src":"9864:10:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":2943,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"9856:19:15","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_bool_$","typeString":"tuple(uint256,bool)"}},"functionReturnParameters":2882,"id":2944,"nodeType":"Return","src":"9849:26:15"}]},"id":2946,"implemented":true,"kind":"function","modifiers":[],"name":"sigfigsRounded","nodeType":"FunctionDefinition","parameters":{"id":2877,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2874,"mutability":"mutable","name":"value","nodeType":"VariableDeclaration","scope":2946,"src":"9379:13:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2873,"name":"uint256","nodeType":"ElementaryTypeName","src":"9379:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2876,"mutability":"mutable","name":"digits","nodeType":"VariableDeclaration","scope":2946,"src":"9394:12:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":2875,"name":"uint8","nodeType":"ElementaryTypeName","src":"9394:5:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"9378:29:15"},"returnParameters":{"id":2882,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2879,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","scope":2946,"src":"9430:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2878,"name":"uint256","nodeType":"ElementaryTypeName","src":"9430:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2881,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","scope":2946,"src":"9439:4:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2880,"name":"bool","nodeType":"ElementaryTypeName","src":"9439:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"9429:15:15"},"scope":3947,"src":"9355:527:15","stateMutability":"pure","virtual":false,"visibility":"private"},{"body":{"id":3057,"nodeType":"Block","src":"10078:826:15","statements":[{"assignments":[2958],"declarations":[{"constant":false,"id":2958,"mutability":"mutable","name":"difference","nodeType":"VariableDeclaration","scope":3057,"src":"10088:18:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2957,"name":"uint256","nodeType":"ElementaryTypeName","src":"10088:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2971,"initialValue":{"arguments":[{"arguments":[{"arguments":[{"id":2967,"name":"quoteTokenDecimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2952,"src":"10150:18:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":2966,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10143:6:15","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":2965,"name":"int256","nodeType":"ElementaryTypeName","src":"10143:6:15","typeDescriptions":{}}},"id":2968,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10143:26:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"arguments":[{"id":2962,"name":"baseTokenDecimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2950,"src":"10120:17:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":2961,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10113:6:15","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":2960,"name":"int256","nodeType":"ElementaryTypeName","src":"10113:6:15","typeDescriptions":{}}},"id":2963,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10113:25:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":2964,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sub","nodeType":"MemberAccess","referencedDeclaration":1927,"src":"10113:29:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_int256_$bound_to$_t_int256_$","typeString":"function (int256,int256) pure returns (int256)"}},"id":2969,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10113:57:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":2959,"name":"abs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3077,"src":"10109:3:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$returns$_t_uint256_$","typeString":"function (int256) pure returns (uint256)"}},"id":2970,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10109:62:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"10088:83:15"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":2978,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2974,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2972,"name":"difference","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2958,"src":"10185:10:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":2973,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10198:1:15","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"10185:14:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2977,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2975,"name":"difference","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2958,"src":"10203:10:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"hexValue":"3138","id":2976,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10217:2:15","typeDescriptions":{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"},"value":"18"},"src":"10203:16:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"10185:34:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":3055,"nodeType":"Block","src":"10829:69:15","statements":[{"expression":{"id":3053,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3048,"name":"adjustedSqrtRatioX96","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2955,"src":"10843:20:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":3051,"name":"sqrtRatioX96","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2948,"src":"10874:12:15","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":3050,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10866:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":3049,"name":"uint256","nodeType":"ElementaryTypeName","src":"10866:7:15","typeDescriptions":{}}},"id":3052,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10866:21:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10843:44:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3054,"nodeType":"ExpressionStatement","src":"10843:44:15"}]},"id":3056,"nodeType":"IfStatement","src":"10181:717:15","trueBody":{"id":3047,"nodeType":"Block","src":"10221:602:15","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":2981,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2979,"name":"baseTokenDecimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2950,"src":"10239:17:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":2980,"name":"quoteTokenDecimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2952,"src":"10259:18:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"10239:38:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":3045,"nodeType":"Block","src":"10549:264:15","statements":[{"expression":{"id":3025,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3014,"name":"adjustedSqrtRatioX96","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2955,"src":"10567:20:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3023,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":3017,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10607:2:15","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"components":[{"arguments":[{"hexValue":"32","id":3020,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10629:1:15","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"}],"expression":{"id":3018,"name":"difference","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2958,"src":"10614:10:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3019,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"div","nodeType":"MemberAccess","referencedDeclaration":1694,"src":"10614:14:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":3021,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10614:17:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":3022,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"10613:19:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10607:25:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":3015,"name":"sqrtRatioX96","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2948,"src":"10590:12:15","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},"id":3016,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"div","nodeType":"MemberAccess","referencedDeclaration":1694,"src":"10590:16:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":3024,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10590:43:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10567:66:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3026,"nodeType":"ExpressionStatement","src":"10567:66:15"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3031,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3029,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3027,"name":"difference","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2958,"src":"10655:10:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"%","rightExpression":{"hexValue":"32","id":3028,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10668:1:15","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"10655:14:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"31","id":3030,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10673:1:15","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"10655:19:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3044,"nodeType":"IfStatement","src":"10651:148:15","trueBody":{"id":3043,"nodeType":"Block","src":"10676:123:15","statements":[{"expression":{"id":3041,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3032,"name":"adjustedSqrtRatioX96","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2955,"src":"10698:20:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":3035,"name":"adjustedSqrtRatioX96","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2955,"src":"10737:20:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"commonType":{"typeIdentifier":"t_rational_340282366920938463463374607431768211456_by_1","typeString":"int_const 3402...(31 digits omitted)...1456"},"id":3038,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":3036,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10759:1:15","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313238","id":3037,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10764:3:15","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"10759:8:15","typeDescriptions":{"typeIdentifier":"t_rational_340282366920938463463374607431768211456_by_1","typeString":"int_const 3402...(31 digits omitted)...1456"}},{"id":3039,"name":"sqrt10X128","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2277,"src":"10769:10:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_340282366920938463463374607431768211456_by_1","typeString":"int_const 3402...(31 digits omitted)...1456"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":3033,"name":"FullMath","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":899,"src":"10721:8:15","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FullMath_$899_$","typeString":"type(library FullMath)"}},"id":3034,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"mulDiv","nodeType":"MemberAccess","referencedDeclaration":855,"src":"10721:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256) pure returns (uint256)"}},"id":3040,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10721:59:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10698:82:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3042,"nodeType":"ExpressionStatement","src":"10698:82:15"}]}}]},"id":3046,"nodeType":"IfStatement","src":"10235:578:15","trueBody":{"id":3013,"nodeType":"Block","src":"10279:264:15","statements":[{"expression":{"id":2993,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2982,"name":"adjustedSqrtRatioX96","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2955,"src":"10297:20:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2991,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":2985,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10337:2:15","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"components":[{"arguments":[{"hexValue":"32","id":2988,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10359:1:15","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"}],"expression":{"id":2986,"name":"difference","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2958,"src":"10344:10:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2987,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"div","nodeType":"MemberAccess","referencedDeclaration":1694,"src":"10344:14:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":2989,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10344:17:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":2990,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"10343:19:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10337:25:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":2983,"name":"sqrtRatioX96","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2948,"src":"10320:12:15","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},"id":2984,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"mul","nodeType":"MemberAccess","referencedDeclaration":1672,"src":"10320:16:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":2992,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10320:43:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10297:66:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2994,"nodeType":"ExpressionStatement","src":"10297:66:15"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2999,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2997,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2995,"name":"difference","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2958,"src":"10385:10:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"%","rightExpression":{"hexValue":"32","id":2996,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10398:1:15","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"10385:14:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"31","id":2998,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10403:1:15","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"10385:19:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3012,"nodeType":"IfStatement","src":"10381:148:15","trueBody":{"id":3011,"nodeType":"Block","src":"10406:123:15","statements":[{"expression":{"id":3009,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3000,"name":"adjustedSqrtRatioX96","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2955,"src":"10428:20:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":3003,"name":"adjustedSqrtRatioX96","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2955,"src":"10467:20:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":3004,"name":"sqrt10X128","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2277,"src":"10489:10:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"commonType":{"typeIdentifier":"t_rational_340282366920938463463374607431768211456_by_1","typeString":"int_const 3402...(31 digits omitted)...1456"},"id":3007,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":3005,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10501:1:15","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313238","id":3006,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10506:3:15","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"10501:8:15","typeDescriptions":{"typeIdentifier":"t_rational_340282366920938463463374607431768211456_by_1","typeString":"int_const 3402...(31 digits omitted)...1456"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_340282366920938463463374607431768211456_by_1","typeString":"int_const 3402...(31 digits omitted)...1456"}],"expression":{"id":3001,"name":"FullMath","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":899,"src":"10451:8:15","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FullMath_$899_$","typeString":"type(library FullMath)"}},"id":3002,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"mulDiv","nodeType":"MemberAccess","referencedDeclaration":855,"src":"10451:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256) pure returns (uint256)"}},"id":3008,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10451:59:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10428:82:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3010,"nodeType":"ExpressionStatement","src":"10428:82:15"}]}}]}}]}}]},"id":3058,"implemented":true,"kind":"function","modifiers":[],"name":"adjustForDecimalPrecision","nodeType":"FunctionDefinition","parameters":{"id":2953,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2948,"mutability":"mutable","name":"sqrtRatioX96","nodeType":"VariableDeclaration","scope":3058,"src":"9932:20:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"},"typeName":{"id":2947,"name":"uint160","nodeType":"ElementaryTypeName","src":"9932:7:15","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},"visibility":"internal"},{"constant":false,"id":2950,"mutability":"mutable","name":"baseTokenDecimals","nodeType":"VariableDeclaration","scope":3058,"src":"9962:23:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":2949,"name":"uint8","nodeType":"ElementaryTypeName","src":"9962:5:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":2952,"mutability":"mutable","name":"quoteTokenDecimals","nodeType":"VariableDeclaration","scope":3058,"src":"9995:24:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":2951,"name":"uint8","nodeType":"ElementaryTypeName","src":"9995:5:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"9922:103:15"},"returnParameters":{"id":2956,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2955,"mutability":"mutable","name":"adjustedSqrtRatioX96","nodeType":"VariableDeclaration","scope":3058,"src":"10048:28:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2954,"name":"uint256","nodeType":"ElementaryTypeName","src":"10048:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10047:30:15"},"scope":3947,"src":"9888:1016:15","stateMutability":"pure","virtual":false,"visibility":"private"},{"body":{"id":3076,"nodeType":"Block","src":"10964:48:15","statements":[{"expression":{"arguments":[{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":3069,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3067,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3060,"src":"10989:1:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"hexValue":"30","id":3068,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10994:1:15","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"10989:6:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":3072,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"-","prefix":true,"src":"11002:2:15","subExpression":{"id":3071,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3060,"src":"11003:1:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":3073,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"10989:15:15","trueExpression":{"id":3070,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3060,"src":"10998:1:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":3066,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10981:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":3065,"name":"uint256","nodeType":"ElementaryTypeName","src":"10981:7:15","typeDescriptions":{}}},"id":3074,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10981:24:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3064,"id":3075,"nodeType":"Return","src":"10974:31:15"}]},"id":3077,"implemented":true,"kind":"function","modifiers":[],"name":"abs","nodeType":"FunctionDefinition","parameters":{"id":3061,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3060,"mutability":"mutable","name":"x","nodeType":"VariableDeclaration","scope":3077,"src":"10923:8:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":3059,"name":"int256","nodeType":"ElementaryTypeName","src":"10923:6:15","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"10922:10:15"},"returnParameters":{"id":3064,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3063,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","scope":3077,"src":"10955:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3062,"name":"uint256","nodeType":"ElementaryTypeName","src":"10955:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10954:9:15"},"scope":3947,"src":"10910:102:15","stateMutability":"pure","virtual":false,"visibility":"private"},{"body":{"id":3341,"nodeType":"Block","src":"11326:2093:15","statements":[{"assignments":[3089],"declarations":[{"constant":false,"id":3089,"mutability":"mutable","name":"adjustedSqrtRatioX96","nodeType":"VariableDeclaration","scope":3341,"src":"11336:28:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3088,"name":"uint256","nodeType":"ElementaryTypeName","src":"11336:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3095,"initialValue":{"arguments":[{"id":3091,"name":"sqrtRatioX96","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3079,"src":"11393:12:15","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},{"id":3092,"name":"baseTokenDecimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3081,"src":"11407:17:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":3093,"name":"quoteTokenDecimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3083,"src":"11426:18:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":3090,"name":"adjustForDecimalPrecision","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3058,"src":"11367:25:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint160_$_t_uint8_$_t_uint8_$returns$_t_uint256_$","typeString":"function (uint160,uint8,uint8) pure returns (uint256)"}},"id":3094,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11367:78:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"11336:109:15"},{"assignments":[3097],"declarations":[{"constant":false,"id":3097,"mutability":"mutable","name":"value","nodeType":"VariableDeclaration","scope":3341,"src":"11455:13:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3096,"name":"uint256","nodeType":"ElementaryTypeName","src":"11455:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3106,"initialValue":{"arguments":[{"id":3100,"name":"adjustedSqrtRatioX96","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3089,"src":"11487:20:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":3101,"name":"adjustedSqrtRatioX96","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3089,"src":"11509:20:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"commonType":{"typeIdentifier":"t_rational_18446744073709551616_by_1","typeString":"int_const 18446744073709551616"},"id":3104,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":3102,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11531:1:15","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"3634","id":3103,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11536:2:15","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"11531:7:15","typeDescriptions":{"typeIdentifier":"t_rational_18446744073709551616_by_1","typeString":"int_const 18446744073709551616"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_18446744073709551616_by_1","typeString":"int_const 18446744073709551616"}],"expression":{"id":3098,"name":"FullMath","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":899,"src":"11471:8:15","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FullMath_$899_$","typeString":"type(library FullMath)"}},"id":3099,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"mulDiv","nodeType":"MemberAccess","referencedDeclaration":855,"src":"11471:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256) pure returns (uint256)"}},"id":3105,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11471:68:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"11455:84:15"},{"assignments":[3108],"declarations":[{"constant":false,"id":3108,"mutability":"mutable","name":"priceBelow1","nodeType":"VariableDeclaration","scope":3341,"src":"11550:16:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3107,"name":"bool","nodeType":"ElementaryTypeName","src":"11550:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":3114,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3113,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3109,"name":"adjustedSqrtRatioX96","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3089,"src":"11569:20:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"commonType":{"typeIdentifier":"t_rational_79228162514264337593543950336_by_1","typeString":"int_const 79228162514264337593543950336"},"id":3112,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":3110,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11592:1:15","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3936","id":3111,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11597:2:15","typeDescriptions":{"typeIdentifier":"t_rational_96_by_1","typeString":"int_const 96"},"value":"96"},"src":"11592:7:15","typeDescriptions":{"typeIdentifier":"t_rational_79228162514264337593543950336_by_1","typeString":"int_const 79228162514264337593543950336"}},"src":"11569:30:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"11550:49:15"},{"condition":{"id":3115,"name":"priceBelow1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3108,"src":"11613:11:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":3143,"nodeType":"Block","src":"11817:149:15","statements":[{"expression":{"id":3141,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3130,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3097,"src":"11906:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":3133,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3097,"src":"11930:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"commonType":{"typeIdentifier":"t_rational_100000_by_1","typeString":"int_const 100000"},"id":3136,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":3134,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11937:2:15","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"35","id":3135,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11943:1:15","typeDescriptions":{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"},"value":"5"},"src":"11937:7:15","typeDescriptions":{"typeIdentifier":"t_rational_100000_by_1","typeString":"int_const 100000"}},{"commonType":{"typeIdentifier":"t_rational_340282366920938463463374607431768211456_by_1","typeString":"int_const 3402...(31 digits omitted)...1456"},"id":3139,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":3137,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11946:1:15","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313238","id":3138,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11951:3:15","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"11946:8:15","typeDescriptions":{"typeIdentifier":"t_rational_340282366920938463463374607431768211456_by_1","typeString":"int_const 3402...(31 digits omitted)...1456"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_100000_by_1","typeString":"int_const 100000"},{"typeIdentifier":"t_rational_340282366920938463463374607431768211456_by_1","typeString":"int_const 3402...(31 digits omitted)...1456"}],"expression":{"id":3131,"name":"FullMath","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":899,"src":"11914:8:15","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FullMath_$899_$","typeString":"type(library FullMath)"}},"id":3132,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"mulDiv","nodeType":"MemberAccess","referencedDeclaration":855,"src":"11914:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256) pure returns (uint256)"}},"id":3140,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11914:41:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11906:49:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3142,"nodeType":"ExpressionStatement","src":"11906:49:15"}]},"id":3144,"nodeType":"IfStatement","src":"11609:357:15","trueBody":{"id":3129,"nodeType":"Block","src":"11626:185:15","statements":[{"expression":{"id":3127,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3116,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3097,"src":"11750:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":3119,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3097,"src":"11774:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"commonType":{"typeIdentifier":"t_rational_100000000000000000000000000000000000000000000_by_1","typeString":"int_const 1000...(37 digits omitted)...0000"},"id":3122,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":3120,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11781:2:15","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3434","id":3121,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11787:2:15","typeDescriptions":{"typeIdentifier":"t_rational_44_by_1","typeString":"int_const 44"},"value":"44"},"src":"11781:8:15","typeDescriptions":{"typeIdentifier":"t_rational_100000000000000000000000000000000000000000000_by_1","typeString":"int_const 1000...(37 digits omitted)...0000"}},{"commonType":{"typeIdentifier":"t_rational_340282366920938463463374607431768211456_by_1","typeString":"int_const 3402...(31 digits omitted)...1456"},"id":3125,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":3123,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11791:1:15","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313238","id":3124,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11796:3:15","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"11791:8:15","typeDescriptions":{"typeIdentifier":"t_rational_340282366920938463463374607431768211456_by_1","typeString":"int_const 3402...(31 digits omitted)...1456"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_100000000000000000000000000000000000000000000_by_1","typeString":"int_const 1000...(37 digits omitted)...0000"},{"typeIdentifier":"t_rational_340282366920938463463374607431768211456_by_1","typeString":"int_const 3402...(31 digits omitted)...1456"}],"expression":{"id":3117,"name":"FullMath","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":899,"src":"11758:8:15","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FullMath_$899_$","typeString":"type(library FullMath)"}},"id":3118,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"mulDiv","nodeType":"MemberAccess","referencedDeclaration":855,"src":"11758:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256) pure returns (uint256)"}},"id":3126,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11758:42:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11750:50:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3128,"nodeType":"ExpressionStatement","src":"11750:50:15"}]}},{"assignments":[3146],"declarations":[{"constant":false,"id":3146,"mutability":"mutable","name":"temp","nodeType":"VariableDeclaration","scope":3341,"src":"12003:12:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3145,"name":"uint256","nodeType":"ElementaryTypeName","src":"12003:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3148,"initialValue":{"id":3147,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3097,"src":"12018:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"12003:20:15"},{"assignments":[3150],"declarations":[{"constant":false,"id":3150,"mutability":"mutable","name":"digits","nodeType":"VariableDeclaration","scope":3341,"src":"12033:12:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":3149,"name":"uint8","nodeType":"ElementaryTypeName","src":"12033:5:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"id":3151,"nodeType":"VariableDeclarationStatement","src":"12033:12:15"},{"body":{"id":3162,"nodeType":"Block","src":"12073:57:15","statements":[{"expression":{"id":3156,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"12087:8:15","subExpression":{"id":3155,"name":"digits","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3150,"src":"12087:6:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":3157,"nodeType":"ExpressionStatement","src":"12087:8:15"},{"expression":{"id":3160,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3158,"name":"temp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3146,"src":"12109:4:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"hexValue":"3130","id":3159,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12117:2:15","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"src":"12109:10:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3161,"nodeType":"ExpressionStatement","src":"12109:10:15"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3154,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3152,"name":"temp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3146,"src":"12062:4:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":3153,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12070:1:15","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"12062:9:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3163,"nodeType":"WhileStatement","src":"12055:75:15"},{"expression":{"id":3168,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3164,"name":"digits","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3150,"src":"12192:6:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":3167,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3165,"name":"digits","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3150,"src":"12201:6:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":3166,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12210:1:15","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"12201:10:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"12192:19:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":3169,"nodeType":"ExpressionStatement","src":"12192:19:15"},{"assignments":[3171,3173],"declarations":[{"constant":false,"id":3171,"mutability":"mutable","name":"sigfigs","nodeType":"VariableDeclaration","scope":3341,"src":"12251:15:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3170,"name":"uint256","nodeType":"ElementaryTypeName","src":"12251:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3173,"mutability":"mutable","name":"extraDigit","nodeType":"VariableDeclaration","scope":3341,"src":"12268:15:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3172,"name":"bool","nodeType":"ElementaryTypeName","src":"12268:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":3178,"initialValue":{"arguments":[{"id":3175,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3097,"src":"12302:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":3176,"name":"digits","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3150,"src":"12309:6:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":3174,"name":"sigfigsRounded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2946,"src":"12287:14:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint8_$returns$_t_uint256_$_t_bool_$","typeString":"function (uint256,uint8) pure returns (uint256,bool)"}},"id":3177,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12287:29:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_bool_$","typeString":"tuple(uint256,bool)"}},"nodeType":"VariableDeclarationStatement","src":"12250:66:15"},{"condition":{"id":3179,"name":"extraDigit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3173,"src":"12330:10:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3184,"nodeType":"IfStatement","src":"12326:49:15","trueBody":{"id":3183,"nodeType":"Block","src":"12342:33:15","statements":[{"expression":{"id":3181,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"12356:8:15","subExpression":{"id":3180,"name":"digits","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3150,"src":"12356:6:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":3182,"nodeType":"ExpressionStatement","src":"12356:8:15"}]}},{"assignments":[3186],"declarations":[{"constant":false,"id":3186,"mutability":"mutable","name":"params","nodeType":"VariableDeclaration","scope":3341,"src":"12385:33:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_DecimalStringParams_$2656_memory_ptr","typeString":"struct NFTDescriptor.DecimalStringParams"},"typeName":{"id":3185,"name":"DecimalStringParams","nodeType":"UserDefinedTypeName","referencedDeclaration":2656,"src":"12385:19:15","typeDescriptions":{"typeIdentifier":"t_struct$_DecimalStringParams_$2656_storage_ptr","typeString":"struct NFTDescriptor.DecimalStringParams"}},"visibility":"internal"}],"id":3187,"nodeType":"VariableDeclarationStatement","src":"12385:33:15"},{"condition":{"id":3188,"name":"priceBelow1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3108,"src":"12432:11:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":3250,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3248,"name":"digits","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3150,"src":"12791:6:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"hexValue":"39","id":3249,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12801:1:15","typeDescriptions":{"typeIdentifier":"t_rational_9_by_1","typeString":"int_const 9"},"value":"9"},"src":"12791:11:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":3316,"nodeType":"Block","src":"13065:189:15","statements":[{"expression":{"id":3293,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":3289,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3186,"src":"13121:6:15","typeDescriptions":{"typeIdentifier":"t_struct$_DecimalStringParams_$2656_memory_ptr","typeString":"struct NFTDescriptor.DecimalStringParams memory"}},"id":3291,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"bufferLength","nodeType":"MemberAccess","referencedDeclaration":2643,"src":"13121:19:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"36","id":3292,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13143:1:15","typeDescriptions":{"typeIdentifier":"t_rational_6_by_1","typeString":"int_const 6"},"value":"6"},"src":"13121:23:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":3294,"nodeType":"ExpressionStatement","src":"13121:23:15"},{"expression":{"id":3299,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":3295,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3186,"src":"13158:6:15","typeDescriptions":{"typeIdentifier":"t_struct$_DecimalStringParams_$2656_memory_ptr","typeString":"struct NFTDescriptor.DecimalStringParams memory"}},"id":3297,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"sigfigIndex","nodeType":"MemberAccess","referencedDeclaration":2645,"src":"13158:18:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"35","id":3298,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13179:1:15","typeDescriptions":{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"},"value":"5"},"src":"13158:22:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":3300,"nodeType":"ExpressionStatement","src":"13158:22:15"},{"expression":{"id":3314,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":3301,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3186,"src":"13194:6:15","typeDescriptions":{"typeIdentifier":"t_struct$_DecimalStringParams_$2656_memory_ptr","typeString":"struct NFTDescriptor.DecimalStringParams memory"}},"id":3303,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"decimalIndex","nodeType":"MemberAccess","referencedDeclaration":2647,"src":"13194:19:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"hexValue":"31","id":3311,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13240:1:15","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"expression":{"arguments":[{"hexValue":"35","id":3308,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13233:1:15","typeDescriptions":{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"},"value":"5"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"}],"expression":{"id":3306,"name":"digits","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3150,"src":"13222:6:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":3307,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sub","nodeType":"MemberAccess","referencedDeclaration":1638,"src":"13222:10:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":3309,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13222:13:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3310,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"add","nodeType":"MemberAccess","referencedDeclaration":1616,"src":"13222:17:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":3312,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13222:20:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3305,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13216:5:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":3304,"name":"uint8","nodeType":"ElementaryTypeName","src":"13216:5:15","typeDescriptions":{}}},"id":3313,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13216:27:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"13194:49:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":3315,"nodeType":"ExpressionStatement","src":"13194:49:15"}]},"id":3317,"nodeType":"IfStatement","src":"12787:467:15","trueBody":{"id":3288,"nodeType":"Block","src":"12804:255:15","statements":[{"expression":{"id":3261,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":3251,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3186,"src":"12860:6:15","typeDescriptions":{"typeIdentifier":"t_struct$_DecimalStringParams_$2656_memory_ptr","typeString":"struct NFTDescriptor.DecimalStringParams memory"}},"id":3253,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"bufferLength","nodeType":"MemberAccess","referencedDeclaration":2643,"src":"12860:19:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"hexValue":"34","id":3258,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12899:1:15","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"}],"expression":{"id":3256,"name":"digits","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3150,"src":"12888:6:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":3257,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sub","nodeType":"MemberAccess","referencedDeclaration":1638,"src":"12888:10:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":3259,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12888:13:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3255,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12882:5:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":3254,"name":"uint8","nodeType":"ElementaryTypeName","src":"12882:5:15","typeDescriptions":{}}},"id":3260,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12882:20:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"12860:42:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":3262,"nodeType":"ExpressionStatement","src":"12860:42:15"},{"expression":{"id":3267,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":3263,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3186,"src":"12916:6:15","typeDescriptions":{"typeIdentifier":"t_struct$_DecimalStringParams_$2656_memory_ptr","typeString":"struct NFTDescriptor.DecimalStringParams memory"}},"id":3265,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"zerosStartIndex","nodeType":"MemberAccess","referencedDeclaration":2649,"src":"12916:22:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"35","id":3266,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12941:1:15","typeDescriptions":{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"},"value":"5"},"src":"12916:26:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":3268,"nodeType":"ExpressionStatement","src":"12916:26:15"},{"expression":{"id":3280,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":3269,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3186,"src":"12956:6:15","typeDescriptions":{"typeIdentifier":"t_struct$_DecimalStringParams_$2656_memory_ptr","typeString":"struct NFTDescriptor.DecimalStringParams memory"}},"id":3271,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"zerosEndIndex","nodeType":"MemberAccess","referencedDeclaration":2651,"src":"12956:20:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"hexValue":"31","id":3277,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13009:1:15","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"expression":{"expression":{"id":3274,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3186,"src":"12985:6:15","typeDescriptions":{"typeIdentifier":"t_struct$_DecimalStringParams_$2656_memory_ptr","typeString":"struct NFTDescriptor.DecimalStringParams memory"}},"id":3275,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"bufferLength","nodeType":"MemberAccess","referencedDeclaration":2643,"src":"12985:19:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":3276,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sub","nodeType":"MemberAccess","referencedDeclaration":1638,"src":"12985:23:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":3278,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12985:26:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3273,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12979:5:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":3272,"name":"uint8","nodeType":"ElementaryTypeName","src":"12979:5:15","typeDescriptions":{}}},"id":3279,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12979:33:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"12956:56:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":3281,"nodeType":"ExpressionStatement","src":"12956:56:15"},{"expression":{"id":3286,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":3282,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3186,"src":"13026:6:15","typeDescriptions":{"typeIdentifier":"t_struct$_DecimalStringParams_$2656_memory_ptr","typeString":"struct NFTDescriptor.DecimalStringParams memory"}},"id":3284,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"sigfigIndex","nodeType":"MemberAccess","referencedDeclaration":2645,"src":"13026:18:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"34","id":3285,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13047:1:15","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"13026:22:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":3287,"nodeType":"ExpressionStatement","src":"13026:22:15"}]}},"id":3318,"nodeType":"IfStatement","src":"12428:826:15","trueBody":{"id":3247,"nodeType":"Block","src":"12445:336:15","statements":[{"expression":{"id":3208,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":3189,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3186,"src":"12524:6:15","typeDescriptions":{"typeIdentifier":"t_struct$_DecimalStringParams_$2656_memory_ptr","typeString":"struct NFTDescriptor.DecimalStringParams memory"}},"id":3191,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"bufferLength","nodeType":"MemberAccess","referencedDeclaration":2643,"src":"12524:19:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"arguments":[{"id":3204,"name":"digits","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3150,"src":"12579:6:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"expression":{"arguments":[{"hexValue":"3433","id":3201,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12571:2:15","typeDescriptions":{"typeIdentifier":"t_rational_43_by_1","typeString":"int_const 43"},"value":"43"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_43_by_1","typeString":"int_const 43"}],"id":3200,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12565:5:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":3199,"name":"uint8","nodeType":"ElementaryTypeName","src":"12565:5:15","typeDescriptions":{}}},"id":3202,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12565:9:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":3203,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sub","nodeType":"MemberAccess","referencedDeclaration":1638,"src":"12565:13:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":3205,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12565:21:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"hexValue":"37","id":3196,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12558:1:15","typeDescriptions":{"typeIdentifier":"t_rational_7_by_1","typeString":"int_const 7"},"value":"7"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_7_by_1","typeString":"int_const 7"}],"id":3195,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12552:5:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":3194,"name":"uint8","nodeType":"ElementaryTypeName","src":"12552:5:15","typeDescriptions":{}}},"id":3197,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12552:8:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":3198,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"add","nodeType":"MemberAccess","referencedDeclaration":1616,"src":"12552:12:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":3206,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12552:35:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3193,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12546:5:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":3192,"name":"uint8","nodeType":"ElementaryTypeName","src":"12546:5:15","typeDescriptions":{}}},"id":3207,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12546:42:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"12524:64:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":3209,"nodeType":"ExpressionStatement","src":"12524:64:15"},{"expression":{"id":3214,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":3210,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3186,"src":"12602:6:15","typeDescriptions":{"typeIdentifier":"t_struct$_DecimalStringParams_$2656_memory_ptr","typeString":"struct NFTDescriptor.DecimalStringParams memory"}},"id":3212,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"zerosStartIndex","nodeType":"MemberAccess","referencedDeclaration":2649,"src":"12602:22:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"32","id":3213,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12627:1:15","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"12602:26:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":3215,"nodeType":"ExpressionStatement","src":"12602:26:15"},{"expression":{"id":3232,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":3216,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3186,"src":"12642:6:15","typeDescriptions":{"typeIdentifier":"t_struct$_DecimalStringParams_$2656_memory_ptr","typeString":"struct NFTDescriptor.DecimalStringParams memory"}},"id":3218,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"zerosEndIndex","nodeType":"MemberAccess","referencedDeclaration":2651,"src":"12642:20:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"hexValue":"31","id":3229,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12699:1:15","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"expression":{"arguments":[{"id":3226,"name":"digits","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3150,"src":"12687:6:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"expression":{"arguments":[{"hexValue":"3433","id":3223,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12679:2:15","typeDescriptions":{"typeIdentifier":"t_rational_43_by_1","typeString":"int_const 43"},"value":"43"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_43_by_1","typeString":"int_const 43"}],"id":3222,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12671:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":3221,"name":"uint256","nodeType":"ElementaryTypeName","src":"12671:7:15","typeDescriptions":{}}},"id":3224,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12671:11:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3225,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sub","nodeType":"MemberAccess","referencedDeclaration":1638,"src":"12671:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":3227,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12671:23:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3228,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"add","nodeType":"MemberAccess","referencedDeclaration":1616,"src":"12671:27:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":3230,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12671:30:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3220,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12665:5:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":3219,"name":"uint8","nodeType":"ElementaryTypeName","src":"12665:5:15","typeDescriptions":{}}},"id":3231,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12665:37:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"12642:60:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":3233,"nodeType":"ExpressionStatement","src":"12642:60:15"},{"expression":{"id":3245,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":3234,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3186,"src":"12716:6:15","typeDescriptions":{"typeIdentifier":"t_struct$_DecimalStringParams_$2656_memory_ptr","typeString":"struct NFTDescriptor.DecimalStringParams memory"}},"id":3236,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"sigfigIndex","nodeType":"MemberAccess","referencedDeclaration":2645,"src":"12716:18:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"hexValue":"31","id":3242,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12767:1:15","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"expression":{"expression":{"id":3239,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3186,"src":"12743:6:15","typeDescriptions":{"typeIdentifier":"t_struct$_DecimalStringParams_$2656_memory_ptr","typeString":"struct NFTDescriptor.DecimalStringParams memory"}},"id":3240,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"bufferLength","nodeType":"MemberAccess","referencedDeclaration":2643,"src":"12743:19:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":3241,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sub","nodeType":"MemberAccess","referencedDeclaration":1638,"src":"12743:23:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":3243,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12743:26:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3238,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12737:5:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":3237,"name":"uint8","nodeType":"ElementaryTypeName","src":"12737:5:15","typeDescriptions":{}}},"id":3244,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12737:33:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"12716:54:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":3246,"nodeType":"ExpressionStatement","src":"12716:54:15"}]}},{"expression":{"id":3323,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":3319,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3186,"src":"13263:6:15","typeDescriptions":{"typeIdentifier":"t_struct$_DecimalStringParams_$2656_memory_ptr","typeString":"struct NFTDescriptor.DecimalStringParams memory"}},"id":3321,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"sigfigs","nodeType":"MemberAccess","referencedDeclaration":2641,"src":"13263:14:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":3322,"name":"sigfigs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3171,"src":"13280:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13263:24:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3324,"nodeType":"ExpressionStatement","src":"13263:24:15"},{"expression":{"id":3329,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":3325,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3186,"src":"13297:6:15","typeDescriptions":{"typeIdentifier":"t_struct$_DecimalStringParams_$2656_memory_ptr","typeString":"struct NFTDescriptor.DecimalStringParams memory"}},"id":3327,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"isLessThanOne","nodeType":"MemberAccess","referencedDeclaration":2653,"src":"13297:20:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":3328,"name":"priceBelow1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3108,"src":"13320:11:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"13297:34:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3330,"nodeType":"ExpressionStatement","src":"13297:34:15"},{"expression":{"id":3335,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":3331,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3186,"src":"13341:6:15","typeDescriptions":{"typeIdentifier":"t_struct$_DecimalStringParams_$2656_memory_ptr","typeString":"struct NFTDescriptor.DecimalStringParams memory"}},"id":3333,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"isPercent","nodeType":"MemberAccess","referencedDeclaration":2655,"src":"13341:16:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":3334,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"13360:5:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"13341:24:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3336,"nodeType":"ExpressionStatement","src":"13341:24:15"},{"expression":{"arguments":[{"id":3338,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3186,"src":"13405:6:15","typeDescriptions":{"typeIdentifier":"t_struct$_DecimalStringParams_$2656_memory_ptr","typeString":"struct NFTDescriptor.DecimalStringParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_DecimalStringParams_$2656_memory_ptr","typeString":"struct NFTDescriptor.DecimalStringParams memory"}],"id":3337,"name":"generateDecimalString","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2790,"src":"13383:21:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_DecimalStringParams_$2656_memory_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (struct NFTDescriptor.DecimalStringParams memory) pure returns (string memory)"}},"id":3339,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13383:29:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":3087,"id":3340,"nodeType":"Return","src":"13376:36:15"}]},"id":3342,"implemented":true,"kind":"function","modifiers":[],"name":"fixedPointToDecimalString","nodeType":"FunctionDefinition","parameters":{"id":3084,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3079,"mutability":"mutable","name":"sqrtRatioX96","nodeType":"VariableDeclaration","scope":3342,"src":"11194:20:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"},"typeName":{"id":3078,"name":"uint160","nodeType":"ElementaryTypeName","src":"11194:7:15","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},"visibility":"internal"},{"constant":false,"id":3081,"mutability":"mutable","name":"baseTokenDecimals","nodeType":"VariableDeclaration","scope":3342,"src":"11224:23:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":3080,"name":"uint8","nodeType":"ElementaryTypeName","src":"11224:5:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":3083,"mutability":"mutable","name":"quoteTokenDecimals","nodeType":"VariableDeclaration","scope":3342,"src":"11257:24:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":3082,"name":"uint8","nodeType":"ElementaryTypeName","src":"11257:5:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"11184:103:15"},"returnParameters":{"id":3087,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3086,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","scope":3342,"src":"11311:13:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":3085,"name":"string","nodeType":"ElementaryTypeName","src":"11311:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"11310:15:15"},"scope":3947,"src":"11150:2269:15","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3613,"nodeType":"Block","src":"13599:1727:15","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint24","typeString":"uint24"},"id":3351,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3349,"name":"fee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3344,"src":"13613:3:15","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":3350,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13620:1:15","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"13613:8:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3355,"nodeType":"IfStatement","src":"13609:50:15","trueBody":{"id":3354,"nodeType":"Block","src":"13623:36:15","statements":[{"expression":{"hexValue":"3025","id":3352,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13644:4:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_a7ef1a83e8174e17057da195644760ff4d11bbec8ce4f147d9d209eec4ba0d01","typeString":"literal_string \"0%\""},"value":"0%"},"functionReturnParameters":3348,"id":3353,"nodeType":"Return","src":"13637:11:15"}]}},{"assignments":[3357],"declarations":[{"constant":false,"id":3357,"mutability":"mutable","name":"temp","nodeType":"VariableDeclaration","scope":3613,"src":"13668:11:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"},"typeName":{"id":3356,"name":"uint24","nodeType":"ElementaryTypeName","src":"13668:6:15","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},"visibility":"internal"}],"id":3359,"initialValue":{"id":3358,"name":"fee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3344,"src":"13682:3:15","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},"nodeType":"VariableDeclarationStatement","src":"13668:17:15"},{"assignments":[3361],"declarations":[{"constant":false,"id":3361,"mutability":"mutable","name":"digits","nodeType":"VariableDeclaration","scope":3613,"src":"13695:14:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3360,"name":"uint256","nodeType":"ElementaryTypeName","src":"13695:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3362,"nodeType":"VariableDeclarationStatement","src":"13695:14:15"},{"assignments":[3364],"declarations":[{"constant":false,"id":3364,"mutability":"mutable","name":"numSigfigs","nodeType":"VariableDeclaration","scope":3613,"src":"13719:16:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":3363,"name":"uint8","nodeType":"ElementaryTypeName","src":"13719:5:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"id":3365,"nodeType":"VariableDeclarationStatement","src":"13719:16:15"},{"body":{"id":3394,"nodeType":"Block","src":"13763:277:15","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":3371,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3369,"name":"numSigfigs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3364,"src":"13781:10:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":3370,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13794:1:15","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"13781:14:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint24","typeString":"uint24"},"id":3380,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint24","typeString":"uint24"},"id":3378,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3376,"name":"temp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3357,"src":"13923:4:15","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},"nodeType":"BinaryOperation","operator":"%","rightExpression":{"hexValue":"3130","id":3377,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13930:2:15","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"src":"13923:9:15","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":3379,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13936:1:15","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"13923:14:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3385,"nodeType":"IfStatement","src":"13919:65:15","trueBody":{"id":3384,"nodeType":"Block","src":"13939:45:15","statements":[{"expression":{"id":3382,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"13957:12:15","subExpression":{"id":3381,"name":"numSigfigs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3364,"src":"13957:10:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":3383,"nodeType":"ExpressionStatement","src":"13957:12:15"}]}},"id":3386,"nodeType":"IfStatement","src":"13777:207:15","trueBody":{"id":3375,"nodeType":"Block","src":"13797:116:15","statements":[{"expression":{"id":3373,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"13886:12:15","subExpression":{"id":3372,"name":"numSigfigs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3364,"src":"13886:10:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":3374,"nodeType":"ExpressionStatement","src":"13886:12:15"}]}},{"expression":{"id":3388,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"13997:8:15","subExpression":{"id":3387,"name":"digits","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3361,"src":"13997:6:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3389,"nodeType":"ExpressionStatement","src":"13997:8:15"},{"expression":{"id":3392,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3390,"name":"temp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3357,"src":"14019:4:15","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"hexValue":"3130","id":3391,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14027:2:15","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"src":"14019:10:15","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},"id":3393,"nodeType":"ExpressionStatement","src":"14019:10:15"}]},"condition":{"commonType":{"typeIdentifier":"t_uint24","typeString":"uint24"},"id":3368,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3366,"name":"temp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3357,"src":"13752:4:15","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":3367,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13760:1:15","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"13752:9:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3395,"nodeType":"WhileStatement","src":"13745:295:15"},{"assignments":[3397],"declarations":[{"constant":false,"id":3397,"mutability":"mutable","name":"params","nodeType":"VariableDeclaration","scope":3613,"src":"14050:33:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_DecimalStringParams_$2656_memory_ptr","typeString":"struct NFTDescriptor.DecimalStringParams"},"typeName":{"id":3396,"name":"DecimalStringParams","nodeType":"UserDefinedTypeName","referencedDeclaration":2656,"src":"14050:19:15","typeDescriptions":{"typeIdentifier":"t_struct$_DecimalStringParams_$2656_storage_ptr","typeString":"struct NFTDescriptor.DecimalStringParams"}},"visibility":"internal"}],"id":3398,"nodeType":"VariableDeclarationStatement","src":"14050:33:15"},{"assignments":[3400],"declarations":[{"constant":false,"id":3400,"mutability":"mutable","name":"nZeros","nodeType":"VariableDeclaration","scope":3613,"src":"14093:14:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3399,"name":"uint256","nodeType":"ElementaryTypeName","src":"14093:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3401,"nodeType":"VariableDeclarationStatement","src":"14093:14:15"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3404,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3402,"name":"digits","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3361,"src":"14121:6:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"hexValue":"35","id":3403,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14131:1:15","typeDescriptions":{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"},"value":"5"},"src":"14121:11:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":3566,"nodeType":"Block","src":"14697:399:15","statements":[{"expression":{"id":3507,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3499,"name":"nZeros","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3400,"src":"14746:6:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":3505,"name":"digits","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3361,"src":"14770:6:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"hexValue":"35","id":3502,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14763:1:15","typeDescriptions":{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"},"value":"5"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"}],"id":3501,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14755:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":3500,"name":"uint256","nodeType":"ElementaryTypeName","src":"14755:7:15","typeDescriptions":{}}},"id":3503,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14755:10:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3504,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sub","nodeType":"MemberAccess","referencedDeclaration":1638,"src":"14755:14:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":3506,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14755:22:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14746:31:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3508,"nodeType":"ExpressionStatement","src":"14746:31:15"},{"expression":{"id":3513,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":3509,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3397,"src":"14791:6:15","typeDescriptions":{"typeIdentifier":"t_struct$_DecimalStringParams_$2656_memory_ptr","typeString":"struct NFTDescriptor.DecimalStringParams memory"}},"id":3511,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"zerosStartIndex","nodeType":"MemberAccess","referencedDeclaration":2649,"src":"14791:22:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"32","id":3512,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14816:1:15","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"14791:26:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":3514,"nodeType":"ExpressionStatement","src":"14791:26:15"},{"expression":{"id":3529,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":3515,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3397,"src":"14831:6:15","typeDescriptions":{"typeIdentifier":"t_struct$_DecimalStringParams_$2656_memory_ptr","typeString":"struct NFTDescriptor.DecimalStringParams memory"}},"id":3517,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"zerosEndIndex","nodeType":"MemberAccess","referencedDeclaration":2651,"src":"14831:20:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"hexValue":"31","id":3526,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14899:1:15","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"expression":{"arguments":[{"expression":{"id":3522,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3397,"src":"14871:6:15","typeDescriptions":{"typeIdentifier":"t_struct$_DecimalStringParams_$2656_memory_ptr","typeString":"struct NFTDescriptor.DecimalStringParams memory"}},"id":3523,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"zerosStartIndex","nodeType":"MemberAccess","referencedDeclaration":2649,"src":"14871:22:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"expression":{"id":3520,"name":"nZeros","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3400,"src":"14860:6:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3521,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"add","nodeType":"MemberAccess","referencedDeclaration":1616,"src":"14860:10:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":3524,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14860:34:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3525,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sub","nodeType":"MemberAccess","referencedDeclaration":1638,"src":"14860:38:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":3527,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14860:41:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3519,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14854:5:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":3518,"name":"uint8","nodeType":"ElementaryTypeName","src":"14854:5:15","typeDescriptions":{}}},"id":3528,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14854:48:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"14831:71:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":3530,"nodeType":"ExpressionStatement","src":"14831:71:15"},{"expression":{"id":3544,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":3531,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3397,"src":"14916:6:15","typeDescriptions":{"typeIdentifier":"t_struct$_DecimalStringParams_$2656_memory_ptr","typeString":"struct NFTDescriptor.DecimalStringParams memory"}},"id":3533,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"bufferLength","nodeType":"MemberAccess","referencedDeclaration":2643,"src":"14916:19:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"arguments":[{"hexValue":"32","id":3540,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14970:1:15","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"}],"expression":{"id":3538,"name":"numSigfigs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3364,"src":"14955:10:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":3539,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"add","nodeType":"MemberAccess","referencedDeclaration":1616,"src":"14955:14:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":3541,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14955:17:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":3536,"name":"nZeros","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3400,"src":"14944:6:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3537,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"add","nodeType":"MemberAccess","referencedDeclaration":1616,"src":"14944:10:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":3542,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14944:29:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3535,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14938:5:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":3534,"name":"uint8","nodeType":"ElementaryTypeName","src":"14938:5:15","typeDescriptions":{}}},"id":3543,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14938:36:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"14916:58:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":3545,"nodeType":"ExpressionStatement","src":"14916:58:15"},{"expression":{"id":3558,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":3546,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3397,"src":"14988:6:15","typeDescriptions":{"typeIdentifier":"t_struct$_DecimalStringParams_$2656_memory_ptr","typeString":"struct NFTDescriptor.DecimalStringParams memory"}},"id":3548,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"sigfigIndex","nodeType":"MemberAccess","referencedDeclaration":2645,"src":"14988:18:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"hexValue":"32","id":3555,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15041:1:15","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"}],"expression":{"components":[{"expression":{"id":3551,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3397,"src":"15016:6:15","typeDescriptions":{"typeIdentifier":"t_struct$_DecimalStringParams_$2656_memory_ptr","typeString":"struct NFTDescriptor.DecimalStringParams memory"}},"id":3552,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"bufferLength","nodeType":"MemberAccess","referencedDeclaration":2643,"src":"15016:19:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"id":3553,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"15015:21:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":3554,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sub","nodeType":"MemberAccess","referencedDeclaration":1638,"src":"15015:25:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":3556,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15015:28:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3550,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15009:5:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":3549,"name":"uint8","nodeType":"ElementaryTypeName","src":"15009:5:15","typeDescriptions":{}}},"id":3557,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15009:35:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"14988:56:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":3559,"nodeType":"ExpressionStatement","src":"14988:56:15"},{"expression":{"id":3564,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":3560,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3397,"src":"15058:6:15","typeDescriptions":{"typeIdentifier":"t_struct$_DecimalStringParams_$2656_memory_ptr","typeString":"struct NFTDescriptor.DecimalStringParams memory"}},"id":3562,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"isLessThanOne","nodeType":"MemberAccess","referencedDeclaration":2653,"src":"15058:20:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":3563,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"15081:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"15058:27:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3565,"nodeType":"ExpressionStatement","src":"15058:27:15"}]},"id":3567,"nodeType":"IfStatement","src":"14117:979:15","trueBody":{"id":3498,"nodeType":"Block","src":"14134:557:15","statements":[{"assignments":[3406],"declarations":[{"constant":false,"id":3406,"mutability":"mutable","name":"decimalPlace","nodeType":"VariableDeclaration","scope":3498,"src":"14208:20:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3405,"name":"uint256","nodeType":"ElementaryTypeName","src":"14208:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3416,"initialValue":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3412,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":3409,"name":"numSigfigs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3364,"src":"14242:10:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"expression":{"id":3407,"name":"digits","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3361,"src":"14231:6:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3408,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sub","nodeType":"MemberAccess","referencedDeclaration":1638,"src":"14231:10:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":3410,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14231:22:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"hexValue":"34","id":3411,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14257:1:15","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"14231:27:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"hexValue":"31","id":3414,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14265:1:15","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"id":3415,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"14231:35:15","trueExpression":{"hexValue":"30","id":3413,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14261:1:15","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"VariableDeclarationStatement","src":"14208:58:15"},{"expression":{"id":3440,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3417,"name":"nZeros","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3400,"src":"14280:6:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3427,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"hexValue":"35","id":3420,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14300:1:15","typeDescriptions":{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"},"value":"5"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"}],"expression":{"id":3418,"name":"digits","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3361,"src":"14289:6:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3419,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sub","nodeType":"MemberAccess","referencedDeclaration":1638,"src":"14289:10:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":3421,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14289:13:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"components":[{"arguments":[{"hexValue":"31","id":3424,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14321:1:15","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"expression":{"id":3422,"name":"numSigfigs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3364,"src":"14306:10:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":3423,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sub","nodeType":"MemberAccess","referencedDeclaration":1638,"src":"14306:14:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":3425,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14306:17:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":3426,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"14305:19:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14289:35:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"arguments":[{"arguments":[{"hexValue":"31","id":3436,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14364:1:15","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"expression":{"id":3434,"name":"numSigfigs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3364,"src":"14349:10:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":3435,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sub","nodeType":"MemberAccess","referencedDeclaration":1638,"src":"14349:14:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":3437,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14349:17:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"hexValue":"35","id":3431,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14342:1:15","typeDescriptions":{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"},"value":"5"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"}],"expression":{"id":3429,"name":"digits","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3361,"src":"14331:6:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3430,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sub","nodeType":"MemberAccess","referencedDeclaration":1638,"src":"14331:10:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":3432,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14331:13:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3433,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sub","nodeType":"MemberAccess","referencedDeclaration":1638,"src":"14331:17:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":3438,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14331:36:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3439,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"14289:78:15","trueExpression":{"hexValue":"30","id":3428,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14327:1:15","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14280:87:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3441,"nodeType":"ExpressionStatement","src":"14280:87:15"},{"expression":{"id":3446,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":3442,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3397,"src":"14381:6:15","typeDescriptions":{"typeIdentifier":"t_struct$_DecimalStringParams_$2656_memory_ptr","typeString":"struct NFTDescriptor.DecimalStringParams memory"}},"id":3444,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"zerosStartIndex","nodeType":"MemberAccess","referencedDeclaration":2649,"src":"14381:22:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":3445,"name":"numSigfigs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3364,"src":"14406:10:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"14381:35:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":3447,"nodeType":"ExpressionStatement","src":"14381:35:15"},{"expression":{"id":3462,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":3448,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3397,"src":"14430:6:15","typeDescriptions":{"typeIdentifier":"t_struct$_DecimalStringParams_$2656_memory_ptr","typeString":"struct NFTDescriptor.DecimalStringParams memory"}},"id":3450,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"zerosEndIndex","nodeType":"MemberAccess","referencedDeclaration":2651,"src":"14430:20:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"hexValue":"31","id":3459,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14498:1:15","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"expression":{"arguments":[{"id":3456,"name":"nZeros","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3400,"src":"14486:6:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":3453,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3397,"src":"14459:6:15","typeDescriptions":{"typeIdentifier":"t_struct$_DecimalStringParams_$2656_memory_ptr","typeString":"struct NFTDescriptor.DecimalStringParams memory"}},"id":3454,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"zerosStartIndex","nodeType":"MemberAccess","referencedDeclaration":2649,"src":"14459:22:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":3455,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"add","nodeType":"MemberAccess","referencedDeclaration":1616,"src":"14459:26:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":3457,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14459:34:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3458,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sub","nodeType":"MemberAccess","referencedDeclaration":1638,"src":"14459:38:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":3460,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14459:41:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3452,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14453:5:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":3451,"name":"uint8","nodeType":"ElementaryTypeName","src":"14453:5:15","typeDescriptions":{}}},"id":3461,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14453:48:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"14430:71:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":3463,"nodeType":"ExpressionStatement","src":"14430:71:15"},{"expression":{"id":3478,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":3464,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3397,"src":"14515:6:15","typeDescriptions":{"typeIdentifier":"t_struct$_DecimalStringParams_$2656_memory_ptr","typeString":"struct NFTDescriptor.DecimalStringParams memory"}},"id":3466,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"sigfigIndex","nodeType":"MemberAccess","referencedDeclaration":2645,"src":"14515:18:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":3475,"name":"decimalPlace","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3406,"src":"14576:12:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"hexValue":"31","id":3472,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14569:1:15","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"expression":{"expression":{"id":3469,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3397,"src":"14542:6:15","typeDescriptions":{"typeIdentifier":"t_struct$_DecimalStringParams_$2656_memory_ptr","typeString":"struct NFTDescriptor.DecimalStringParams memory"}},"id":3470,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"zerosStartIndex","nodeType":"MemberAccess","referencedDeclaration":2649,"src":"14542:22:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":3471,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sub","nodeType":"MemberAccess","referencedDeclaration":1638,"src":"14542:26:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":3473,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14542:29:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3474,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"add","nodeType":"MemberAccess","referencedDeclaration":1616,"src":"14542:33:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":3476,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14542:47:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3468,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14536:5:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":3467,"name":"uint8","nodeType":"ElementaryTypeName","src":"14536:5:15","typeDescriptions":{}}},"id":3477,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14536:54:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"14515:75:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":3479,"nodeType":"ExpressionStatement","src":"14515:75:15"},{"expression":{"id":3496,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":3480,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3397,"src":"14604:6:15","typeDescriptions":{"typeIdentifier":"t_struct$_DecimalStringParams_$2656_memory_ptr","typeString":"struct NFTDescriptor.DecimalStringParams memory"}},"id":3482,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"bufferLength","nodeType":"MemberAccess","referencedDeclaration":2643,"src":"14604:19:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":3493,"name":"decimalPlace","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3406,"src":"14666:12:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"arguments":[{"hexValue":"31","id":3489,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14658:1:15","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"expression":{"id":3487,"name":"numSigfigs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3364,"src":"14643:10:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":3488,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"add","nodeType":"MemberAccess","referencedDeclaration":1616,"src":"14643:14:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":3490,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14643:17:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":3485,"name":"nZeros","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3400,"src":"14632:6:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3486,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"add","nodeType":"MemberAccess","referencedDeclaration":1616,"src":"14632:10:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":3491,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14632:29:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3492,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"add","nodeType":"MemberAccess","referencedDeclaration":1616,"src":"14632:33:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":3494,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14632:47:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3484,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14626:5:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":3483,"name":"uint8","nodeType":"ElementaryTypeName","src":"14626:5:15","typeDescriptions":{}}},"id":3495,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14626:54:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"14604:76:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":3497,"nodeType":"ExpressionStatement","src":"14604:76:15"}]}},{"expression":{"id":3584,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":3568,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3397,"src":"15105:6:15","typeDescriptions":{"typeIdentifier":"t_struct$_DecimalStringParams_$2656_memory_ptr","typeString":"struct NFTDescriptor.DecimalStringParams memory"}},"id":3570,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"sigfigs","nodeType":"MemberAccess","referencedDeclaration":2641,"src":"15105:14:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3582,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":3576,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15139:2:15","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"components":[{"arguments":[{"id":3579,"name":"numSigfigs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3364,"src":"15157:10:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"expression":{"id":3577,"name":"digits","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3361,"src":"15146:6:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3578,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sub","nodeType":"MemberAccess","referencedDeclaration":1638,"src":"15146:10:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":3580,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15146:22:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":3581,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"15145:24:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15139:30:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":3573,"name":"fee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3344,"src":"15130:3:15","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint24","typeString":"uint24"}],"id":3572,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15122:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":3571,"name":"uint256","nodeType":"ElementaryTypeName","src":"15122:7:15","typeDescriptions":{}}},"id":3574,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15122:12:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3575,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"div","nodeType":"MemberAccess","referencedDeclaration":1694,"src":"15122:16:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":3583,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15122:48:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15105:65:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3585,"nodeType":"ExpressionStatement","src":"15105:65:15"},{"expression":{"id":3590,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":3586,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3397,"src":"15180:6:15","typeDescriptions":{"typeIdentifier":"t_struct$_DecimalStringParams_$2656_memory_ptr","typeString":"struct NFTDescriptor.DecimalStringParams memory"}},"id":3588,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"isPercent","nodeType":"MemberAccess","referencedDeclaration":2655,"src":"15180:16:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":3589,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"15199:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"15180:23:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3591,"nodeType":"ExpressionStatement","src":"15180:23:15"},{"expression":{"id":3607,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":3592,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3397,"src":"15213:6:15","typeDescriptions":{"typeIdentifier":"t_struct$_DecimalStringParams_$2656_memory_ptr","typeString":"struct NFTDescriptor.DecimalStringParams memory"}},"id":3594,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"decimalIndex","nodeType":"MemberAccess","referencedDeclaration":2647,"src":"15213:19:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3597,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3595,"name":"digits","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3361,"src":"15235:6:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"34","id":3596,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15244:1:15","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"15235:10:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"hexValue":"30","id":3605,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15271:1:15","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"id":3606,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"15235:37:15","trueExpression":{"arguments":[{"arguments":[{"hexValue":"34","id":3602,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15265:1:15","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"}],"expression":{"id":3600,"name":"digits","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3361,"src":"15254:6:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3601,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sub","nodeType":"MemberAccess","referencedDeclaration":1638,"src":"15254:10:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":3603,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15254:13:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3599,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15248:5:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":3598,"name":"uint8","nodeType":"ElementaryTypeName","src":"15248:5:15","typeDescriptions":{}}},"id":3604,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15248:20:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"15213:59:15","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":3608,"nodeType":"ExpressionStatement","src":"15213:59:15"},{"expression":{"arguments":[{"id":3610,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3397,"src":"15312:6:15","typeDescriptions":{"typeIdentifier":"t_struct$_DecimalStringParams_$2656_memory_ptr","typeString":"struct NFTDescriptor.DecimalStringParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_DecimalStringParams_$2656_memory_ptr","typeString":"struct NFTDescriptor.DecimalStringParams memory"}],"id":3609,"name":"generateDecimalString","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2790,"src":"15290:21:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_DecimalStringParams_$2656_memory_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (struct NFTDescriptor.DecimalStringParams memory) pure returns (string memory)"}},"id":3611,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15290:29:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":3348,"id":3612,"nodeType":"Return","src":"15283:36:15"}]},"id":3614,"implemented":true,"kind":"function","modifiers":[],"name":"feeToPercentString","nodeType":"FunctionDefinition","parameters":{"id":3345,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3344,"mutability":"mutable","name":"fee","nodeType":"VariableDeclaration","scope":3614,"src":"13549:10:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"},"typeName":{"id":3343,"name":"uint24","nodeType":"ElementaryTypeName","src":"13549:6:15","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},"visibility":"internal"}],"src":"13548:12:15"},"returnParameters":{"id":3348,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3347,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","scope":3614,"src":"13584:13:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":3346,"name":"string","nodeType":"ElementaryTypeName","src":"13584:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"13583:15:15"},"scope":3947,"src":"13521:1805:15","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3630,"nodeType":"Block","src":"15409:55:15","statements":[{"expression":{"arguments":[{"hexValue":"3230","id":3627,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15454:2:15","typeDescriptions":{"typeIdentifier":"t_rational_20_by_1","typeString":"int_const 20"},"value":"20"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_20_by_1","typeString":"int_const 20"}],"expression":{"components":[{"arguments":[{"id":3623,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3616,"src":"15435:4:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":3622,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15427:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":3621,"name":"uint256","nodeType":"ElementaryTypeName","src":"15427:7:15","typeDescriptions":{}}},"id":3624,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15427:13:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":3625,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"15426:15:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3626,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"toHexString","nodeType":"MemberAccess","referencedDeclaration":2186,"src":"15426:27:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_string_memory_ptr_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (string memory)"}},"id":3628,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15426:31:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":3620,"id":3629,"nodeType":"Return","src":"15419:38:15"}]},"id":3631,"implemented":true,"kind":"function","modifiers":[],"name":"addressToString","nodeType":"FunctionDefinition","parameters":{"id":3617,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3616,"mutability":"mutable","name":"addr","nodeType":"VariableDeclaration","scope":3631,"src":"15357:12:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3615,"name":"address","nodeType":"ElementaryTypeName","src":"15357:7:15","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"15356:14:15"},"returnParameters":{"id":3620,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3619,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","scope":3631,"src":"15394:13:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":3618,"name":"string","nodeType":"ElementaryTypeName","src":"15394:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"15393:15:15"},"scope":3947,"src":"15332:132:15","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3813,"nodeType":"Block","src":"15577:1688:15","statements":[{"assignments":[3641],"declarations":[{"constant":false,"id":3641,"mutability":"mutable","name":"svgParams","nodeType":"VariableDeclaration","scope":3813,"src":"15587:33:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SVGParams_$4023_memory_ptr","typeString":"struct NFTSVG.SVGParams"},"typeName":{"id":3640,"name":"NFTSVG.SVGParams","nodeType":"UserDefinedTypeName","referencedDeclaration":4023,"src":"15587:16:15","typeDescriptions":{"typeIdentifier":"t_struct$_SVGParams_$4023_storage_ptr","typeString":"struct NFTSVG.SVGParams"}},"visibility":"internal"}],"id":3807,"initialValue":{"arguments":[{"arguments":[{"expression":{"id":3645,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3633,"src":"15682:6:15","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructTokenURIParams_$2306_memory_ptr","typeString":"struct NFTDescriptor.ConstructTokenURIParams memory"}},"id":3646,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"quoteTokenAddress","nodeType":"MemberAccess","referencedDeclaration":2281,"src":"15682:24:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":3644,"name":"addressToString","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3631,"src":"15666:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_string_memory_ptr_$","typeString":"function (address) pure returns (string memory)"}},"id":3647,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15666:41:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"arguments":[{"expression":{"id":3649,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3633,"src":"15748:6:15","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructTokenURIParams_$2306_memory_ptr","typeString":"struct NFTDescriptor.ConstructTokenURIParams memory"}},"id":3650,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"baseTokenAddress","nodeType":"MemberAccess","referencedDeclaration":2283,"src":"15748:23:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":3648,"name":"addressToString","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3631,"src":"15732:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_string_memory_ptr_$","typeString":"function (address) pure returns (string memory)"}},"id":3651,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15732:40:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"expression":{"id":3652,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3633,"src":"15799:6:15","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructTokenURIParams_$2306_memory_ptr","typeString":"struct NFTDescriptor.ConstructTokenURIParams memory"}},"id":3653,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"poolAddress","nodeType":"MemberAccess","referencedDeclaration":2305,"src":"15799:18:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":3654,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3633,"src":"15849:6:15","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructTokenURIParams_$2306_memory_ptr","typeString":"struct NFTDescriptor.ConstructTokenURIParams memory"}},"id":3655,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"quoteTokenSymbol","nodeType":"MemberAccess","referencedDeclaration":2285,"src":"15849:23:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"expression":{"id":3656,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3633,"src":"15903:6:15","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructTokenURIParams_$2306_memory_ptr","typeString":"struct NFTDescriptor.ConstructTokenURIParams memory"}},"id":3657,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"baseTokenSymbol","nodeType":"MemberAccess","referencedDeclaration":2287,"src":"15903:22:15","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"arguments":[{"expression":{"id":3659,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3633,"src":"15967:6:15","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructTokenURIParams_$2306_memory_ptr","typeString":"struct NFTDescriptor.ConstructTokenURIParams memory"}},"id":3660,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"fee","nodeType":"MemberAccess","referencedDeclaration":2303,"src":"15967:10:15","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint24","typeString":"uint24"}],"id":3658,"name":"feeToPercentString","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3614,"src":"15948:18:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint24_$returns$_t_string_memory_ptr_$","typeString":"function (uint24) pure returns (string memory)"}},"id":3661,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15948:30:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"expression":{"id":3662,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3633,"src":"16003:6:15","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructTokenURIParams_$2306_memory_ptr","typeString":"struct NFTDescriptor.ConstructTokenURIParams memory"}},"id":3663,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"tickLower","nodeType":"MemberAccess","referencedDeclaration":2295,"src":"16003:16:15","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},{"expression":{"id":3664,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3633,"src":"16044:6:15","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructTokenURIParams_$2306_memory_ptr","typeString":"struct NFTDescriptor.ConstructTokenURIParams memory"}},"id":3665,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"tickUpper","nodeType":"MemberAccess","referencedDeclaration":2297,"src":"16044:16:15","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},{"expression":{"id":3666,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3633,"src":"16087:6:15","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructTokenURIParams_$2306_memory_ptr","typeString":"struct NFTDescriptor.ConstructTokenURIParams memory"}},"id":3667,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"tickSpacing","nodeType":"MemberAccess","referencedDeclaration":2301,"src":"16087:18:15","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},{"arguments":[{"expression":{"id":3669,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3633,"src":"16140:6:15","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructTokenURIParams_$2306_memory_ptr","typeString":"struct NFTDescriptor.ConstructTokenURIParams memory"}},"id":3670,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"tickLower","nodeType":"MemberAccess","referencedDeclaration":2295,"src":"16140:16:15","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},{"expression":{"id":3671,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3633,"src":"16158:6:15","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructTokenURIParams_$2306_memory_ptr","typeString":"struct NFTDescriptor.ConstructTokenURIParams memory"}},"id":3672,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"tickUpper","nodeType":"MemberAccess","referencedDeclaration":2297,"src":"16158:16:15","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},{"expression":{"id":3673,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3633,"src":"16176:6:15","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructTokenURIParams_$2306_memory_ptr","typeString":"struct NFTDescriptor.ConstructTokenURIParams memory"}},"id":3674,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"tickCurrent","nodeType":"MemberAccess","referencedDeclaration":2299,"src":"16176:18:15","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int24","typeString":"int24"},{"typeIdentifier":"t_int24","typeString":"int24"},{"typeIdentifier":"t_int24","typeString":"int24"}],"id":3668,"name":"overRange","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3844,"src":"16130:9:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int24_$_t_int24_$_t_int24_$returns$_t_int8_$","typeString":"function (int24,int24,int24) pure returns (int8)"}},"id":3675,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16130:65:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"}},{"expression":{"id":3676,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3633,"src":"16218:6:15","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructTokenURIParams_$2306_memory_ptr","typeString":"struct NFTDescriptor.ConstructTokenURIParams memory"}},"id":3677,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"tokenId","nodeType":"MemberAccess","referencedDeclaration":2279,"src":"16218:14:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"arguments":[{"expression":{"id":3681,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3633,"src":"16278:6:15","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructTokenURIParams_$2306_memory_ptr","typeString":"struct NFTDescriptor.ConstructTokenURIParams memory"}},"id":3682,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"quoteTokenAddress","nodeType":"MemberAccess","referencedDeclaration":2281,"src":"16278:24:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":3680,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16270:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":3679,"name":"uint256","nodeType":"ElementaryTypeName","src":"16270:7:15","typeDescriptions":{}}},"id":3683,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16270:33:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"313336","id":3684,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16305:3:15","typeDescriptions":{"typeIdentifier":"t_rational_136_by_1","typeString":"int_const 136"},"value":"136"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_136_by_1","typeString":"int_const 136"}],"id":3678,"name":"tokenToColorHex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3904,"src":"16254:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256,uint256) pure returns (string memory)"}},"id":3685,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16254:55:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"arguments":[{"arguments":[{"expression":{"id":3689,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3633,"src":"16355:6:15","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructTokenURIParams_$2306_memory_ptr","typeString":"struct NFTDescriptor.ConstructTokenURIParams memory"}},"id":3690,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"baseTokenAddress","nodeType":"MemberAccess","referencedDeclaration":2283,"src":"16355:23:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":3688,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16347:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":3687,"name":"uint256","nodeType":"ElementaryTypeName","src":"16347:7:15","typeDescriptions":{}}},"id":3691,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16347:32:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"313336","id":3692,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16381:3:15","typeDescriptions":{"typeIdentifier":"t_rational_136_by_1","typeString":"int_const 136"},"value":"136"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_136_by_1","typeString":"int_const 136"}],"id":3686,"name":"tokenToColorHex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3904,"src":"16331:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256,uint256) pure returns (string memory)"}},"id":3693,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16331:54:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"arguments":[{"arguments":[{"expression":{"id":3697,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3633,"src":"16431:6:15","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructTokenURIParams_$2306_memory_ptr","typeString":"struct NFTDescriptor.ConstructTokenURIParams memory"}},"id":3698,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"quoteTokenAddress","nodeType":"MemberAccess","referencedDeclaration":2281,"src":"16431:24:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":3696,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16423:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":3695,"name":"uint256","nodeType":"ElementaryTypeName","src":"16423:7:15","typeDescriptions":{}}},"id":3699,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16423:33:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"30","id":3700,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16458:1:15","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":3694,"name":"tokenToColorHex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3904,"src":"16407:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256,uint256) pure returns (string memory)"}},"id":3701,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16407:53:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"arguments":[{"arguments":[{"expression":{"id":3705,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3633,"src":"16506:6:15","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructTokenURIParams_$2306_memory_ptr","typeString":"struct NFTDescriptor.ConstructTokenURIParams memory"}},"id":3706,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"baseTokenAddress","nodeType":"MemberAccess","referencedDeclaration":2283,"src":"16506:23:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":3704,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16498:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":3703,"name":"uint256","nodeType":"ElementaryTypeName","src":"16498:7:15","typeDescriptions":{}}},"id":3707,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16498:32:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"30","id":3708,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16532:1:15","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":3702,"name":"tokenToColorHex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3904,"src":"16482:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256,uint256) pure returns (string memory)"}},"id":3709,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16482:52:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"arguments":[{"arguments":[{"arguments":[{"expression":{"id":3714,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3633,"src":"16581:6:15","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructTokenURIParams_$2306_memory_ptr","typeString":"struct NFTDescriptor.ConstructTokenURIParams memory"}},"id":3715,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"quoteTokenAddress","nodeType":"MemberAccess","referencedDeclaration":2281,"src":"16581:24:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":3713,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16573:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":3712,"name":"uint256","nodeType":"ElementaryTypeName","src":"16573:7:15","typeDescriptions":{}}},"id":3716,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16573:33:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"3136","id":3717,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16608:2:15","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},{"expression":{"id":3718,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3633,"src":"16612:6:15","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructTokenURIParams_$2306_memory_ptr","typeString":"struct NFTDescriptor.ConstructTokenURIParams memory"}},"id":3719,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"tokenId","nodeType":"MemberAccess","referencedDeclaration":2279,"src":"16612:14:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3711,"name":"getCircleCoord","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3926,"src":"16558:14:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256) pure returns (uint256)"}},"id":3720,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16558:69:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"30","id":3721,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16629:1:15","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"hexValue":"323535","id":3722,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16632:3:15","typeDescriptions":{"typeIdentifier":"t_rational_255_by_1","typeString":"int_const 255"},"value":"255"},{"hexValue":"3136","id":3723,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16637:2:15","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},{"hexValue":"323734","id":3724,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16641:3:15","typeDescriptions":{"typeIdentifier":"t_rational_274_by_1","typeString":"int_const 274"},"value":"274"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_rational_255_by_1","typeString":"int_const 255"},{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},{"typeIdentifier":"t_rational_274_by_1","typeString":"int_const 274"}],"id":3710,"name":"scale","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3883,"src":"16552:5:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256,uint256,uint256,uint256,uint256) pure returns (string memory)"}},"id":3725,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16552:93:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"arguments":[{"arguments":[{"arguments":[{"expression":{"id":3730,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3633,"src":"16692:6:15","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructTokenURIParams_$2306_memory_ptr","typeString":"struct NFTDescriptor.ConstructTokenURIParams memory"}},"id":3731,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"baseTokenAddress","nodeType":"MemberAccess","referencedDeclaration":2283,"src":"16692:23:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":3729,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16684:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":3728,"name":"uint256","nodeType":"ElementaryTypeName","src":"16684:7:15","typeDescriptions":{}}},"id":3732,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16684:32:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"3136","id":3733,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16718:2:15","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},{"expression":{"id":3734,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3633,"src":"16722:6:15","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructTokenURIParams_$2306_memory_ptr","typeString":"struct NFTDescriptor.ConstructTokenURIParams memory"}},"id":3735,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"tokenId","nodeType":"MemberAccess","referencedDeclaration":2279,"src":"16722:14:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3727,"name":"getCircleCoord","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3926,"src":"16669:14:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256) pure returns (uint256)"}},"id":3736,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16669:68:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"30","id":3737,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16739:1:15","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"hexValue":"323535","id":3738,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16742:3:15","typeDescriptions":{"typeIdentifier":"t_rational_255_by_1","typeString":"int_const 255"},"value":"255"},{"hexValue":"313030","id":3739,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16747:3:15","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},{"hexValue":"343834","id":3740,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16752:3:15","typeDescriptions":{"typeIdentifier":"t_rational_484_by_1","typeString":"int_const 484"},"value":"484"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_rational_255_by_1","typeString":"int_const 255"},{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},{"typeIdentifier":"t_rational_484_by_1","typeString":"int_const 484"}],"id":3726,"name":"scale","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3883,"src":"16663:5:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256,uint256,uint256,uint256,uint256) pure returns (string memory)"}},"id":3741,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16663:93:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"arguments":[{"arguments":[{"arguments":[{"expression":{"id":3746,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3633,"src":"16803:6:15","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructTokenURIParams_$2306_memory_ptr","typeString":"struct NFTDescriptor.ConstructTokenURIParams memory"}},"id":3747,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"quoteTokenAddress","nodeType":"MemberAccess","referencedDeclaration":2281,"src":"16803:24:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":3745,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16795:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":3744,"name":"uint256","nodeType":"ElementaryTypeName","src":"16795:7:15","typeDescriptions":{}}},"id":3748,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16795:33:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"3332","id":3749,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16830:2:15","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},{"expression":{"id":3750,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3633,"src":"16834:6:15","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructTokenURIParams_$2306_memory_ptr","typeString":"struct NFTDescriptor.ConstructTokenURIParams memory"}},"id":3751,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"tokenId","nodeType":"MemberAccess","referencedDeclaration":2279,"src":"16834:14:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3743,"name":"getCircleCoord","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3926,"src":"16780:14:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256) pure returns (uint256)"}},"id":3752,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16780:69:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"30","id":3753,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16851:1:15","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"hexValue":"323535","id":3754,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16854:3:15","typeDescriptions":{"typeIdentifier":"t_rational_255_by_1","typeString":"int_const 255"},"value":"255"},{"hexValue":"3136","id":3755,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16859:2:15","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},{"hexValue":"323734","id":3756,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16863:3:15","typeDescriptions":{"typeIdentifier":"t_rational_274_by_1","typeString":"int_const 274"},"value":"274"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_rational_255_by_1","typeString":"int_const 255"},{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},{"typeIdentifier":"t_rational_274_by_1","typeString":"int_const 274"}],"id":3742,"name":"scale","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3883,"src":"16774:5:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256,uint256,uint256,uint256,uint256) pure returns (string memory)"}},"id":3757,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16774:93:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"arguments":[{"arguments":[{"arguments":[{"expression":{"id":3762,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3633,"src":"16914:6:15","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructTokenURIParams_$2306_memory_ptr","typeString":"struct NFTDescriptor.ConstructTokenURIParams memory"}},"id":3763,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"baseTokenAddress","nodeType":"MemberAccess","referencedDeclaration":2283,"src":"16914:23:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":3761,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16906:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":3760,"name":"uint256","nodeType":"ElementaryTypeName","src":"16906:7:15","typeDescriptions":{}}},"id":3764,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16906:32:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"3332","id":3765,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16940:2:15","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},{"expression":{"id":3766,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3633,"src":"16944:6:15","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructTokenURIParams_$2306_memory_ptr","typeString":"struct NFTDescriptor.ConstructTokenURIParams memory"}},"id":3767,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"tokenId","nodeType":"MemberAccess","referencedDeclaration":2279,"src":"16944:14:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3759,"name":"getCircleCoord","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3926,"src":"16891:14:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256) pure returns (uint256)"}},"id":3768,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16891:68:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"30","id":3769,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16961:1:15","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"hexValue":"323535","id":3770,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16964:3:15","typeDescriptions":{"typeIdentifier":"t_rational_255_by_1","typeString":"int_const 255"},"value":"255"},{"hexValue":"313030","id":3771,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16969:3:15","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},{"hexValue":"343834","id":3772,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16974:3:15","typeDescriptions":{"typeIdentifier":"t_rational_484_by_1","typeString":"int_const 484"},"value":"484"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_rational_255_by_1","typeString":"int_const 255"},{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},{"typeIdentifier":"t_rational_484_by_1","typeString":"int_const 484"}],"id":3758,"name":"scale","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3883,"src":"16885:5:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256,uint256,uint256,uint256,uint256) pure returns (string memory)"}},"id":3773,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16885:93:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"arguments":[{"arguments":[{"arguments":[{"expression":{"id":3778,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3633,"src":"17025:6:15","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructTokenURIParams_$2306_memory_ptr","typeString":"struct NFTDescriptor.ConstructTokenURIParams memory"}},"id":3779,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"quoteTokenAddress","nodeType":"MemberAccess","referencedDeclaration":2281,"src":"17025:24:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":3777,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17017:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":3776,"name":"uint256","nodeType":"ElementaryTypeName","src":"17017:7:15","typeDescriptions":{}}},"id":3780,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17017:33:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"3438","id":3781,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17052:2:15","typeDescriptions":{"typeIdentifier":"t_rational_48_by_1","typeString":"int_const 48"},"value":"48"},{"expression":{"id":3782,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3633,"src":"17056:6:15","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructTokenURIParams_$2306_memory_ptr","typeString":"struct NFTDescriptor.ConstructTokenURIParams memory"}},"id":3783,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"tokenId","nodeType":"MemberAccess","referencedDeclaration":2279,"src":"17056:14:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_48_by_1","typeString":"int_const 48"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3775,"name":"getCircleCoord","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3926,"src":"17002:14:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256) pure returns (uint256)"}},"id":3784,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17002:69:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"30","id":3785,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17073:1:15","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"hexValue":"323535","id":3786,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17076:3:15","typeDescriptions":{"typeIdentifier":"t_rational_255_by_1","typeString":"int_const 255"},"value":"255"},{"hexValue":"3136","id":3787,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17081:2:15","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},{"hexValue":"323734","id":3788,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17085:3:15","typeDescriptions":{"typeIdentifier":"t_rational_274_by_1","typeString":"int_const 274"},"value":"274"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_rational_255_by_1","typeString":"int_const 255"},{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},{"typeIdentifier":"t_rational_274_by_1","typeString":"int_const 274"}],"id":3774,"name":"scale","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3883,"src":"16996:5:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256,uint256,uint256,uint256,uint256) pure returns (string memory)"}},"id":3789,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16996:93:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"arguments":[{"arguments":[{"arguments":[{"expression":{"id":3794,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3633,"src":"17136:6:15","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructTokenURIParams_$2306_memory_ptr","typeString":"struct NFTDescriptor.ConstructTokenURIParams memory"}},"id":3795,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"baseTokenAddress","nodeType":"MemberAccess","referencedDeclaration":2283,"src":"17136:23:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":3793,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17128:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":3792,"name":"uint256","nodeType":"ElementaryTypeName","src":"17128:7:15","typeDescriptions":{}}},"id":3796,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17128:32:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"3438","id":3797,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17162:2:15","typeDescriptions":{"typeIdentifier":"t_rational_48_by_1","typeString":"int_const 48"},"value":"48"},{"expression":{"id":3798,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3633,"src":"17166:6:15","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructTokenURIParams_$2306_memory_ptr","typeString":"struct NFTDescriptor.ConstructTokenURIParams memory"}},"id":3799,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"tokenId","nodeType":"MemberAccess","referencedDeclaration":2279,"src":"17166:14:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_48_by_1","typeString":"int_const 48"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3791,"name":"getCircleCoord","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3926,"src":"17113:14:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256) pure returns (uint256)"}},"id":3800,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17113:68:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"30","id":3801,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17183:1:15","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"hexValue":"323535","id":3802,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17186:3:15","typeDescriptions":{"typeIdentifier":"t_rational_255_by_1","typeString":"int_const 255"},"value":"255"},{"hexValue":"313030","id":3803,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17191:3:15","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},{"hexValue":"343834","id":3804,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17196:3:15","typeDescriptions":{"typeIdentifier":"t_rational_484_by_1","typeString":"int_const 484"},"value":"484"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_rational_255_by_1","typeString":"int_const 255"},{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},{"typeIdentifier":"t_rational_484_by_1","typeString":"int_const 484"}],"id":3790,"name":"scale","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3883,"src":"17107:5:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256,uint256,uint256,uint256,uint256) pure returns (string memory)"}},"id":3805,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17107:93:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_int24","typeString":"int24"},{"typeIdentifier":"t_int24","typeString":"int24"},{"typeIdentifier":"t_int24","typeString":"int24"},{"typeIdentifier":"t_int8","typeString":"int8"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":3642,"name":"NFTSVG","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4885,"src":"15623:6:15","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_NFTSVG_$4885_$","typeString":"type(library NFTSVG)"}},"id":3643,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"SVGParams","nodeType":"MemberAccess","referencedDeclaration":4023,"src":"15623:16:15","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_SVGParams_$4023_storage_ptr_$","typeString":"type(struct NFTSVG.SVGParams storage pointer)"}},"id":3806,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"names":["quoteToken","baseToken","poolAddress","quoteTokenSymbol","baseTokenSymbol","feeTier","tickLower","tickUpper","tickSpacing","overRange","tokenId","color0","color1","color2","color3","x1","y1","x2","y2","x3","y3"],"nodeType":"FunctionCall","src":"15623:1588:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_SVGParams_$4023_memory_ptr","typeString":"struct NFTSVG.SVGParams memory"}},"nodeType":"VariableDeclarationStatement","src":"15587:1624:15"},{"expression":{"arguments":[{"id":3810,"name":"svgParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3641,"src":"17248:9:15","typeDescriptions":{"typeIdentifier":"t_struct$_SVGParams_$4023_memory_ptr","typeString":"struct NFTSVG.SVGParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SVGParams_$4023_memory_ptr","typeString":"struct NFTSVG.SVGParams memory"}],"expression":{"id":3808,"name":"NFTSVG","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4885,"src":"17229:6:15","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_NFTSVG_$4885_$","typeString":"type(library NFTSVG)"}},"id":3809,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"generateSVG","nodeType":"MemberAccess","referencedDeclaration":4086,"src":"17229:18:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_SVGParams_$4023_memory_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (struct NFTSVG.SVGParams memory) pure returns (string memory)"}},"id":3811,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17229:29:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":3637,"id":3812,"nodeType":"Return","src":"17222:36:15"}]},"id":3814,"implemented":true,"kind":"function","modifiers":[],"name":"generateSVGImage","nodeType":"FunctionDefinition","parameters":{"id":3634,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3633,"mutability":"mutable","name":"params","nodeType":"VariableDeclaration","scope":3814,"src":"15496:37:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructTokenURIParams_$2306_memory_ptr","typeString":"struct NFTDescriptor.ConstructTokenURIParams"},"typeName":{"id":3632,"name":"ConstructTokenURIParams","nodeType":"UserDefinedTypeName","referencedDeclaration":2306,"src":"15496:23:15","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructTokenURIParams_$2306_storage_ptr","typeString":"struct NFTDescriptor.ConstructTokenURIParams"}},"visibility":"internal"}],"src":"15495:39:15"},"returnParameters":{"id":3637,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3636,"mutability":"mutable","name":"svg","nodeType":"VariableDeclaration","scope":3814,"src":"15558:17:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":3635,"name":"string","nodeType":"ElementaryTypeName","src":"15558:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"15557:19:15"},"scope":3947,"src":"15470:1795:15","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3843,"nodeType":"Block","src":"17371:186:15","statements":[{"condition":{"commonType":{"typeIdentifier":"t_int24","typeString":"int24"},"id":3827,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3825,"name":"tickCurrent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3820,"src":"17385:11:15","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":3826,"name":"tickLower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3816,"src":"17399:9:15","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"src":"17385:23:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_int24","typeString":"int24"},"id":3834,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3832,"name":"tickCurrent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3820,"src":"17454:11:15","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":3833,"name":"tickUpper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3818,"src":"17468:9:15","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"src":"17454:23:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":3840,"nodeType":"Block","src":"17518:33:15","statements":[{"expression":{"hexValue":"30","id":3838,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17539:1:15","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":3824,"id":3839,"nodeType":"Return","src":"17532:8:15"}]},"id":3841,"nodeType":"IfStatement","src":"17450:101:15","trueBody":{"id":3837,"nodeType":"Block","src":"17479:33:15","statements":[{"expression":{"hexValue":"31","id":3835,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17500:1:15","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"functionReturnParameters":3824,"id":3836,"nodeType":"Return","src":"17493:8:15"}]}},"id":3842,"nodeType":"IfStatement","src":"17381:170:15","trueBody":{"id":3831,"nodeType":"Block","src":"17410:34:15","statements":[{"expression":{"id":3829,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"-","prefix":true,"src":"17431:2:15","subExpression":{"hexValue":"31","id":3828,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17432:1:15","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"typeDescriptions":{"typeIdentifier":"t_rational_minus_1_by_1","typeString":"int_const -1"}},"functionReturnParameters":3824,"id":3830,"nodeType":"Return","src":"17424:9:15"}]}}]},"id":3844,"implemented":true,"kind":"function","modifiers":[],"name":"overRange","nodeType":"FunctionDefinition","parameters":{"id":3821,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3816,"mutability":"mutable","name":"tickLower","nodeType":"VariableDeclaration","scope":3844,"src":"17290:15:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"},"typeName":{"id":3815,"name":"int24","nodeType":"ElementaryTypeName","src":"17290:5:15","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"visibility":"internal"},{"constant":false,"id":3818,"mutability":"mutable","name":"tickUpper","nodeType":"VariableDeclaration","scope":3844,"src":"17307:15:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"},"typeName":{"id":3817,"name":"int24","nodeType":"ElementaryTypeName","src":"17307:5:15","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"visibility":"internal"},{"constant":false,"id":3820,"mutability":"mutable","name":"tickCurrent","nodeType":"VariableDeclaration","scope":3844,"src":"17324:17:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"},"typeName":{"id":3819,"name":"int24","nodeType":"ElementaryTypeName","src":"17324:5:15","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"visibility":"internal"}],"src":"17289:53:15"},"returnParameters":{"id":3824,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3823,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","scope":3844,"src":"17365:4:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"},"typeName":{"id":3822,"name":"int8","nodeType":"ElementaryTypeName","src":"17365:4:15","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"}},"visibility":"internal"}],"src":"17364:6:15"},"scope":3947,"src":"17271:286:15","stateMutability":"pure","virtual":false,"visibility":"private"},{"body":{"id":3882,"nodeType":"Block","src":"17730:101:15","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"components":[{"arguments":[{"id":3876,"name":"outMn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3852,"src":"17806:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"arguments":[{"id":3872,"name":"inMn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3848,"src":"17795:4:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":3870,"name":"inMx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3850,"src":"17786:4:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3871,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sub","nodeType":"MemberAccess","referencedDeclaration":1638,"src":"17786:8:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":3873,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17786:14:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"arguments":[{"id":3866,"name":"outMn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3852,"src":"17774:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":3864,"name":"outMx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3854,"src":"17764:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3865,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sub","nodeType":"MemberAccess","referencedDeclaration":1638,"src":"17764:9:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":3867,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17764:16:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":3861,"name":"inMn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3848,"src":"17754:4:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":3859,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3846,"src":"17748:1:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3860,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sub","nodeType":"MemberAccess","referencedDeclaration":1638,"src":"17748:5:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":3862,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17748:11:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3863,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"mul","nodeType":"MemberAccess","referencedDeclaration":1672,"src":"17748:15:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":3868,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17748:33:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3869,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"div","nodeType":"MemberAccess","referencedDeclaration":1694,"src":"17748:37:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":3874,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17748:53:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3875,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"add","nodeType":"MemberAccess","referencedDeclaration":1616,"src":"17748:57:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":3877,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17748:64:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":3878,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"17747:66:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3879,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"toString","nodeType":"MemberAccess","referencedDeclaration":2054,"src":"17747:75:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_string_memory_ptr_$bound_to$_t_uint256_$","typeString":"function (uint256) pure returns (string memory)"}},"id":3880,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17747:77:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":3858,"id":3881,"nodeType":"Return","src":"17740:84:15"}]},"id":3883,"implemented":true,"kind":"function","modifiers":[],"name":"scale","nodeType":"FunctionDefinition","parameters":{"id":3855,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3846,"mutability":"mutable","name":"n","nodeType":"VariableDeclaration","scope":3883,"src":"17587:9:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3845,"name":"uint256","nodeType":"ElementaryTypeName","src":"17587:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3848,"mutability":"mutable","name":"inMn","nodeType":"VariableDeclaration","scope":3883,"src":"17606:12:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3847,"name":"uint256","nodeType":"ElementaryTypeName","src":"17606:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3850,"mutability":"mutable","name":"inMx","nodeType":"VariableDeclaration","scope":3883,"src":"17628:12:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3849,"name":"uint256","nodeType":"ElementaryTypeName","src":"17628:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3852,"mutability":"mutable","name":"outMn","nodeType":"VariableDeclaration","scope":3883,"src":"17650:13:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3851,"name":"uint256","nodeType":"ElementaryTypeName","src":"17650:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3854,"mutability":"mutable","name":"outMx","nodeType":"VariableDeclaration","scope":3883,"src":"17673:13:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3853,"name":"uint256","nodeType":"ElementaryTypeName","src":"17673:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"17577:115:15"},"returnParameters":{"id":3858,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3857,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","scope":3883,"src":"17715:13:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":3856,"name":"string","nodeType":"ElementaryTypeName","src":"17715:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"17714:15:15"},"scope":3947,"src":"17563:268:15","stateMutability":"pure","virtual":false,"visibility":"private"},{"body":{"id":3903,"nodeType":"Block","src":"17935:72:15","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"33","id":3899,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17997:1:15","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"}],"expression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3896,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3894,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3885,"src":"17960:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"id":3895,"name":"offset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3887,"src":"17969:6:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"17960:15:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":3897,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"17959:17:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3898,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"toHexStringNoPrefix","nodeType":"MemberAccess","referencedDeclaration":2239,"src":"17959:37:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_string_memory_ptr_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (string memory)"}},"id":3900,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17959:40:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":3893,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17952:6:15","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":3892,"name":"string","nodeType":"ElementaryTypeName","src":"17952:6:15","typeDescriptions":{}}},"id":3901,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17952:48:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":3891,"id":3902,"nodeType":"Return","src":"17945:55:15"}]},"id":3904,"implemented":true,"kind":"function","modifiers":[],"name":"tokenToColorHex","nodeType":"FunctionDefinition","parameters":{"id":3888,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3885,"mutability":"mutable","name":"token","nodeType":"VariableDeclaration","scope":3904,"src":"17862:13:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3884,"name":"uint256","nodeType":"ElementaryTypeName","src":"17862:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3887,"mutability":"mutable","name":"offset","nodeType":"VariableDeclaration","scope":3904,"src":"17877:14:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3886,"name":"uint256","nodeType":"ElementaryTypeName","src":"17877:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"17861:31:15"},"returnParameters":{"id":3891,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3890,"mutability":"mutable","name":"str","nodeType":"VariableDeclaration","scope":3904,"src":"17916:17:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":3889,"name":"string","nodeType":"ElementaryTypeName","src":"17916:6:15","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"17915:19:15"},"scope":3947,"src":"17837:170:15","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3925,"nodeType":"Block","src":"18124:77:15","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3923,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3920,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":3916,"name":"tokenAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3906,"src":"18156:12:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":3917,"name":"offset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3908,"src":"18170:6:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3915,"name":"sliceTokenHex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3946,"src":"18142:13:15","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":3918,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18142:35:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":3919,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3910,"src":"18180:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"18142:45:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":3921,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"18141:47:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"%","rightExpression":{"hexValue":"323535","id":3922,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18191:3:15","typeDescriptions":{"typeIdentifier":"t_rational_255_by_1","typeString":"int_const 255"},"value":"255"},"src":"18141:53:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3914,"id":3924,"nodeType":"Return","src":"18134:60:15"}]},"id":3926,"implemented":true,"kind":"function","modifiers":[],"name":"getCircleCoord","nodeType":"FunctionDefinition","parameters":{"id":3911,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3906,"mutability":"mutable","name":"tokenAddress","nodeType":"VariableDeclaration","scope":3926,"src":"18037:20:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3905,"name":"uint256","nodeType":"ElementaryTypeName","src":"18037:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3908,"mutability":"mutable","name":"offset","nodeType":"VariableDeclaration","scope":3926,"src":"18059:14:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3907,"name":"uint256","nodeType":"ElementaryTypeName","src":"18059:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3910,"mutability":"mutable","name":"tokenId","nodeType":"VariableDeclaration","scope":3926,"src":"18075:15:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3909,"name":"uint256","nodeType":"ElementaryTypeName","src":"18075:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"18036:55:15"},"returnParameters":{"id":3914,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3913,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","scope":3926,"src":"18115:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3912,"name":"uint256","nodeType":"ElementaryTypeName","src":"18115:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"18114:9:15"},"scope":3947,"src":"18013:188:15","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3945,"nodeType":"Block","src":"18293:55:15","statements":[{"expression":{"arguments":[{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3941,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3939,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3928,"src":"18324:5:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"id":3940,"name":"offset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3930,"src":"18333:6:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"18324:15:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3938,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"18318:5:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":3937,"name":"uint8","nodeType":"ElementaryTypeName","src":"18318:5:15","typeDescriptions":{}}},"id":3942,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18318:22:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":3936,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"18310:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":3935,"name":"uint256","nodeType":"ElementaryTypeName","src":"18310:7:15","typeDescriptions":{}}},"id":3943,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18310:31:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3934,"id":3944,"nodeType":"Return","src":"18303:38:15"}]},"id":3946,"implemented":true,"kind":"function","modifiers":[],"name":"sliceTokenHex","nodeType":"FunctionDefinition","parameters":{"id":3931,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3928,"mutability":"mutable","name":"token","nodeType":"VariableDeclaration","scope":3946,"src":"18230:13:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3927,"name":"uint256","nodeType":"ElementaryTypeName","src":"18230:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3930,"mutability":"mutable","name":"offset","nodeType":"VariableDeclaration","scope":3946,"src":"18245:14:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3929,"name":"uint256","nodeType":"ElementaryTypeName","src":"18245:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"18229:31:15"},"returnParameters":{"id":3934,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3933,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","scope":3946,"src":"18284:7:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3932,"name":"uint256","nodeType":"ElementaryTypeName","src":"18284:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"18283:9:15"},"scope":3947,"src":"18207:141:15","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":3948,"src":"812:17538:15"}],"src":"45:18306:15"},"id":15},"contracts/libraries/NFTSVG.sol":{"ast":{"absolutePath":"contracts/libraries/NFTSVG.sol","exportedSymbols":{"Base64":[2105],"BitMath":[726],"NFTSVG":[4885],"Strings":[2055]},"id":4886,"license":"GPL-2.0-or-later","nodeType":"SourceUnit","nodes":[{"id":3949,"literals":["solidity",">=","0.7",".6"],"nodeType":"PragmaDirective","src":"45:24:16"},{"absolutePath":"@openzeppelin/contracts/utils/Strings.sol","file":"@openzeppelin/contracts/utils/Strings.sol","id":3950,"nodeType":"ImportDirective","scope":4886,"sourceUnit":2056,"src":"71:51:16","symbolAliases":[],"unitAlias":""},{"absolutePath":"@airdao/astra-cl-core/contracts/libraries/BitMath.sol","file":"@airdao/astra-cl-core/contracts/libraries/BitMath.sol","id":3951,"nodeType":"ImportDirective","scope":4886,"sourceUnit":727,"src":"176:63:16","symbolAliases":[],"unitAlias":""},{"absolutePath":"base64-sol/base64.sol","file":"base64-sol/base64.sol","id":3952,"nodeType":"ImportDirective","scope":4886,"sourceUnit":2106,"src":"240:31:16","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[],"contractDependencies":[],"contractKind":"library","documentation":{"id":3953,"nodeType":"StructuredDocumentation","src":"273:103:16","text":"@title NFTSVG\n @notice Provides a function for generating an SVG associated with a AstraDEX NFT"},"fullyImplemented":true,"id":4885,"linearizedBaseContracts":[4885],"name":"NFTSVG","nodeType":"ContractDefinition","nodes":[{"id":3956,"libraryName":{"id":3954,"name":"Strings","nodeType":"UserDefinedTypeName","referencedDeclaration":2055,"src":"403:7:16","typeDescriptions":{"typeIdentifier":"t_contract$_Strings_$2055","typeString":"library Strings"}},"nodeType":"UsingForDirective","src":"397:26:16","typeName":{"id":3955,"name":"uint256","nodeType":"ElementaryTypeName","src":"415:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},{"constant":true,"id":3959,"mutability":"constant","name":"curve1","nodeType":"VariableDeclaration","scope":4885,"src":"429:53:16","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":3957,"name":"string","nodeType":"ElementaryTypeName","src":"429:6:16","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"4d31203143343120343120313035203130352031343520313435","id":3958,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"454:28:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_66d27e6fba11b882c8a0a5dee852b079822cbe90182b76c6fa8851fffde22b4c","typeString":"literal_string \"M1 1C41 41 105 105 145 145\""},"value":"M1 1C41 41 105 105 145 145"},"visibility":"internal"},{"constant":true,"id":3962,"mutability":"constant","name":"curve2","nodeType":"VariableDeclaration","scope":4885,"src":"488:52:16","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":3960,"name":"string","nodeType":"ElementaryTypeName","src":"488:6:16","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"4d312031433333203439203937203131332031343520313435","id":3961,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"513:27:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_00db9d9afe99bb6dcfba7c65bef94d4ed27e35a8501f24018ed2633644b9d668","typeString":"literal_string \"M1 1C33 49 97 113 145 145\""},"value":"M1 1C33 49 97 113 145 145"},"visibility":"internal"},{"constant":true,"id":3965,"mutability":"constant","name":"curve3","nodeType":"VariableDeclaration","scope":4885,"src":"546:52:16","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":3963,"name":"string","nodeType":"ElementaryTypeName","src":"546:6:16","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"4d312031433333203537203839203131332031343520313435","id":3964,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"571:27:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_df31787d08efb6acaccc83f64f6323b4714f6733838404303a9a0981b3fb6ff9","typeString":"literal_string \"M1 1C33 57 89 113 145 145\""},"value":"M1 1C33 57 89 113 145 145"},"visibility":"internal"},{"constant":true,"id":3968,"mutability":"constant","name":"curve4","nodeType":"VariableDeclaration","scope":4885,"src":"604:52:16","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":3966,"name":"string","nodeType":"ElementaryTypeName","src":"604:6:16","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"4d312031433235203635203831203132312031343520313435","id":3967,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"629:27:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_176a8aa92d47a058781a8c38ccdb1b7b196beb23d2ad8fe5144af0387029d040","typeString":"literal_string \"M1 1C25 65 81 121 145 145\""},"value":"M1 1C25 65 81 121 145 145"},"visibility":"internal"},{"constant":true,"id":3971,"mutability":"constant","name":"curve5","nodeType":"VariableDeclaration","scope":4885,"src":"662:52:16","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":3969,"name":"string","nodeType":"ElementaryTypeName","src":"662:6:16","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"4d312031433137203733203733203132392031343520313435","id":3970,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"687:27:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_9b14335fc8297fb7eb065580ff702df1c930607443996beb2a1041afecea2de5","typeString":"literal_string \"M1 1C17 73 73 129 145 145\""},"value":"M1 1C17 73 73 129 145 145"},"visibility":"internal"},{"constant":true,"id":3974,"mutability":"constant","name":"curve6","nodeType":"VariableDeclaration","scope":4885,"src":"720:51:16","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":3972,"name":"string","nodeType":"ElementaryTypeName","src":"720:6:16","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"4d3120314339203831203635203133372031343520313435","id":3973,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"745:26:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_3f7e53cb3d26a3b491cbe62836312e9b657aaf452ae18b92a58db671182a062e","typeString":"literal_string \"M1 1C9 81 65 137 145 145\""},"value":"M1 1C9 81 65 137 145 145"},"visibility":"internal"},{"constant":true,"id":3977,"mutability":"constant","name":"curve7","nodeType":"VariableDeclaration","scope":4885,"src":"777:53:16","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":3975,"name":"string","nodeType":"ElementaryTypeName","src":"777:6:16","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"4d31203143312038392035372e35203134352031343520313435","id":3976,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"802:28:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_1db24bbb939047c658a72481b4226e8a8e415c26fa4e6ddd83d47b63a606cb86","typeString":"literal_string \"M1 1C1 89 57.5 145 145 145\""},"value":"M1 1C1 89 57.5 145 145 145"},"visibility":"internal"},{"constant":true,"id":3980,"mutability":"constant","name":"curve8","nodeType":"VariableDeclaration","scope":4885,"src":"836:51:16","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":3978,"name":"string","nodeType":"ElementaryTypeName","src":"836:6:16","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"4d3120314331203937203439203134352031343520313435","id":3979,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"861:26:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_f1e029a7f41ea102af4e57ea0d785f94c25b7ac793220e0d87921d75f54f4efb","typeString":"literal_string \"M1 1C1 97 49 145 145 145\""},"value":"M1 1C1 97 49 145 145 145"},"visibility":"internal"},{"canonicalName":"NFTSVG.SVGParams","id":4023,"members":[{"constant":false,"id":3982,"mutability":"mutable","name":"quoteToken","nodeType":"VariableDeclaration","scope":4023,"src":"921:17:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":3981,"name":"string","nodeType":"ElementaryTypeName","src":"921:6:16","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":3984,"mutability":"mutable","name":"baseToken","nodeType":"VariableDeclaration","scope":4023,"src":"948:16:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":3983,"name":"string","nodeType":"ElementaryTypeName","src":"948:6:16","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":3986,"mutability":"mutable","name":"poolAddress","nodeType":"VariableDeclaration","scope":4023,"src":"974:19:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3985,"name":"address","nodeType":"ElementaryTypeName","src":"974:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3988,"mutability":"mutable","name":"quoteTokenSymbol","nodeType":"VariableDeclaration","scope":4023,"src":"1003:23:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":3987,"name":"string","nodeType":"ElementaryTypeName","src":"1003:6:16","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":3990,"mutability":"mutable","name":"baseTokenSymbol","nodeType":"VariableDeclaration","scope":4023,"src":"1036:22:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":3989,"name":"string","nodeType":"ElementaryTypeName","src":"1036:6:16","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":3992,"mutability":"mutable","name":"feeTier","nodeType":"VariableDeclaration","scope":4023,"src":"1068:14:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":3991,"name":"string","nodeType":"ElementaryTypeName","src":"1068:6:16","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":3994,"mutability":"mutable","name":"tickLower","nodeType":"VariableDeclaration","scope":4023,"src":"1092:15:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"},"typeName":{"id":3993,"name":"int24","nodeType":"ElementaryTypeName","src":"1092:5:16","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"visibility":"internal"},{"constant":false,"id":3996,"mutability":"mutable","name":"tickUpper","nodeType":"VariableDeclaration","scope":4023,"src":"1117:15:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"},"typeName":{"id":3995,"name":"int24","nodeType":"ElementaryTypeName","src":"1117:5:16","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"visibility":"internal"},{"constant":false,"id":3998,"mutability":"mutable","name":"tickSpacing","nodeType":"VariableDeclaration","scope":4023,"src":"1142:17:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"},"typeName":{"id":3997,"name":"int24","nodeType":"ElementaryTypeName","src":"1142:5:16","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"visibility":"internal"},{"constant":false,"id":4000,"mutability":"mutable","name":"overRange","nodeType":"VariableDeclaration","scope":4023,"src":"1169:14:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"},"typeName":{"id":3999,"name":"int8","nodeType":"ElementaryTypeName","src":"1169:4:16","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"}},"visibility":"internal"},{"constant":false,"id":4002,"mutability":"mutable","name":"tokenId","nodeType":"VariableDeclaration","scope":4023,"src":"1193:15:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4001,"name":"uint256","nodeType":"ElementaryTypeName","src":"1193:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4004,"mutability":"mutable","name":"color0","nodeType":"VariableDeclaration","scope":4023,"src":"1218:13:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":4003,"name":"string","nodeType":"ElementaryTypeName","src":"1218:6:16","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":4006,"mutability":"mutable","name":"color1","nodeType":"VariableDeclaration","scope":4023,"src":"1241:13:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":4005,"name":"string","nodeType":"ElementaryTypeName","src":"1241:6:16","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":4008,"mutability":"mutable","name":"color2","nodeType":"VariableDeclaration","scope":4023,"src":"1264:13:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":4007,"name":"string","nodeType":"ElementaryTypeName","src":"1264:6:16","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":4010,"mutability":"mutable","name":"color3","nodeType":"VariableDeclaration","scope":4023,"src":"1287:13:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":4009,"name":"string","nodeType":"ElementaryTypeName","src":"1287:6:16","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":4012,"mutability":"mutable","name":"x1","nodeType":"VariableDeclaration","scope":4023,"src":"1310:9:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":4011,"name":"string","nodeType":"ElementaryTypeName","src":"1310:6:16","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":4014,"mutability":"mutable","name":"y1","nodeType":"VariableDeclaration","scope":4023,"src":"1329:9:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":4013,"name":"string","nodeType":"ElementaryTypeName","src":"1329:6:16","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":4016,"mutability":"mutable","name":"x2","nodeType":"VariableDeclaration","scope":4023,"src":"1348:9:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":4015,"name":"string","nodeType":"ElementaryTypeName","src":"1348:6:16","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":4018,"mutability":"mutable","name":"y2","nodeType":"VariableDeclaration","scope":4023,"src":"1367:9:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":4017,"name":"string","nodeType":"ElementaryTypeName","src":"1367:6:16","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":4020,"mutability":"mutable","name":"x3","nodeType":"VariableDeclaration","scope":4023,"src":"1386:9:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":4019,"name":"string","nodeType":"ElementaryTypeName","src":"1386:6:16","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":4022,"mutability":"mutable","name":"y3","nodeType":"VariableDeclaration","scope":4023,"src":"1405:9:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":4021,"name":"string","nodeType":"ElementaryTypeName","src":"1405:6:16","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"name":"SVGParams","nodeType":"StructDefinition","scope":4885,"src":"894:527:16","visibility":"public"},{"body":{"id":4085,"nodeType":"Block","src":"1515:1297:16","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"id":4035,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4025,"src":"1971:6:16","typeDescriptions":{"typeIdentifier":"t_struct$_SVGParams_$4023_memory_ptr","typeString":"struct NFTSVG.SVGParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_SVGParams_$4023_memory_ptr","typeString":"struct NFTSVG.SVGParams memory"}],"id":4034,"name":"generateSVGDefs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4204,"src":"1955:15:16","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_SVGParams_$4023_memory_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (struct NFTSVG.SVGParams memory) pure returns (string memory)"}},"id":4036,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1955:23:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"arguments":[{"expression":{"id":4038,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4025,"src":"2047:6:16","typeDescriptions":{"typeIdentifier":"t_struct$_SVGParams_$4023_memory_ptr","typeString":"struct NFTSVG.SVGParams memory"}},"id":4039,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"quoteToken","nodeType":"MemberAccess","referencedDeclaration":3982,"src":"2047:17:16","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"expression":{"id":4040,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4025,"src":"2090:6:16","typeDescriptions":{"typeIdentifier":"t_struct$_SVGParams_$4023_memory_ptr","typeString":"struct NFTSVG.SVGParams memory"}},"id":4041,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"baseToken","nodeType":"MemberAccess","referencedDeclaration":3984,"src":"2090:16:16","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"expression":{"id":4042,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4025,"src":"2132:6:16","typeDescriptions":{"typeIdentifier":"t_struct$_SVGParams_$4023_memory_ptr","typeString":"struct NFTSVG.SVGParams memory"}},"id":4043,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"quoteTokenSymbol","nodeType":"MemberAccess","referencedDeclaration":3988,"src":"2132:23:16","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"expression":{"id":4044,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4025,"src":"2181:6:16","typeDescriptions":{"typeIdentifier":"t_struct$_SVGParams_$4023_memory_ptr","typeString":"struct NFTSVG.SVGParams memory"}},"id":4045,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"baseTokenSymbol","nodeType":"MemberAccess","referencedDeclaration":3990,"src":"2181:22:16","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":4037,"name":"generateSVGBorderText","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4248,"src":"2000:21:16","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (string memory,string memory,string memory,string memory) pure returns (string memory)"}},"id":4046,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2000:225:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"arguments":[{"expression":{"id":4048,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4025,"src":"2269:6:16","typeDescriptions":{"typeIdentifier":"t_struct$_SVGParams_$4023_memory_ptr","typeString":"struct NFTSVG.SVGParams memory"}},"id":4049,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"quoteTokenSymbol","nodeType":"MemberAccess","referencedDeclaration":3988,"src":"2269:23:16","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"expression":{"id":4050,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4025,"src":"2294:6:16","typeDescriptions":{"typeIdentifier":"t_struct$_SVGParams_$4023_memory_ptr","typeString":"struct NFTSVG.SVGParams memory"}},"id":4051,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"baseTokenSymbol","nodeType":"MemberAccess","referencedDeclaration":3990,"src":"2294:22:16","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"expression":{"id":4052,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4025,"src":"2318:6:16","typeDescriptions":{"typeIdentifier":"t_struct$_SVGParams_$4023_memory_ptr","typeString":"struct NFTSVG.SVGParams memory"}},"id":4053,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"feeTier","nodeType":"MemberAccess","referencedDeclaration":3992,"src":"2318:14:16","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":4047,"name":"generateSVGCardMantle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4277,"src":"2247:21:16","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (string memory,string memory,string memory) pure returns (string memory)"}},"id":4054,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2247:86:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"arguments":[{"expression":{"id":4056,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4025,"src":"2372:6:16","typeDescriptions":{"typeIdentifier":"t_struct$_SVGParams_$4023_memory_ptr","typeString":"struct NFTSVG.SVGParams memory"}},"id":4057,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"tickLower","nodeType":"MemberAccess","referencedDeclaration":3994,"src":"2372:16:16","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},{"expression":{"id":4058,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4025,"src":"2390:6:16","typeDescriptions":{"typeIdentifier":"t_struct$_SVGParams_$4023_memory_ptr","typeString":"struct NFTSVG.SVGParams memory"}},"id":4059,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"tickUpper","nodeType":"MemberAccess","referencedDeclaration":3996,"src":"2390:16:16","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},{"expression":{"id":4060,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4025,"src":"2408:6:16","typeDescriptions":{"typeIdentifier":"t_struct$_SVGParams_$4023_memory_ptr","typeString":"struct NFTSVG.SVGParams memory"}},"id":4061,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"tickSpacing","nodeType":"MemberAccess","referencedDeclaration":3998,"src":"2408:18:16","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},{"expression":{"id":4062,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4025,"src":"2428:6:16","typeDescriptions":{"typeIdentifier":"t_struct$_SVGParams_$4023_memory_ptr","typeString":"struct NFTSVG.SVGParams memory"}},"id":4063,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"overRange","nodeType":"MemberAccess","referencedDeclaration":4000,"src":"2428:16:16","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int24","typeString":"int24"},{"typeIdentifier":"t_int24","typeString":"int24"},{"typeIdentifier":"t_int24","typeString":"int24"},{"typeIdentifier":"t_int8","typeString":"int8"}],"id":4055,"name":"generageSvgCurve","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4340,"src":"2355:16:16","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int24_$_t_int24_$_t_int24_$_t_int8_$returns$_t_string_memory_ptr_$","typeString":"function (int24,int24,int24,int8) pure returns (string memory)"}},"id":4064,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2355:90:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":4066,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4025,"src":"2532:6:16","typeDescriptions":{"typeIdentifier":"t_struct$_SVGParams_$4023_memory_ptr","typeString":"struct NFTSVG.SVGParams memory"}},"id":4067,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"tokenId","nodeType":"MemberAccess","referencedDeclaration":4002,"src":"2532:14:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4068,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"toString","nodeType":"MemberAccess","referencedDeclaration":2054,"src":"2532:23:16","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_string_memory_ptr_$bound_to$_t_uint256_$","typeString":"function (uint256) pure returns (string memory)"}},"id":4069,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2532:25:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"expression":{"id":4070,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4025,"src":"2583:6:16","typeDescriptions":{"typeIdentifier":"t_struct$_SVGParams_$4023_memory_ptr","typeString":"struct NFTSVG.SVGParams memory"}},"id":4071,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"tickLower","nodeType":"MemberAccess","referencedDeclaration":3994,"src":"2583:16:16","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},{"expression":{"id":4072,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4025,"src":"2625:6:16","typeDescriptions":{"typeIdentifier":"t_struct$_SVGParams_$4023_memory_ptr","typeString":"struct NFTSVG.SVGParams memory"}},"id":4073,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"tickUpper","nodeType":"MemberAccess","referencedDeclaration":3996,"src":"2625:16:16","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_int24","typeString":"int24"},{"typeIdentifier":"t_int24","typeString":"int24"}],"id":4065,"name":"generateSVGPositionDataAndLocationCurve","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4655,"src":"2467:39:16","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$_t_int24_$_t_int24_$returns$_t_string_memory_ptr_$","typeString":"function (string memory,int24,int24) pure returns (string memory)"}},"id":4074,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2467:196:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"arguments":[{"expression":{"id":4076,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4025,"src":"2708:6:16","typeDescriptions":{"typeIdentifier":"t_struct$_SVGParams_$4023_memory_ptr","typeString":"struct NFTSVG.SVGParams memory"}},"id":4077,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"tokenId","nodeType":"MemberAccess","referencedDeclaration":4002,"src":"2708:14:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":4078,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4025,"src":"2724:6:16","typeDescriptions":{"typeIdentifier":"t_struct$_SVGParams_$4023_memory_ptr","typeString":"struct NFTSVG.SVGParams memory"}},"id":4079,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"poolAddress","nodeType":"MemberAccess","referencedDeclaration":3986,"src":"2724:18:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":4075,"name":"generateSVGRareSparkle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4843,"src":"2685:22:16","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_address_$returns$_t_string_memory_ptr_$","typeString":"function (uint256,address) pure returns (string memory)"}},"id":4080,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2685:58:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"3c2f7376673e","id":4081,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2765:8:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_ed942a74eccce931b7661b37252dffca8561e3a8bdec86f6da31d97d858c9292","typeString":"literal_string \"</svg>\""},"value":"</svg>"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_stringliteral_ed942a74eccce931b7661b37252dffca8561e3a8bdec86f6da31d97d858c9292","typeString":"literal_string \"</svg>\""}],"expression":{"id":4032,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1917:3:16","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":4033,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodePacked","nodeType":"MemberAccess","src":"1917:16:16","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":4082,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1917:874:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":4031,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1893:6:16","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":4030,"name":"string","nodeType":"ElementaryTypeName","src":"1893:6:16","typeDescriptions":{}}},"id":4083,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1893:912:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":4029,"id":4084,"nodeType":"Return","src":"1874:931:16"}]},"id":4086,"implemented":true,"kind":"function","modifiers":[],"name":"generateSVG","nodeType":"FunctionDefinition","parameters":{"id":4026,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4025,"mutability":"mutable","name":"params","nodeType":"VariableDeclaration","scope":4086,"src":"1448:23:16","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SVGParams_$4023_memory_ptr","typeString":"struct NFTSVG.SVGParams"},"typeName":{"id":4024,"name":"SVGParams","nodeType":"UserDefinedTypeName","referencedDeclaration":4023,"src":"1448:9:16","typeDescriptions":{"typeIdentifier":"t_struct$_SVGParams_$4023_storage_ptr","typeString":"struct NFTSVG.SVGParams"}},"visibility":"internal"}],"src":"1447:25:16"},"returnParameters":{"id":4029,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4028,"mutability":"mutable","name":"svg","nodeType":"VariableDeclaration","scope":4086,"src":"1496:17:16","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":4027,"name":"string","nodeType":"ElementaryTypeName","src":"1496:6:16","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1495:19:16"},"scope":4885,"src":"1427:1385:16","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4203,"nodeType":"Block","src":"2909:5252:16","statements":[{"expression":{"id":4201,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4093,"name":"svg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4091,"src":"2919:3:16","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"hexValue":"3c7376672077696474683d2232393022206865696768743d22353030222076696577426f783d2230203020323930203530302220786d6c6e733d22687474703a2f2f7777772e77332e6f72672f323030302f73766722","id":4098,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2979:88:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_12907fa788c43c090d50faf378fd6f9ac466c604e59cc51ff30ae1bbbc38c8bd","typeString":"literal_string \"<svg width=\"290\" height=\"500\" viewBox=\"0 0 290 500\" xmlns=\"http://www.w3.org/2000/svg\"\""},"value":"<svg width=\"290\" height=\"500\" viewBox=\"0 0 290 500\" xmlns=\"http://www.w3.org/2000/svg\""},{"hexValue":"20786d6c6e733a786c696e6b3d27687474703a2f2f7777772e77332e6f72672f313939392f786c696e6b273e","id":4099,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3085:46:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_84f36e7e631ec50512631a7d2b642e3c86e37c99d02e185264181ea0fe53feba","typeString":"literal_string \" xmlns:xlink='http://www.w3.org/1999/xlink'>\""},"value":" xmlns:xlink='http://www.w3.org/1999/xlink'>"},{"hexValue":"3c646566733e","id":4100,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3149:8:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_c9d6f35adafbd6db05cf66701a579ef4e1499ac0364b80726ad93d0f9855ba3a","typeString":"literal_string \"<defs>\""},"value":"<defs>"},{"hexValue":"3c66696c7465722069643d226631223e3c6665496d61676520726573756c743d2270302220786c696e6b3a687265663d22646174613a696d6167652f7376672b786d6c3b6261736536342c","id":4101,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3175:77:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_5f5eeeecaa6e9906b36c9738130fb3306daeecaf7d327c054480dbfce019ef56","typeString":"literal_string \"<filter id=\"f1\"><feImage result=\"p0\" xlink:href=\"data:image/svg+xml;base64,\""},"value":"<filter id=\"f1\"><feImage result=\"p0\" xlink:href=\"data:image/svg+xml;base64,"},{"arguments":[{"arguments":[{"arguments":[{"hexValue":"3c7376672077696474683d2732393027206865696768743d27353030272076696577426f783d2730203020323930203530302720786d6c6e733d27687474703a2f2f7777772e77332e6f72672f323030302f737667273e3c726563742077696474683d27323930707827206865696768743d273530307078272066696c6c3d2723","id":4108,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3382:131:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_6d360492c387efc9efda370d7689d5bdc8d71342f56e5194b111ebf036750734","typeString":"literal_string \"<svg width='290' height='500' viewBox='0 0 290 500' xmlns='http://www.w3.org/2000/svg'><rect width='290px' height='500px' fill='#\""},"value":"<svg width='290' height='500' viewBox='0 0 290 500' xmlns='http://www.w3.org/2000/svg'><rect width='290px' height='500px' fill='#"},{"expression":{"id":4109,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4088,"src":"3543:6:16","typeDescriptions":{"typeIdentifier":"t_struct$_SVGParams_$4023_memory_ptr","typeString":"struct NFTSVG.SVGParams memory"}},"id":4110,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"color0","nodeType":"MemberAccess","referencedDeclaration":4004,"src":"3543:13:16","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"272f3e3c2f7376673e","id":4111,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3586:11:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_6257da6d84399769a55eb558312555cad32511f19c4548b9e85f811c5fc99e3b","typeString":"literal_string \"'/></svg>\""},"value":"'/></svg>"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_6d360492c387efc9efda370d7689d5bdc8d71342f56e5194b111ebf036750734","typeString":"literal_string \"<svg width='290' height='500' viewBox='0 0 290 500' xmlns='http://www.w3.org/2000/svg'><rect width='290px' height='500px' fill='#\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_stringliteral_6257da6d84399769a55eb558312555cad32511f19c4548b9e85f811c5fc99e3b","typeString":"literal_string \"'/></svg>\""}],"expression":{"id":4106,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3336:3:16","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":4107,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodePacked","nodeType":"MemberAccess","src":"3336:16:16","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":4112,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3336:287:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":4105,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3305:5:16","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":4104,"name":"bytes","nodeType":"ElementaryTypeName","src":"3305:5:16","typeDescriptions":{}}},"id":4113,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3305:340:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":4102,"name":"Base64","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2105,"src":"3270:6:16","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Base64_$2105_$","typeString":"type(library Base64)"}},"id":4103,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"encode","nodeType":"MemberAccess","referencedDeclaration":2104,"src":"3270:13:16","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (bytes memory) pure returns (string memory)"}},"id":4114,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3270:393:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"222f3e3c6665496d61676520726573756c743d2270312220786c696e6b3a687265663d22646174613a696d6167652f7376672b786d6c3b6261736536342c","id":4115,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3681:64:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_c8625c4ff6c954b2db14bd1706ddcdc7c7bbd2e8489b900eeea309e5e9154d1f","typeString":"literal_string \"\"/><feImage result=\"p1\" xlink:href=\"data:image/svg+xml;base64,\""},"value":"\"/><feImage result=\"p1\" xlink:href=\"data:image/svg+xml;base64,"},{"arguments":[{"arguments":[{"arguments":[{"hexValue":"3c7376672077696474683d2732393027206865696768743d27353030272076696577426f783d2730203020323930203530302720786d6c6e733d27687474703a2f2f7777772e77332e6f72672f323030302f737667273e3c636972636c652063783d27","id":4122,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3875:101:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_3c48d7b755ef30478f9fcb7df9667e587d5469eaab81f8e56e6c358f2f43959f","typeString":"literal_string \"<svg width='290' height='500' viewBox='0 0 290 500' xmlns='http://www.w3.org/2000/svg'><circle cx='\""},"value":"<svg width='290' height='500' viewBox='0 0 290 500' xmlns='http://www.w3.org/2000/svg'><circle cx='"},{"expression":{"id":4123,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4088,"src":"4006:6:16","typeDescriptions":{"typeIdentifier":"t_struct$_SVGParams_$4023_memory_ptr","typeString":"struct NFTSVG.SVGParams memory"}},"id":4124,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"x1","nodeType":"MemberAccess","referencedDeclaration":4012,"src":"4006:9:16","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"272063793d27","id":4125,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4045:8:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_c122f56fb29fd1b2692bf38cf7def21d4f86567365fb92790a69e1dc6942704f","typeString":"literal_string \"' cy='\""},"value":"' cy='"},{"expression":{"id":4126,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4088,"src":"4083:6:16","typeDescriptions":{"typeIdentifier":"t_struct$_SVGParams_$4023_memory_ptr","typeString":"struct NFTSVG.SVGParams memory"}},"id":4127,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"y1","nodeType":"MemberAccess","referencedDeclaration":4014,"src":"4083:9:16","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"2720723d273132307078272066696c6c3d2723","id":4128,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4122:21:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_ee35ad264095963cb3d9258d9ab9354d54cabfc55aaceacbd7ebd9fec3d8f96a","typeString":"literal_string \"' r='120px' fill='#\""},"value":"' r='120px' fill='#"},{"expression":{"id":4129,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4088,"src":"4173:6:16","typeDescriptions":{"typeIdentifier":"t_struct$_SVGParams_$4023_memory_ptr","typeString":"struct NFTSVG.SVGParams memory"}},"id":4130,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"color1","nodeType":"MemberAccess","referencedDeclaration":4006,"src":"4173:13:16","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"272f3e3c2f7376673e","id":4131,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4216:11:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_6257da6d84399769a55eb558312555cad32511f19c4548b9e85f811c5fc99e3b","typeString":"literal_string \"'/></svg>\""},"value":"'/></svg>"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_3c48d7b755ef30478f9fcb7df9667e587d5469eaab81f8e56e6c358f2f43959f","typeString":"literal_string \"<svg width='290' height='500' viewBox='0 0 290 500' xmlns='http://www.w3.org/2000/svg'><circle cx='\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_stringliteral_c122f56fb29fd1b2692bf38cf7def21d4f86567365fb92790a69e1dc6942704f","typeString":"literal_string \"' cy='\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_stringliteral_ee35ad264095963cb3d9258d9ab9354d54cabfc55aaceacbd7ebd9fec3d8f96a","typeString":"literal_string \"' r='120px' fill='#\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_stringliteral_6257da6d84399769a55eb558312555cad32511f19c4548b9e85f811c5fc99e3b","typeString":"literal_string \"'/></svg>\""}],"expression":{"id":4120,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3829:3:16","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":4121,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodePacked","nodeType":"MemberAccess","src":"3829:16:16","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":4132,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3829:424:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":4119,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3798:5:16","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":4118,"name":"bytes","nodeType":"ElementaryTypeName","src":"3798:5:16","typeDescriptions":{}}},"id":4133,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3798:477:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":4116,"name":"Base64","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2105,"src":"3763:6:16","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Base64_$2105_$","typeString":"type(library Base64)"}},"id":4117,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"encode","nodeType":"MemberAccess","referencedDeclaration":2104,"src":"3763:13:16","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (bytes memory) pure returns (string memory)"}},"id":4134,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3763:530:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"222f3e3c6665496d61676520726573756c743d2270322220786c696e6b3a687265663d22646174613a696d6167652f7376672b786d6c3b6261736536342c","id":4135,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4311:64:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_735ef1ca53a2b4f5317a913b38868565c310f491134932b2790ac296eda48267","typeString":"literal_string \"\"/><feImage result=\"p2\" xlink:href=\"data:image/svg+xml;base64,\""},"value":"\"/><feImage result=\"p2\" xlink:href=\"data:image/svg+xml;base64,"},{"arguments":[{"arguments":[{"arguments":[{"hexValue":"3c7376672077696474683d2732393027206865696768743d27353030272076696577426f783d2730203020323930203530302720786d6c6e733d27687474703a2f2f7777772e77332e6f72672f323030302f737667273e3c636972636c652063783d27","id":4142,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4505:101:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_3c48d7b755ef30478f9fcb7df9667e587d5469eaab81f8e56e6c358f2f43959f","typeString":"literal_string \"<svg width='290' height='500' viewBox='0 0 290 500' xmlns='http://www.w3.org/2000/svg'><circle cx='\""},"value":"<svg width='290' height='500' viewBox='0 0 290 500' xmlns='http://www.w3.org/2000/svg'><circle cx='"},{"expression":{"id":4143,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4088,"src":"4636:6:16","typeDescriptions":{"typeIdentifier":"t_struct$_SVGParams_$4023_memory_ptr","typeString":"struct NFTSVG.SVGParams memory"}},"id":4144,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"x2","nodeType":"MemberAccess","referencedDeclaration":4016,"src":"4636:9:16","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"272063793d27","id":4145,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4675:8:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_c122f56fb29fd1b2692bf38cf7def21d4f86567365fb92790a69e1dc6942704f","typeString":"literal_string \"' cy='\""},"value":"' cy='"},{"expression":{"id":4146,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4088,"src":"4713:6:16","typeDescriptions":{"typeIdentifier":"t_struct$_SVGParams_$4023_memory_ptr","typeString":"struct NFTSVG.SVGParams memory"}},"id":4147,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"y2","nodeType":"MemberAccess","referencedDeclaration":4018,"src":"4713:9:16","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"2720723d273132307078272066696c6c3d2723","id":4148,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4752:21:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_ee35ad264095963cb3d9258d9ab9354d54cabfc55aaceacbd7ebd9fec3d8f96a","typeString":"literal_string \"' r='120px' fill='#\""},"value":"' r='120px' fill='#"},{"expression":{"id":4149,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4088,"src":"4803:6:16","typeDescriptions":{"typeIdentifier":"t_struct$_SVGParams_$4023_memory_ptr","typeString":"struct NFTSVG.SVGParams memory"}},"id":4150,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"color2","nodeType":"MemberAccess","referencedDeclaration":4008,"src":"4803:13:16","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"272f3e3c2f7376673e","id":4151,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4846:11:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_6257da6d84399769a55eb558312555cad32511f19c4548b9e85f811c5fc99e3b","typeString":"literal_string \"'/></svg>\""},"value":"'/></svg>"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_3c48d7b755ef30478f9fcb7df9667e587d5469eaab81f8e56e6c358f2f43959f","typeString":"literal_string \"<svg width='290' height='500' viewBox='0 0 290 500' xmlns='http://www.w3.org/2000/svg'><circle cx='\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_stringliteral_c122f56fb29fd1b2692bf38cf7def21d4f86567365fb92790a69e1dc6942704f","typeString":"literal_string \"' cy='\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_stringliteral_ee35ad264095963cb3d9258d9ab9354d54cabfc55aaceacbd7ebd9fec3d8f96a","typeString":"literal_string \"' r='120px' fill='#\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_stringliteral_6257da6d84399769a55eb558312555cad32511f19c4548b9e85f811c5fc99e3b","typeString":"literal_string \"'/></svg>\""}],"expression":{"id":4140,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4459:3:16","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":4141,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodePacked","nodeType":"MemberAccess","src":"4459:16:16","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":4152,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4459:424:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":4139,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4428:5:16","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":4138,"name":"bytes","nodeType":"ElementaryTypeName","src":"4428:5:16","typeDescriptions":{}}},"id":4153,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4428:477:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":4136,"name":"Base64","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2105,"src":"4393:6:16","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Base64_$2105_$","typeString":"type(library Base64)"}},"id":4137,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"encode","nodeType":"MemberAccess","referencedDeclaration":2104,"src":"4393:13:16","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (bytes memory) pure returns (string memory)"}},"id":4154,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4393:530:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"22202f3e","id":4155,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4941:6:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_72725e47f491f4a2a7cef9977dd6b3ea1a81d838d9448981484a063dc011d6ba","typeString":"literal_string \"\" />\""},"value":"\" />"},{"hexValue":"3c6665496d61676520726573756c743d2270332220786c696e6b3a687265663d22646174613a696d6167652f7376672b786d6c3b6261736536342c","id":4156,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4965:61:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_0b30bb9ee6214545b9ea9097efb5de130600391f40197f097cab945da2430220","typeString":"literal_string \"<feImage result=\"p3\" xlink:href=\"data:image/svg+xml;base64,\""},"value":"<feImage result=\"p3\" xlink:href=\"data:image/svg+xml;base64,"},{"arguments":[{"arguments":[{"arguments":[{"hexValue":"3c7376672077696474683d2732393027206865696768743d27353030272076696577426f783d2730203020323930203530302720786d6c6e733d27687474703a2f2f7777772e77332e6f72672f323030302f737667273e3c636972636c652063783d27","id":4163,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5156:101:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_3c48d7b755ef30478f9fcb7df9667e587d5469eaab81f8e56e6c358f2f43959f","typeString":"literal_string \"<svg width='290' height='500' viewBox='0 0 290 500' xmlns='http://www.w3.org/2000/svg'><circle cx='\""},"value":"<svg width='290' height='500' viewBox='0 0 290 500' xmlns='http://www.w3.org/2000/svg'><circle cx='"},{"expression":{"id":4164,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4088,"src":"5287:6:16","typeDescriptions":{"typeIdentifier":"t_struct$_SVGParams_$4023_memory_ptr","typeString":"struct NFTSVG.SVGParams memory"}},"id":4165,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"x3","nodeType":"MemberAccess","referencedDeclaration":4020,"src":"5287:9:16","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"272063793d27","id":4166,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5326:8:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_c122f56fb29fd1b2692bf38cf7def21d4f86567365fb92790a69e1dc6942704f","typeString":"literal_string \"' cy='\""},"value":"' cy='"},{"expression":{"id":4167,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4088,"src":"5364:6:16","typeDescriptions":{"typeIdentifier":"t_struct$_SVGParams_$4023_memory_ptr","typeString":"struct NFTSVG.SVGParams memory"}},"id":4168,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"y3","nodeType":"MemberAccess","referencedDeclaration":4022,"src":"5364:9:16","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"2720723d273130307078272066696c6c3d2723","id":4169,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5403:21:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_fa7e81ce29c44abe3185d042987960e602335452077f02be3f9233e7ae91d760","typeString":"literal_string \"' r='100px' fill='#\""},"value":"' r='100px' fill='#"},{"expression":{"id":4170,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4088,"src":"5454:6:16","typeDescriptions":{"typeIdentifier":"t_struct$_SVGParams_$4023_memory_ptr","typeString":"struct NFTSVG.SVGParams memory"}},"id":4171,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"color3","nodeType":"MemberAccess","referencedDeclaration":4010,"src":"5454:13:16","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"272f3e3c2f7376673e","id":4172,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5497:11:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_6257da6d84399769a55eb558312555cad32511f19c4548b9e85f811c5fc99e3b","typeString":"literal_string \"'/></svg>\""},"value":"'/></svg>"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_3c48d7b755ef30478f9fcb7df9667e587d5469eaab81f8e56e6c358f2f43959f","typeString":"literal_string \"<svg width='290' height='500' viewBox='0 0 290 500' xmlns='http://www.w3.org/2000/svg'><circle cx='\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_stringliteral_c122f56fb29fd1b2692bf38cf7def21d4f86567365fb92790a69e1dc6942704f","typeString":"literal_string \"' cy='\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_stringliteral_fa7e81ce29c44abe3185d042987960e602335452077f02be3f9233e7ae91d760","typeString":"literal_string \"' r='100px' fill='#\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_stringliteral_6257da6d84399769a55eb558312555cad32511f19c4548b9e85f811c5fc99e3b","typeString":"literal_string \"'/></svg>\""}],"expression":{"id":4161,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5110:3:16","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":4162,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodePacked","nodeType":"MemberAccess","src":"5110:16:16","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":4173,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5110:424:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":4160,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5079:5:16","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":4159,"name":"bytes","nodeType":"ElementaryTypeName","src":"5079:5:16","typeDescriptions":{}}},"id":4174,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5079:477:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":4157,"name":"Base64","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2105,"src":"5044:6:16","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Base64_$2105_$","typeString":"type(library Base64)"}},"id":4158,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"encode","nodeType":"MemberAccess","referencedDeclaration":2104,"src":"5044:13:16","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (bytes memory) pure returns (string memory)"}},"id":4175,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5044:530:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"22202f3e3c6665426c656e64206d6f64653d226f7665726c61792220696e3d2270302220696e323d22703122202f3e3c6665426c656e64206d6f64653d226578636c7573696f6e2220696e323d22703222202f3e3c6665426c656e64206d6f64653d226f7665726c61792220696e323d2270332220726573756c743d22626c656e644f757422202f3e3c6665476175737369616e426c757220","id":4176,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5592:155:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_483cd74bda08c7fcbdbb6c7b6985427b6812d47c5633f98b9e7615f669d7fafd","typeString":"literal_string \"\" /><feBlend mode=\"overlay\" in=\"p0\" in2=\"p1\" /><feBlend mode=\"exclusion\" in2=\"p2\" /><feBlend mode=\"overlay\" in2=\"p3\" result=\"blendOut\" /><feGaussianBlur \""},"value":"\" /><feBlend mode=\"overlay\" in=\"p0\" in2=\"p1\" /><feBlend mode=\"exclusion\" in2=\"p2\" /><feBlend mode=\"overlay\" in2=\"p3\" result=\"blendOut\" /><feGaussianBlur "},{"hexValue":"696e3d22626c656e644f75742220737464446576696174696f6e3d22343222202f3e3c2f66696c7465723e203c636c6970506174682069643d22636f726e657273223e3c726563742077696474683d2232393022206865696768743d22353030222072783d223432222072793d22343222202f3e3c2f636c6970506174683e","id":4177,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5765:129:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_9f99c7530ff67b359dedbad02f868664b6089e4d686e89626dd44608ff6aab0f","typeString":"literal_string \"in=\"blendOut\" stdDeviation=\"42\" /></filter> <clipPath id=\"corners\"><rect width=\"290\" height=\"500\" rx=\"42\" ry=\"42\" /></clipPath>\""},"value":"in=\"blendOut\" stdDeviation=\"42\" /></filter> <clipPath id=\"corners\"><rect width=\"290\" height=\"500\" rx=\"42\" ry=\"42\" /></clipPath>"},{"hexValue":"3c706174682069643d22746578742d706174682d612220643d224d34302031322048323530204132382032382030203020312032373820343020563436302041323820323820302030203120323530203438382048343020413238203238203020302031203132203436302056343020413238203238203020302031203430203132207a22202f3e","id":4178,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5912:138:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5b5eb1e85523a3353e56e3248818f208aaa79b1a09fe2e08149ce0068d90fe9","typeString":"literal_string \"<path id=\"text-path-a\" d=\"M40 12 H250 A28 28 0 0 1 278 40 V460 A28 28 0 0 1 250 488 H40 A28 28 0 0 1 12 460 V40 A28 28 0 0 1 40 12 z\" />\""},"value":"<path id=\"text-path-a\" d=\"M40 12 H250 A28 28 0 0 1 278 40 V460 A28 28 0 0 1 250 488 H40 A28 28 0 0 1 12 460 V40 A28 28 0 0 1 40 12 z\" />"},{"hexValue":"3c706174682069643d226d696e696d61702220643d224d3233342034343443323334203435372e393439203234322e323120343633203235332034363322202f3e","id":4179,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6068:67:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_4b758653276e34b83f020b245d8a586eaf9cd26fbd97d7d3714c690e304e5721","typeString":"literal_string \"<path id=\"minimap\" d=\"M234 444C234 457.949 242.21 463 253 463\" />\""},"value":"<path id=\"minimap\" d=\"M234 444C234 457.949 242.21 463 253 463\" />"},{"hexValue":"3c66696c7465722069643d22746f702d726567696f6e2d626c7572223e3c6665476175737369616e426c757220696e3d22536f75726365477261706869632220737464446576696174696f6e3d22323422202f3e3c2f66696c7465723e","id":4180,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6153:95:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_cce19a9de29f73714bae13db1d73ac08b59c78313444c83363cfef09d838c0c4","typeString":"literal_string \"<filter id=\"top-region-blur\"><feGaussianBlur in=\"SourceGraphic\" stdDeviation=\"24\" /></filter>\""},"value":"<filter id=\"top-region-blur\"><feGaussianBlur in=\"SourceGraphic\" stdDeviation=\"24\" /></filter>"},{"hexValue":"3c6c696e6561724772616469656e742069643d22677261642d7570222078313d2231222078323d2230222079313d2231222079323d2230223e3c73746f70206f66667365743d22302e30222073746f702d636f6c6f723d227768697465222073746f702d6f7061636974793d223122202f3e","id":4181,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6266:116:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_a48f5f7836be870d77eac2feb87ec3732b4080b65a510a3f3cf11dab86d57166","typeString":"literal_string \"<linearGradient id=\"grad-up\" x1=\"1\" x2=\"0\" y1=\"1\" y2=\"0\"><stop offset=\"0.0\" stop-color=\"white\" stop-opacity=\"1\" />\""},"value":"<linearGradient id=\"grad-up\" x1=\"1\" x2=\"0\" y1=\"1\" y2=\"0\"><stop offset=\"0.0\" stop-color=\"white\" stop-opacity=\"1\" />"},{"hexValue":"3c73746f70206f66667365743d222e39222073746f702d636f6c6f723d227768697465222073746f702d6f7061636974793d223022202f3e3c2f6c696e6561724772616469656e743e","id":4182,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6400:75:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_07d6b453733dfcd6acccdef8bdba430d27327460b66a4169d73ced361868fbe9","typeString":"literal_string \"<stop offset=\".9\" stop-color=\"white\" stop-opacity=\"0\" /></linearGradient>\""},"value":"<stop offset=\".9\" stop-color=\"white\" stop-opacity=\"0\" /></linearGradient>"},{"hexValue":"3c6c696e6561724772616469656e742069643d22677261642d646f776e222078313d2230222078323d2231222079313d2230222079323d2231223e3c73746f70206f66667365743d22302e30222073746f702d636f6c6f723d227768697465222073746f702d6f7061636974793d223122202f3e3c73746f70206f66667365743d22302e39222073746f702d636f6c6f723d227768697465222073746f702d6f7061636974793d223022202f3e3c2f6c696e6561724772616469656e743e","id":4183,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6493:192:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_5d5eff5a3ee8c17e11f3f4661e6d1155f39e626dc52ccd2ee80907a3b00329d4","typeString":"literal_string \"<linearGradient id=\"grad-down\" x1=\"0\" x2=\"1\" y1=\"0\" y2=\"1\"><stop offset=\"0.0\" stop-color=\"white\" stop-opacity=\"1\" /><stop offset=\"0.9\" stop-color=\"white\" stop-opacity=\"0\" /></linearGradient>\""},"value":"<linearGradient id=\"grad-down\" x1=\"0\" x2=\"1\" y1=\"0\" y2=\"1\"><stop offset=\"0.0\" stop-color=\"white\" stop-opacity=\"1\" /><stop offset=\"0.9\" stop-color=\"white\" stop-opacity=\"0\" /></linearGradient>"},{"hexValue":"3c6d61736b2069643d22666164652d757022206d61736b436f6e74656e74556e6974733d226f626a656374426f756e64696e67426f78223e3c726563742077696474683d223122206865696768743d2231222066696c6c3d2275726c2823677261642d75702922202f3e3c2f6d61736b3e","id":4184,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6703:115:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_1bdc0da2fd5d7002fb2e67d70b3a4672d03997001c86f1c58ba784d0bc3656db","typeString":"literal_string \"<mask id=\"fade-up\" maskContentUnits=\"objectBoundingBox\"><rect width=\"1\" height=\"1\" fill=\"url(#grad-up)\" /></mask>\""},"value":"<mask id=\"fade-up\" maskContentUnits=\"objectBoundingBox\"><rect width=\"1\" height=\"1\" fill=\"url(#grad-up)\" /></mask>"},{"hexValue":"3c6d61736b2069643d22666164652d646f776e22206d61736b436f6e74656e74556e6974733d226f626a656374426f756e64696e67426f78223e3c726563742077696474683d223122206865696768743d2231222066696c6c3d2275726c2823677261642d646f776e2922202f3e3c2f6d61736b3e","id":4185,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6836:119:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_9981a2a43c36ee7e45e960c26200a8b379d01168693d5029bb6fd776ef3ff2b1","typeString":"literal_string \"<mask id=\"fade-down\" maskContentUnits=\"objectBoundingBox\"><rect width=\"1\" height=\"1\" fill=\"url(#grad-down)\" /></mask>\""},"value":"<mask id=\"fade-down\" maskContentUnits=\"objectBoundingBox\"><rect width=\"1\" height=\"1\" fill=\"url(#grad-down)\" /></mask>"},{"hexValue":"3c6d61736b2069643d226e6f6e6522206d61736b436f6e74656e74556e6974733d226f626a656374426f756e64696e67426f78223e3c726563742077696474683d223122206865696768743d2231222066696c6c3d22776869746522202f3e3c2f6d61736b3e","id":4186,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6973:104:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_4e169cb09c58f4c64bb0df0614abdbc124a0076dcd8783c87e43cbd0d73facd1","typeString":"literal_string \"<mask id=\"none\" maskContentUnits=\"objectBoundingBox\"><rect width=\"1\" height=\"1\" fill=\"white\" /></mask>\""},"value":"<mask id=\"none\" maskContentUnits=\"objectBoundingBox\"><rect width=\"1\" height=\"1\" fill=\"white\" /></mask>"},{"hexValue":"3c6c696e6561724772616469656e742069643d22677261642d73796d626f6c223e3c73746f70206f66667365743d22302e37222073746f702d636f6c6f723d227768697465222073746f702d6f7061636974793d223122202f3e3c73746f70206f66667365743d222e3935222073746f702d636f6c6f723d227768697465222073746f702d6f7061636974793d223022202f3e3c2f6c696e6561724772616469656e743e","id":4187,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7095:166:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_870e80063d91f6eff2750dd8a16316f934ba72da9e645a88b6f89454be1f4aef","typeString":"literal_string \"<linearGradient id=\"grad-symbol\"><stop offset=\"0.7\" stop-color=\"white\" stop-opacity=\"1\" /><stop offset=\".95\" stop-color=\"white\" stop-opacity=\"0\" /></linearGradient>\""},"value":"<linearGradient id=\"grad-symbol\"><stop offset=\"0.7\" stop-color=\"white\" stop-opacity=\"1\" /><stop offset=\".95\" stop-color=\"white\" stop-opacity=\"0\" /></linearGradient>"},{"hexValue":"3c6d61736b2069643d22666164652d73796d626f6c22206d61736b436f6e74656e74556e6974733d227573657253706163654f6e557365223e3c726563742077696474683d22323930707822206865696768743d223230307078222066696c6c3d2275726c2823677261642d73796d626f6c2922202f3e3c2f6d61736b3e3c2f646566733e","id":4188,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7279:135:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_ca0f24c57a59db85f494ba6c0b8c49c5859b9cc88ba864c52bba19e858e653dd","typeString":"literal_string \"<mask id=\"fade-symbol\" maskContentUnits=\"userSpaceOnUse\"><rect width=\"290px\" height=\"200px\" fill=\"url(#grad-symbol)\" /></mask></defs>\""},"value":"<mask id=\"fade-symbol\" maskContentUnits=\"userSpaceOnUse\"><rect width=\"290px\" height=\"200px\" fill=\"url(#grad-symbol)\" /></mask></defs>"},{"hexValue":"3c6720636c69702d706174683d2275726c2823636f726e65727329223e","id":4189,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7432:31:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_f091cfa977578cc3d31efb8591842fc4f1d1db02114f63fef964dafa0922c62d","typeString":"literal_string \"<g clip-path=\"url(#corners)\">\""},"value":"<g clip-path=\"url(#corners)\">"},{"hexValue":"3c726563742066696c6c3d22","id":4190,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7481:14:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_84a823de185a2fe7015241c324f6c784eee47f2e7607badbd7abefa617433556","typeString":"literal_string \"<rect fill=\"\""},"value":"<rect fill=\""},{"expression":{"id":4191,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4088,"src":"7513:6:16","typeDescriptions":{"typeIdentifier":"t_struct$_SVGParams_$4023_memory_ptr","typeString":"struct NFTSVG.SVGParams memory"}},"id":4192,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"color0","nodeType":"MemberAccess","referencedDeclaration":4004,"src":"7513:13:16","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"2220783d223070782220793d22307078222077696474683d22323930707822206865696768743d22353030707822202f3e","id":4193,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7544:51:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_53fd26dadfe66b5102855d57af8e557a2267beae8def1e64f35bbd9a2d281ff9","typeString":"literal_string \"\" x=\"0px\" y=\"0px\" width=\"290px\" height=\"500px\" />\""},"value":"\" x=\"0px\" y=\"0px\" width=\"290px\" height=\"500px\" />"},{"hexValue":"3c72656374207374796c653d2266696c7465723a2075726c28236631292220783d223070782220793d22307078222077696474683d22323930707822206865696768743d22353030707822202f3e","id":4194,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7613:80:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_09b07dfc70a17fef45f6fe3d38c10da942afae7501f50d1fe821bf1419a6c973","typeString":"literal_string \"<rect style=\"filter: url(#f1)\" x=\"0px\" y=\"0px\" width=\"290px\" height=\"500px\" />\""},"value":"<rect style=\"filter: url(#f1)\" x=\"0px\" y=\"0px\" width=\"290px\" height=\"500px\" />"},{"hexValue":"203c67207374796c653d2266696c7465723a75726c2823746f702d726567696f6e2d626c7572293b207472616e73666f726d3a7363616c6528312e35293b207472616e73666f726d2d6f726967696e3a63656e74657220746f703b223e","id":4195,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7711:95:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_4639f96f89d1ef49f25e5140ee8e04694d126a00020aebcb2df7e75b5d9e8ff8","typeString":"literal_string \" <g style=\"filter:url(#top-region-blur); transform:scale(1.5); transform-origin:center top;\">\""},"value":" <g style=\"filter:url(#top-region-blur); transform:scale(1.5); transform-origin:center top;\">"},{"hexValue":"3c726563742066696c6c3d226e6f6e652220783d223070782220793d22307078222077696474683d22323930707822206865696768743d22353030707822202f3e","id":4196,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7824:67:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_8341c95578aab9bb12f989782d4cab355e9933e289241d0b82aafe9fda945df1","typeString":"literal_string \"<rect fill=\"none\" x=\"0px\" y=\"0px\" width=\"290px\" height=\"500px\" />\""},"value":"<rect fill=\"none\" x=\"0px\" y=\"0px\" width=\"290px\" height=\"500px\" />"},{"hexValue":"3c656c6c697073652063783d22353025222063793d22307078222072783d223138307078222072793d223132307078222066696c6c3d222330303022206f7061636974793d22302e383522202f3e3c2f673e","id":4197,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7909:84:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_79d1157f01e06698bf30fbcaee454ea514c61e81bedfc1aec9b48b048d03b463","typeString":"literal_string \"<ellipse cx=\"50%\" cy=\"0px\" rx=\"180px\" ry=\"120px\" fill=\"#000\" opacity=\"0.85\" /></g>\""},"value":"<ellipse cx=\"50%\" cy=\"0px\" rx=\"180px\" ry=\"120px\" fill=\"#000\" opacity=\"0.85\" /></g>"},{"hexValue":"3c7265637420783d22302220793d2230222077696474683d2232393022206865696768743d22353030222072783d223432222072793d223432222066696c6c3d227267626128302c302c302c302922207374726f6b653d2272676261283235352c3235352c3235352c302e322922202f3e3c2f673e","id":4198,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8011:119:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_ca91dbc17e7b32a20d9c61bf3a31fc39e1843cdda3f9b6d132c3190c832ad888","typeString":"literal_string \"<rect x=\"0\" y=\"0\" width=\"290\" height=\"500\" rx=\"42\" ry=\"42\" fill=\"rgba(0,0,0,0)\" stroke=\"rgba(255,255,255,0.2)\" /></g>\""},"value":"<rect x=\"0\" y=\"0\" width=\"290\" height=\"500\" rx=\"42\" ry=\"42\" fill=\"rgba(0,0,0,0)\" stroke=\"rgba(255,255,255,0.2)\" /></g>"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_12907fa788c43c090d50faf378fd6f9ac466c604e59cc51ff30ae1bbbc38c8bd","typeString":"literal_string \"<svg width=\"290\" height=\"500\" viewBox=\"0 0 290 500\" xmlns=\"http://www.w3.org/2000/svg\"\""},{"typeIdentifier":"t_stringliteral_84f36e7e631ec50512631a7d2b642e3c86e37c99d02e185264181ea0fe53feba","typeString":"literal_string \" xmlns:xlink='http://www.w3.org/1999/xlink'>\""},{"typeIdentifier":"t_stringliteral_c9d6f35adafbd6db05cf66701a579ef4e1499ac0364b80726ad93d0f9855ba3a","typeString":"literal_string \"<defs>\""},{"typeIdentifier":"t_stringliteral_5f5eeeecaa6e9906b36c9738130fb3306daeecaf7d327c054480dbfce019ef56","typeString":"literal_string \"<filter id=\"f1\"><feImage result=\"p0\" xlink:href=\"data:image/svg+xml;base64,\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_stringliteral_c8625c4ff6c954b2db14bd1706ddcdc7c7bbd2e8489b900eeea309e5e9154d1f","typeString":"literal_string \"\"/><feImage result=\"p1\" xlink:href=\"data:image/svg+xml;base64,\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_stringliteral_735ef1ca53a2b4f5317a913b38868565c310f491134932b2790ac296eda48267","typeString":"literal_string \"\"/><feImage result=\"p2\" xlink:href=\"data:image/svg+xml;base64,\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_stringliteral_72725e47f491f4a2a7cef9977dd6b3ea1a81d838d9448981484a063dc011d6ba","typeString":"literal_string \"\" />\""},{"typeIdentifier":"t_stringliteral_0b30bb9ee6214545b9ea9097efb5de130600391f40197f097cab945da2430220","typeString":"literal_string \"<feImage result=\"p3\" xlink:href=\"data:image/svg+xml;base64,\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_stringliteral_483cd74bda08c7fcbdbb6c7b6985427b6812d47c5633f98b9e7615f669d7fafd","typeString":"literal_string \"\" /><feBlend mode=\"overlay\" in=\"p0\" in2=\"p1\" /><feBlend mode=\"exclusion\" in2=\"p2\" /><feBlend mode=\"overlay\" in2=\"p3\" result=\"blendOut\" /><feGaussianBlur \""},{"typeIdentifier":"t_stringliteral_9f99c7530ff67b359dedbad02f868664b6089e4d686e89626dd44608ff6aab0f","typeString":"literal_string \"in=\"blendOut\" stdDeviation=\"42\" /></filter> <clipPath id=\"corners\"><rect width=\"290\" height=\"500\" rx=\"42\" ry=\"42\" /></clipPath>\""},{"typeIdentifier":"t_stringliteral_c5b5eb1e85523a3353e56e3248818f208aaa79b1a09fe2e08149ce0068d90fe9","typeString":"literal_string \"<path id=\"text-path-a\" d=\"M40 12 H250 A28 28 0 0 1 278 40 V460 A28 28 0 0 1 250 488 H40 A28 28 0 0 1 12 460 V40 A28 28 0 0 1 40 12 z\" />\""},{"typeIdentifier":"t_stringliteral_4b758653276e34b83f020b245d8a586eaf9cd26fbd97d7d3714c690e304e5721","typeString":"literal_string \"<path id=\"minimap\" d=\"M234 444C234 457.949 242.21 463 253 463\" />\""},{"typeIdentifier":"t_stringliteral_cce19a9de29f73714bae13db1d73ac08b59c78313444c83363cfef09d838c0c4","typeString":"literal_string \"<filter id=\"top-region-blur\"><feGaussianBlur in=\"SourceGraphic\" stdDeviation=\"24\" /></filter>\""},{"typeIdentifier":"t_stringliteral_a48f5f7836be870d77eac2feb87ec3732b4080b65a510a3f3cf11dab86d57166","typeString":"literal_string \"<linearGradient id=\"grad-up\" x1=\"1\" x2=\"0\" y1=\"1\" y2=\"0\"><stop offset=\"0.0\" stop-color=\"white\" stop-opacity=\"1\" />\""},{"typeIdentifier":"t_stringliteral_07d6b453733dfcd6acccdef8bdba430d27327460b66a4169d73ced361868fbe9","typeString":"literal_string \"<stop offset=\".9\" stop-color=\"white\" stop-opacity=\"0\" /></linearGradient>\""},{"typeIdentifier":"t_stringliteral_5d5eff5a3ee8c17e11f3f4661e6d1155f39e626dc52ccd2ee80907a3b00329d4","typeString":"literal_string \"<linearGradient id=\"grad-down\" x1=\"0\" x2=\"1\" y1=\"0\" y2=\"1\"><stop offset=\"0.0\" stop-color=\"white\" stop-opacity=\"1\" /><stop offset=\"0.9\" stop-color=\"white\" stop-opacity=\"0\" /></linearGradient>\""},{"typeIdentifier":"t_stringliteral_1bdc0da2fd5d7002fb2e67d70b3a4672d03997001c86f1c58ba784d0bc3656db","typeString":"literal_string \"<mask id=\"fade-up\" maskContentUnits=\"objectBoundingBox\"><rect width=\"1\" height=\"1\" fill=\"url(#grad-up)\" /></mask>\""},{"typeIdentifier":"t_stringliteral_9981a2a43c36ee7e45e960c26200a8b379d01168693d5029bb6fd776ef3ff2b1","typeString":"literal_string \"<mask id=\"fade-down\" maskContentUnits=\"objectBoundingBox\"><rect width=\"1\" height=\"1\" fill=\"url(#grad-down)\" /></mask>\""},{"typeIdentifier":"t_stringliteral_4e169cb09c58f4c64bb0df0614abdbc124a0076dcd8783c87e43cbd0d73facd1","typeString":"literal_string \"<mask id=\"none\" maskContentUnits=\"objectBoundingBox\"><rect width=\"1\" height=\"1\" fill=\"white\" /></mask>\""},{"typeIdentifier":"t_stringliteral_870e80063d91f6eff2750dd8a16316f934ba72da9e645a88b6f89454be1f4aef","typeString":"literal_string \"<linearGradient id=\"grad-symbol\"><stop offset=\"0.7\" stop-color=\"white\" stop-opacity=\"1\" /><stop offset=\".95\" stop-color=\"white\" stop-opacity=\"0\" /></linearGradient>\""},{"typeIdentifier":"t_stringliteral_ca0f24c57a59db85f494ba6c0b8c49c5859b9cc88ba864c52bba19e858e653dd","typeString":"literal_string \"<mask id=\"fade-symbol\" maskContentUnits=\"userSpaceOnUse\"><rect width=\"290px\" height=\"200px\" fill=\"url(#grad-symbol)\" /></mask></defs>\""},{"typeIdentifier":"t_stringliteral_f091cfa977578cc3d31efb8591842fc4f1d1db02114f63fef964dafa0922c62d","typeString":"literal_string \"<g clip-path=\"url(#corners)\">\""},{"typeIdentifier":"t_stringliteral_84a823de185a2fe7015241c324f6c784eee47f2e7607badbd7abefa617433556","typeString":"literal_string \"<rect fill=\"\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_stringliteral_53fd26dadfe66b5102855d57af8e557a2267beae8def1e64f35bbd9a2d281ff9","typeString":"literal_string \"\" x=\"0px\" y=\"0px\" width=\"290px\" height=\"500px\" />\""},{"typeIdentifier":"t_stringliteral_09b07dfc70a17fef45f6fe3d38c10da942afae7501f50d1fe821bf1419a6c973","typeString":"literal_string \"<rect style=\"filter: url(#f1)\" x=\"0px\" y=\"0px\" width=\"290px\" height=\"500px\" />\""},{"typeIdentifier":"t_stringliteral_4639f96f89d1ef49f25e5140ee8e04694d126a00020aebcb2df7e75b5d9e8ff8","typeString":"literal_string \" <g style=\"filter:url(#top-region-blur); transform:scale(1.5); transform-origin:center top;\">\""},{"typeIdentifier":"t_stringliteral_8341c95578aab9bb12f989782d4cab355e9933e289241d0b82aafe9fda945df1","typeString":"literal_string \"<rect fill=\"none\" x=\"0px\" y=\"0px\" width=\"290px\" height=\"500px\" />\""},{"typeIdentifier":"t_stringliteral_79d1157f01e06698bf30fbcaee454ea514c61e81bedfc1aec9b48b048d03b463","typeString":"literal_string \"<ellipse cx=\"50%\" cy=\"0px\" rx=\"180px\" ry=\"120px\" fill=\"#000\" opacity=\"0.85\" /></g>\""},{"typeIdentifier":"t_stringliteral_ca91dbc17e7b32a20d9c61bf3a31fc39e1843cdda3f9b6d132c3190c832ad888","typeString":"literal_string \"<rect x=\"0\" y=\"0\" width=\"290\" height=\"500\" rx=\"42\" ry=\"42\" fill=\"rgba(0,0,0,0)\" stroke=\"rgba(255,255,255,0.2)\" /></g>\""}],"expression":{"id":4096,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2945:3:16","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":4097,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodePacked","nodeType":"MemberAccess","src":"2945:16:16","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":4199,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2945:5199:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":4095,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2925:6:16","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":4094,"name":"string","nodeType":"ElementaryTypeName","src":"2925:6:16","typeDescriptions":{}}},"id":4200,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2925:5229:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"2919:5235:16","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":4202,"nodeType":"ExpressionStatement","src":"2919:5235:16"}]},"id":4204,"implemented":true,"kind":"function","modifiers":[],"name":"generateSVGDefs","nodeType":"FunctionDefinition","parameters":{"id":4089,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4088,"mutability":"mutable","name":"params","nodeType":"VariableDeclaration","scope":4204,"src":"2843:23:16","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SVGParams_$4023_memory_ptr","typeString":"struct NFTSVG.SVGParams"},"typeName":{"id":4087,"name":"SVGParams","nodeType":"UserDefinedTypeName","referencedDeclaration":4023,"src":"2843:9:16","typeDescriptions":{"typeIdentifier":"t_struct$_SVGParams_$4023_storage_ptr","typeString":"struct NFTSVG.SVGParams"}},"visibility":"internal"}],"src":"2842:25:16"},"returnParameters":{"id":4092,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4091,"mutability":"mutable","name":"svg","nodeType":"VariableDeclaration","scope":4204,"src":"2890:17:16","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":4090,"name":"string","nodeType":"ElementaryTypeName","src":"2890:6:16","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2889:19:16"},"scope":4885,"src":"2818:5343:16","stateMutability":"pure","virtual":false,"visibility":"private"},{"body":{"id":4247,"nodeType":"Block","src":"8391:1711:16","statements":[{"expression":{"id":4245,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4217,"name":"svg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4215,"src":"8401:3:16","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"hexValue":"3c7465787420746578742d72656e646572696e673d226f7074696d697a655370656564223e","id":4222,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8461:39:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_def1de1dcd58e9459a64156d5380ddffd45a29faa565a4062a201283a4b86c28","typeString":"literal_string \"<text text-rendering=\"optimizeSpeed\">\""},"value":"<text text-rendering=\"optimizeSpeed\">"},{"hexValue":"3c74657874506174682073746172744f66667365743d222d31303025222066696c6c3d2277686974652220666f6e742d66616d696c793d2227436f7572696572204e6577272c206d6f6e6f73706163652220666f6e742d73697a653d22313070782220786c696e6b3a687265663d2223746578742d706174682d61223e","id":4223,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8518:129:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_5c021e382e7c7104a13e2471955db1e88164a0a2701d8def1c530fbda61a37dc","typeString":"literal_string \"<textPath startOffset=\"-100%\" fill=\"white\" font-family=\"'Courier New', monospace\" font-size=\"10px\" xlink:href=\"#text-path-a\">\""},"value":"<textPath startOffset=\"-100%\" fill=\"white\" font-family=\"'Courier New', monospace\" font-size=\"10px\" xlink:href=\"#text-path-a\">"},{"id":4224,"name":"baseToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4208,"src":"8665:9:16","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"20e280a220","id":4225,"isConstant":false,"isLValue":false,"isPure":true,"kind":"unicodeString","lValueRequested":false,"nodeType":"Literal","src":"8692:14:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_e95eeea5856ede1036273fb77d6c19f7ed6ad714c1773e773c8cd40b496df17b","typeString":"literal_string hex\"20e280a220\""},"value":" • "},{"id":4226,"name":"baseTokenSymbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4212,"src":"8724:15:16","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"203c616e696d6174652061646469746976653d2273756d22206174747269627574654e616d653d2273746172744f6666736574222066726f6d3d2230252220746f3d22313030252220626567696e3d22307322206475723d223330732220726570656174436f756e743d22696e646566696e69746522202f3e","id":4227,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8757:123:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_5ac049306c61d2605d500baef9423dd59101a8acd4643a030e0b4b8780979a7f","typeString":"literal_string \" <animate additive=\"sum\" attributeName=\"startOffset\" from=\"0%\" to=\"100%\" begin=\"0s\" dur=\"30s\" repeatCount=\"indefinite\" />\""},"value":" <animate additive=\"sum\" attributeName=\"startOffset\" from=\"0%\" to=\"100%\" begin=\"0s\" dur=\"30s\" repeatCount=\"indefinite\" />"},{"hexValue":"3c2f74657874506174683e203c74657874506174682073746172744f66667365743d223025222066696c6c3d2277686974652220666f6e742d66616d696c793d2227436f7572696572204e6577272c206d6f6e6f73706163652220666f6e742d73697a653d22313070782220786c696e6b3a687265663d2223746578742d706174682d61223e","id":4228,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8898:138:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_dd2dd1ce2446da3135b69075c1bfb5ae217a66fb97ea23bbfa9101533f005eee","typeString":"literal_string \"</textPath> <textPath startOffset=\"0%\" fill=\"white\" font-family=\"'Courier New', monospace\" font-size=\"10px\" xlink:href=\"#text-path-a\">\""},"value":"</textPath> <textPath startOffset=\"0%\" fill=\"white\" font-family=\"'Courier New', monospace\" font-size=\"10px\" xlink:href=\"#text-path-a\">"},{"id":4229,"name":"baseToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4208,"src":"9054:9:16","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"20e280a220","id":4230,"isConstant":false,"isLValue":false,"isPure":true,"kind":"unicodeString","lValueRequested":false,"nodeType":"Literal","src":"9081:14:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_e95eeea5856ede1036273fb77d6c19f7ed6ad714c1773e773c8cd40b496df17b","typeString":"literal_string hex\"20e280a220\""},"value":" • "},{"id":4231,"name":"baseTokenSymbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4212,"src":"9113:15:16","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"203c616e696d6174652061646469746976653d2273756d22206174747269627574654e616d653d2273746172744f6666736574222066726f6d3d2230252220746f3d22313030252220626567696e3d22307322206475723d223330732220726570656174436f756e743d22696e646566696e69746522202f3e203c2f74657874506174683e","id":4232,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9146:135:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_12e5d23ac3d5565fca6e18679427bcbe328ab78094fc30d5dc29018e64601f05","typeString":"literal_string \" <animate additive=\"sum\" attributeName=\"startOffset\" from=\"0%\" to=\"100%\" begin=\"0s\" dur=\"30s\" repeatCount=\"indefinite\" /> </textPath>\""},"value":" <animate additive=\"sum\" attributeName=\"startOffset\" from=\"0%\" to=\"100%\" begin=\"0s\" dur=\"30s\" repeatCount=\"indefinite\" /> </textPath>"},{"hexValue":"3c74657874506174682073746172744f66667365743d22353025222066696c6c3d2277686974652220666f6e742d66616d696c793d2227436f7572696572204e6577272c206d6f6e6f73706163652220666f6e742d73697a653d22313070782220786c696e6b3a687265663d2223746578742d706174682d61223e","id":4233,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9299:127:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_bba7d0e9c87f4fc07285d3901f65b11169f0a648c5503e2a93e1438c905d75bd","typeString":"literal_string \"<textPath startOffset=\"50%\" fill=\"white\" font-family=\"'Courier New', monospace\" font-size=\"10px\" xlink:href=\"#text-path-a\">\""},"value":"<textPath startOffset=\"50%\" fill=\"white\" font-family=\"'Courier New', monospace\" font-size=\"10px\" xlink:href=\"#text-path-a\">"},{"id":4234,"name":"quoteToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4206,"src":"9444:10:16","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"20e280a220","id":4235,"isConstant":false,"isLValue":false,"isPure":true,"kind":"unicodeString","lValueRequested":false,"nodeType":"Literal","src":"9472:14:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_e95eeea5856ede1036273fb77d6c19f7ed6ad714c1773e773c8cd40b496df17b","typeString":"literal_string hex\"20e280a220\""},"value":" • "},{"id":4236,"name":"quoteTokenSymbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4210,"src":"9504:16:16","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"203c616e696d6174652061646469746976653d2273756d22206174747269627574654e616d653d2273746172744f6666736574222066726f6d3d2230252220746f3d22313030252220626567696e3d22307322206475723d2233307322","id":4237,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9538:95:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_2150a1c8c321a12bc9aebef62dce6760f1d4a6152ca8e7d1cfc2a91709c86ed3","typeString":"literal_string \" <animate additive=\"sum\" attributeName=\"startOffset\" from=\"0%\" to=\"100%\" begin=\"0s\" dur=\"30s\"\""},"value":" <animate additive=\"sum\" attributeName=\"startOffset\" from=\"0%\" to=\"100%\" begin=\"0s\" dur=\"30s\""},{"hexValue":"20726570656174436f756e743d22696e646566696e69746522202f3e3c2f74657874506174683e3c74657874506174682073746172744f66667365743d222d353025222066696c6c3d2277686974652220666f6e742d66616d696c793d2227436f7572696572204e6577272c206d6f6e6f73706163652220666f6e742d73697a653d22313070782220786c696e6b3a687265663d2223746578742d706174682d61223e","id":4238,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9651:167:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_9421d2b325b171273133fcca90ccbe277797196ba10501e62827c87ba1f00867","typeString":"literal_string \" repeatCount=\"indefinite\" /></textPath><textPath startOffset=\"-50%\" fill=\"white\" font-family=\"'Courier New', monospace\" font-size=\"10px\" xlink:href=\"#text-path-a\">\""},"value":" repeatCount=\"indefinite\" /></textPath><textPath startOffset=\"-50%\" fill=\"white\" font-family=\"'Courier New', monospace\" font-size=\"10px\" xlink:href=\"#text-path-a\">"},{"id":4239,"name":"quoteToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4206,"src":"9836:10:16","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"20e280a220","id":4240,"isConstant":false,"isLValue":false,"isPure":true,"kind":"unicodeString","lValueRequested":false,"nodeType":"Literal","src":"9864:14:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_e95eeea5856ede1036273fb77d6c19f7ed6ad714c1773e773c8cd40b496df17b","typeString":"literal_string hex\"20e280a220\""},"value":" • "},{"id":4241,"name":"quoteTokenSymbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4210,"src":"9896:16:16","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"203c616e696d6174652061646469746976653d2273756d22206174747269627574654e616d653d2273746172744f6666736574222066726f6d3d2230252220746f3d22313030252220626567696e3d22307322206475723d223330732220726570656174436f756e743d22696e646566696e69746522202f3e3c2f74657874506174683e3c2f746578743e","id":4242,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9930:141:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_02f06577ff640a7b9a57b4040afd931b573e563f869bd83106611dd7f5abd304","typeString":"literal_string \" <animate additive=\"sum\" attributeName=\"startOffset\" from=\"0%\" to=\"100%\" begin=\"0s\" dur=\"30s\" repeatCount=\"indefinite\" /></textPath></text>\""},"value":" <animate additive=\"sum\" attributeName=\"startOffset\" from=\"0%\" to=\"100%\" begin=\"0s\" dur=\"30s\" repeatCount=\"indefinite\" /></textPath></text>"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_def1de1dcd58e9459a64156d5380ddffd45a29faa565a4062a201283a4b86c28","typeString":"literal_string \"<text text-rendering=\"optimizeSpeed\">\""},{"typeIdentifier":"t_stringliteral_5c021e382e7c7104a13e2471955db1e88164a0a2701d8def1c530fbda61a37dc","typeString":"literal_string \"<textPath startOffset=\"-100%\" fill=\"white\" font-family=\"'Courier New', monospace\" font-size=\"10px\" xlink:href=\"#text-path-a\">\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_stringliteral_e95eeea5856ede1036273fb77d6c19f7ed6ad714c1773e773c8cd40b496df17b","typeString":"literal_string hex\"20e280a220\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_stringliteral_5ac049306c61d2605d500baef9423dd59101a8acd4643a030e0b4b8780979a7f","typeString":"literal_string \" <animate additive=\"sum\" attributeName=\"startOffset\" from=\"0%\" to=\"100%\" begin=\"0s\" dur=\"30s\" repeatCount=\"indefinite\" />\""},{"typeIdentifier":"t_stringliteral_dd2dd1ce2446da3135b69075c1bfb5ae217a66fb97ea23bbfa9101533f005eee","typeString":"literal_string \"</textPath> <textPath startOffset=\"0%\" fill=\"white\" font-family=\"'Courier New', monospace\" font-size=\"10px\" xlink:href=\"#text-path-a\">\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_stringliteral_e95eeea5856ede1036273fb77d6c19f7ed6ad714c1773e773c8cd40b496df17b","typeString":"literal_string hex\"20e280a220\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_stringliteral_12e5d23ac3d5565fca6e18679427bcbe328ab78094fc30d5dc29018e64601f05","typeString":"literal_string \" <animate additive=\"sum\" attributeName=\"startOffset\" from=\"0%\" to=\"100%\" begin=\"0s\" dur=\"30s\" repeatCount=\"indefinite\" /> </textPath>\""},{"typeIdentifier":"t_stringliteral_bba7d0e9c87f4fc07285d3901f65b11169f0a648c5503e2a93e1438c905d75bd","typeString":"literal_string \"<textPath startOffset=\"50%\" fill=\"white\" font-family=\"'Courier New', monospace\" font-size=\"10px\" xlink:href=\"#text-path-a\">\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_stringliteral_e95eeea5856ede1036273fb77d6c19f7ed6ad714c1773e773c8cd40b496df17b","typeString":"literal_string hex\"20e280a220\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_stringliteral_2150a1c8c321a12bc9aebef62dce6760f1d4a6152ca8e7d1cfc2a91709c86ed3","typeString":"literal_string \" <animate additive=\"sum\" attributeName=\"startOffset\" from=\"0%\" to=\"100%\" begin=\"0s\" dur=\"30s\"\""},{"typeIdentifier":"t_stringliteral_9421d2b325b171273133fcca90ccbe277797196ba10501e62827c87ba1f00867","typeString":"literal_string \" repeatCount=\"indefinite\" /></textPath><textPath startOffset=\"-50%\" fill=\"white\" font-family=\"'Courier New', monospace\" font-size=\"10px\" xlink:href=\"#text-path-a\">\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_stringliteral_e95eeea5856ede1036273fb77d6c19f7ed6ad714c1773e773c8cd40b496df17b","typeString":"literal_string hex\"20e280a220\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_stringliteral_02f06577ff640a7b9a57b4040afd931b573e563f869bd83106611dd7f5abd304","typeString":"literal_string \" <animate additive=\"sum\" attributeName=\"startOffset\" from=\"0%\" to=\"100%\" begin=\"0s\" dur=\"30s\" repeatCount=\"indefinite\" /></textPath></text>\""}],"expression":{"id":4220,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"8427:3:16","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":4221,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodePacked","nodeType":"MemberAccess","src":"8427:16:16","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":4243,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8427:1658:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":4219,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8407:6:16","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":4218,"name":"string","nodeType":"ElementaryTypeName","src":"8407:6:16","typeDescriptions":{}}},"id":4244,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8407:1688:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"8401:1694:16","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":4246,"nodeType":"ExpressionStatement","src":"8401:1694:16"}]},"id":4248,"implemented":true,"kind":"function","modifiers":[],"name":"generateSVGBorderText","nodeType":"FunctionDefinition","parameters":{"id":4213,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4206,"mutability":"mutable","name":"quoteToken","nodeType":"VariableDeclaration","scope":4248,"src":"8207:24:16","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":4205,"name":"string","nodeType":"ElementaryTypeName","src":"8207:6:16","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":4208,"mutability":"mutable","name":"baseToken","nodeType":"VariableDeclaration","scope":4248,"src":"8241:23:16","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":4207,"name":"string","nodeType":"ElementaryTypeName","src":"8241:6:16","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":4210,"mutability":"mutable","name":"quoteTokenSymbol","nodeType":"VariableDeclaration","scope":4248,"src":"8274:30:16","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":4209,"name":"string","nodeType":"ElementaryTypeName","src":"8274:6:16","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":4212,"mutability":"mutable","name":"baseTokenSymbol","nodeType":"VariableDeclaration","scope":4248,"src":"8314:29:16","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":4211,"name":"string","nodeType":"ElementaryTypeName","src":"8314:6:16","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"8197:152:16"},"returnParameters":{"id":4216,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4215,"mutability":"mutable","name":"svg","nodeType":"VariableDeclaration","scope":4248,"src":"8372:17:16","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":4214,"name":"string","nodeType":"ElementaryTypeName","src":"8372:6:16","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"8371:19:16"},"scope":4885,"src":"8167:1935:16","stateMutability":"pure","virtual":false,"visibility":"private"},{"body":{"id":4276,"nodeType":"Block","src":"10296:730:16","statements":[{"expression":{"id":4274,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4259,"name":"svg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4257,"src":"10306:3:16","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"hexValue":"3c67206d61736b3d2275726c2823666164652d73796d626f6c29223e3c726563742066696c6c3d226e6f6e652220783d223070782220793d22307078222077696474683d22323930707822206865696768743d22323030707822202f3e203c7465787420793d22373070782220783d2233327078222066696c6c3d2277686974652220666f6e742d66616d696c793d2227436f7572696572204e6577272c206d6f6e6f73706163652220666f6e742d7765696768743d223230302220666f6e742d73697a653d2233367078223e","id":4264,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10366:209:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_0f48c6991d8370b108e265feefc6212179a011d404515a1dce8a57af40b85b7f","typeString":"literal_string \"<g mask=\"url(#fade-symbol)\"><rect fill=\"none\" x=\"0px\" y=\"0px\" width=\"290px\" height=\"200px\" /> <text y=\"70px\" x=\"32px\" fill=\"white\" font-family=\"'Courier New', monospace\" font-weight=\"200\" font-size=\"36px\">\""},"value":"<g mask=\"url(#fade-symbol)\"><rect fill=\"none\" x=\"0px\" y=\"0px\" width=\"290px\" height=\"200px\" /> <text y=\"70px\" x=\"32px\" fill=\"white\" font-family=\"'Courier New', monospace\" font-weight=\"200\" font-size=\"36px\">"},{"id":4265,"name":"quoteTokenSymbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4250,"src":"10593:16:16","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"2f","id":4266,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10627:3:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_fba9715e477e68952d3f1df7a185b3708aadad50ec10cc793973864023868527","typeString":"literal_string \"/\""},"value":"/"},{"id":4267,"name":"baseTokenSymbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4252,"src":"10648:15:16","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"3c2f746578743e3c7465787420793d2231313570782220783d2233327078222066696c6c3d2277686974652220666f6e742d66616d696c793d2227436f7572696572204e6577272c206d6f6e6f73706163652220666f6e742d7765696768743d223230302220666f6e742d73697a653d2233367078223e","id":4268,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10681:123:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_f6a4c28d3a8f91939e9dde8d20603d72bf408bb3a4810ebf3bb6c06742d8297b","typeString":"literal_string \"</text><text y=\"115px\" x=\"32px\" fill=\"white\" font-family=\"'Courier New', monospace\" font-weight=\"200\" font-size=\"36px\">\""},"value":"</text><text y=\"115px\" x=\"32px\" fill=\"white\" font-family=\"'Courier New', monospace\" font-weight=\"200\" font-size=\"36px\">"},{"id":4269,"name":"feeTier","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4254,"src":"10822:7:16","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"3c2f746578743e3c2f673e","id":4270,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10847:13:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_0b7427e2f769aaaa13bde5b715b09255dc5398714a59a798afc7999c8e6ae7f0","typeString":"literal_string \"</text></g>\""},"value":"</text></g>"},{"hexValue":"3c7265637420783d2231362220793d223136222077696474683d2232353822206865696768743d22343638222072783d223236222072793d223236222066696c6c3d227267626128302c302c302c302922207374726f6b653d2272676261283235352c3235352c3235352c302e322922202f3e","id":4271,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10878:117:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_e0b4a009558fed53d8b93645952b1120d122982ebf4ca4d1136598e7708bf775","typeString":"literal_string \"<rect x=\"16\" y=\"16\" width=\"258\" height=\"468\" rx=\"26\" ry=\"26\" fill=\"rgba(0,0,0,0)\" stroke=\"rgba(255,255,255,0.2)\" />\""},"value":"<rect x=\"16\" y=\"16\" width=\"258\" height=\"468\" rx=\"26\" ry=\"26\" fill=\"rgba(0,0,0,0)\" stroke=\"rgba(255,255,255,0.2)\" />"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_0f48c6991d8370b108e265feefc6212179a011d404515a1dce8a57af40b85b7f","typeString":"literal_string \"<g mask=\"url(#fade-symbol)\"><rect fill=\"none\" x=\"0px\" y=\"0px\" width=\"290px\" height=\"200px\" /> <text y=\"70px\" x=\"32px\" fill=\"white\" font-family=\"'Courier New', monospace\" font-weight=\"200\" font-size=\"36px\">\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_stringliteral_fba9715e477e68952d3f1df7a185b3708aadad50ec10cc793973864023868527","typeString":"literal_string \"/\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_stringliteral_f6a4c28d3a8f91939e9dde8d20603d72bf408bb3a4810ebf3bb6c06742d8297b","typeString":"literal_string \"</text><text y=\"115px\" x=\"32px\" fill=\"white\" font-family=\"'Courier New', monospace\" font-weight=\"200\" font-size=\"36px\">\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_stringliteral_0b7427e2f769aaaa13bde5b715b09255dc5398714a59a798afc7999c8e6ae7f0","typeString":"literal_string \"</text></g>\""},{"typeIdentifier":"t_stringliteral_e0b4a009558fed53d8b93645952b1120d122982ebf4ca4d1136598e7708bf775","typeString":"literal_string \"<rect x=\"16\" y=\"16\" width=\"258\" height=\"468\" rx=\"26\" ry=\"26\" fill=\"rgba(0,0,0,0)\" stroke=\"rgba(255,255,255,0.2)\" />\""}],"expression":{"id":4262,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"10332:3:16","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":4263,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodePacked","nodeType":"MemberAccess","src":"10332:16:16","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":4272,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10332:677:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":4261,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10312:6:16","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":4260,"name":"string","nodeType":"ElementaryTypeName","src":"10312:6:16","typeDescriptions":{}}},"id":4273,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10312:707:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"10306:713:16","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":4275,"nodeType":"ExpressionStatement","src":"10306:713:16"}]},"id":4277,"implemented":true,"kind":"function","modifiers":[],"name":"generateSVGCardMantle","nodeType":"FunctionDefinition","parameters":{"id":4255,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4250,"mutability":"mutable","name":"quoteTokenSymbol","nodeType":"VariableDeclaration","scope":4277,"src":"10148:30:16","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":4249,"name":"string","nodeType":"ElementaryTypeName","src":"10148:6:16","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":4252,"mutability":"mutable","name":"baseTokenSymbol","nodeType":"VariableDeclaration","scope":4277,"src":"10188:29:16","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":4251,"name":"string","nodeType":"ElementaryTypeName","src":"10188:6:16","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":4254,"mutability":"mutable","name":"feeTier","nodeType":"VariableDeclaration","scope":4277,"src":"10227:21:16","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":4253,"name":"string","nodeType":"ElementaryTypeName","src":"10227:6:16","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"10138:116:16"},"returnParameters":{"id":4258,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4257,"mutability":"mutable","name":"svg","nodeType":"VariableDeclaration","scope":4277,"src":"10277:17:16","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":4256,"name":"string","nodeType":"ElementaryTypeName","src":"10277:6:16","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"10276:19:16"},"scope":4885,"src":"10108:918:16","stateMutability":"pure","virtual":false,"visibility":"private"},{"body":{"id":4339,"nodeType":"Block","src":"11206:1122:16","statements":[{"assignments":[4291],"declarations":[{"constant":false,"id":4291,"mutability":"mutable","name":"fade","nodeType":"VariableDeclaration","scope":4339,"src":"11216:18:16","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":4290,"name":"string","nodeType":"ElementaryTypeName","src":"11216:6:16","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"id":4304,"initialValue":{"condition":{"commonType":{"typeIdentifier":"t_int8","typeString":"int8"},"id":4294,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4292,"name":"overRange","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4285,"src":"11237:9:16","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"31","id":4293,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11250:1:16","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"11237:14:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"condition":{"commonType":{"typeIdentifier":"t_int8","typeString":"int8"},"id":4299,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4296,"name":"overRange","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4285,"src":"11291:9:16","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":4298,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"-","prefix":true,"src":"11304:2:16","subExpression":{"hexValue":"31","id":4297,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11305:1:16","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"typeDescriptions":{"typeIdentifier":"t_rational_minus_1_by_1","typeString":"int_const -1"}},"src":"11291:15:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"hexValue":"236e6f6e65","id":4301,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11356:7:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_de3d54d0009a30de6574658fe768c121745861e4ddbc47fa69ea53fecbbb0a0c","typeString":"literal_string \"#none\""},"value":"#none"},"id":4302,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"11291:72:16","trueExpression":{"hexValue":"23666164652d646f776e","id":4300,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11325:12:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_2b01e6fb7a2c53cd6a7605ccb24831699c60989eff7007eb7c3036e4ed9f56e1","typeString":"literal_string \"#fade-down\""},"value":"#fade-down"},"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":4303,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"11237:126:16","trueExpression":{"hexValue":"23666164652d7570","id":4295,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11266:10:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_d462c7626c0238db39d4f1d403630879f178b4bb0ebe2e10a6b1998122e55d72","typeString":"literal_string \"#fade-up\""},"value":"#fade-up"},"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"VariableDeclarationStatement","src":"11216:147:16"},{"assignments":[4306],"declarations":[{"constant":false,"id":4306,"mutability":"mutable","name":"curve","nodeType":"VariableDeclaration","scope":4339,"src":"11373:19:16","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":4305,"name":"string","nodeType":"ElementaryTypeName","src":"11373:6:16","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"id":4312,"initialValue":{"arguments":[{"id":4308,"name":"tickLower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4279,"src":"11404:9:16","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},{"id":4309,"name":"tickUpper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4281,"src":"11415:9:16","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},{"id":4310,"name":"tickSpacing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4283,"src":"11426:11:16","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int24","typeString":"int24"},{"typeIdentifier":"t_int24","typeString":"int24"},{"typeIdentifier":"t_int24","typeString":"int24"}],"id":4307,"name":"getCurve","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4429,"src":"11395:8:16","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int24_$_t_int24_$_t_int24_$returns$_t_string_memory_ptr_$","typeString":"function (int24,int24,int24) pure returns (string memory)"}},"id":4311,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11395:43:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"VariableDeclarationStatement","src":"11373:65:16"},{"expression":{"id":4337,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4313,"name":"svg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4288,"src":"11448:3:16","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"hexValue":"3c67206d61736b3d2275726c28","id":4318,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11508:15:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_073f6ea16f7ccb68c2d82384c98a49ffe08e4d0cca470dd7b597850d3360adf1","typeString":"literal_string \"<g mask=\"url(\""},"value":"<g mask=\"url("},{"id":4319,"name":"fade","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4291,"src":"11541:4:16","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"2922","id":4320,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11563:4:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_c4b4594b062b8dfb6eaf7db997d942d04b66dec75ec258222a814ab915492f07","typeString":"literal_string \")\"\""},"value":")\""},{"hexValue":"207374796c653d227472616e73666f726d3a7472616e736c61746528373270782c313839707829223e3c7265637420783d222d313670782220793d222d31367078222077696474683d22313830707822206865696768743d223138307078222066696c6c3d226e6f6e6522202f3e3c7061746820643d22","id":4321,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11585:159:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_8d38c449c54623af115300f0b4cd575c9ad248d96fa963ffbc8a5d10a537195e","typeString":"literal_string \" style=\"transform:translate(72px,189px)\"><rect x=\"-16px\" y=\"-16px\" width=\"180px\" height=\"180px\" fill=\"none\" /><path d=\"\""},"value":" style=\"transform:translate(72px,189px)\"><rect x=\"-16px\" y=\"-16px\" width=\"180px\" height=\"180px\" fill=\"none\" /><path d=\""},{"id":4322,"name":"curve","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4306,"src":"11762:5:16","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"22207374726f6b653d227267626128302c302c302c302e332922207374726f6b652d77696474683d2233327078222066696c6c3d226e6f6e6522207374726f6b652d6c696e656361703d22726f756e6422202f3e","id":4323,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11785:86:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_20b18c33024e2e0e17abfb47072fb69fd233a084a9b52e7077234344339ef1d2","typeString":"literal_string \"\" stroke=\"rgba(0,0,0,0.3)\" stroke-width=\"32px\" fill=\"none\" stroke-linecap=\"round\" />\""},"value":"\" stroke=\"rgba(0,0,0,0.3)\" stroke-width=\"32px\" fill=\"none\" stroke-linecap=\"round\" />"},{"hexValue":"3c2f673e3c67206d61736b3d2275726c28","id":4324,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11889:19:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_5d5b8544d6c3a0963cab785f7bfd6c7e8729a866fc2c71a9b519c74a2851ad8e","typeString":"literal_string \"</g><g mask=\"url(\""},"value":"</g><g mask=\"url("},{"id":4325,"name":"fade","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4291,"src":"11926:4:16","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"2922","id":4326,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11948:4:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_c4b4594b062b8dfb6eaf7db997d942d04b66dec75ec258222a814ab915492f07","typeString":"literal_string \")\"\""},"value":")\""},{"hexValue":"207374796c653d227472616e73666f726d3a7472616e736c61746528373270782c313839707829223e","id":4327,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11970:43:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_8e24499475377ebfea88a8b66ad4852ff14fea8d70bdbc3a7eceb1a729240226","typeString":"literal_string \" style=\"transform:translate(72px,189px)\">\""},"value":" style=\"transform:translate(72px,189px)\">"},{"hexValue":"3c7265637420783d222d313670782220793d222d31367078222077696474683d22313830707822206865696768743d223138307078222066696c6c3d226e6f6e6522202f3e","id":4328,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12031:71:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_8f43f63d6c112f03be0e24ed0ecb0994a71907eacdd7bbe72850d1059fbd6fa7","typeString":"literal_string \"<rect x=\"-16px\" y=\"-16px\" width=\"180px\" height=\"180px\" fill=\"none\" />\""},"value":"<rect x=\"-16px\" y=\"-16px\" width=\"180px\" height=\"180px\" fill=\"none\" />"},{"hexValue":"3c7061746820643d22","id":4329,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12120:11:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_8435fbe25d8e10dc1b7fa802b6ce492013481bf38ccb57fac98cd4034d9fca4a","typeString":"literal_string \"<path d=\"\""},"value":"<path d=\""},{"id":4330,"name":"curve","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4306,"src":"12149:5:16","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"22207374726f6b653d2272676261283235352c3235352c3235352c3129222066696c6c3d226e6f6e6522207374726f6b652d6c696e656361703d22726f756e6422202f3e3c2f673e","id":4331,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12172:74:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_9bb25be920b258880439ec0b834ec0e12e09bcc9295c9fb6ea92333a2947269b","typeString":"literal_string \"\" stroke=\"rgba(255,255,255,1)\" fill=\"none\" stroke-linecap=\"round\" /></g>\""},"value":"\" stroke=\"rgba(255,255,255,1)\" fill=\"none\" stroke-linecap=\"round\" /></g>"},{"arguments":[{"id":4333,"name":"overRange","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4285,"src":"12287:9:16","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int8","typeString":"int8"}],"id":4332,"name":"generateSVGCurveCircle","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4525,"src":"12264:22:16","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int8_$returns$_t_string_memory_ptr_$","typeString":"function (int8) pure returns (string memory)"}},"id":4334,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12264:33:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_073f6ea16f7ccb68c2d82384c98a49ffe08e4d0cca470dd7b597850d3360adf1","typeString":"literal_string \"<g mask=\"url(\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_stringliteral_c4b4594b062b8dfb6eaf7db997d942d04b66dec75ec258222a814ab915492f07","typeString":"literal_string \")\"\""},{"typeIdentifier":"t_stringliteral_8d38c449c54623af115300f0b4cd575c9ad248d96fa963ffbc8a5d10a537195e","typeString":"literal_string \" style=\"transform:translate(72px,189px)\"><rect x=\"-16px\" y=\"-16px\" width=\"180px\" height=\"180px\" fill=\"none\" /><path d=\"\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_stringliteral_20b18c33024e2e0e17abfb47072fb69fd233a084a9b52e7077234344339ef1d2","typeString":"literal_string \"\" stroke=\"rgba(0,0,0,0.3)\" stroke-width=\"32px\" fill=\"none\" stroke-linecap=\"round\" />\""},{"typeIdentifier":"t_stringliteral_5d5b8544d6c3a0963cab785f7bfd6c7e8729a866fc2c71a9b519c74a2851ad8e","typeString":"literal_string \"</g><g mask=\"url(\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_stringliteral_c4b4594b062b8dfb6eaf7db997d942d04b66dec75ec258222a814ab915492f07","typeString":"literal_string \")\"\""},{"typeIdentifier":"t_stringliteral_8e24499475377ebfea88a8b66ad4852ff14fea8d70bdbc3a7eceb1a729240226","typeString":"literal_string \" style=\"transform:translate(72px,189px)\">\""},{"typeIdentifier":"t_stringliteral_8f43f63d6c112f03be0e24ed0ecb0994a71907eacdd7bbe72850d1059fbd6fa7","typeString":"literal_string \"<rect x=\"-16px\" y=\"-16px\" width=\"180px\" height=\"180px\" fill=\"none\" />\""},{"typeIdentifier":"t_stringliteral_8435fbe25d8e10dc1b7fa802b6ce492013481bf38ccb57fac98cd4034d9fca4a","typeString":"literal_string \"<path d=\"\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_stringliteral_9bb25be920b258880439ec0b834ec0e12e09bcc9295c9fb6ea92333a2947269b","typeString":"literal_string \"\" stroke=\"rgba(255,255,255,1)\" fill=\"none\" stroke-linecap=\"round\" /></g>\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":4316,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"11474:3:16","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":4317,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodePacked","nodeType":"MemberAccess","src":"11474:16:16","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":4335,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11474:837:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":4315,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11454:6:16","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":4314,"name":"string","nodeType":"ElementaryTypeName","src":"11454:6:16","typeDescriptions":{}}},"id":4336,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11454:867:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"11448:873:16","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":4338,"nodeType":"ExpressionStatement","src":"11448:873:16"}]},"id":4340,"implemented":true,"kind":"function","modifiers":[],"name":"generageSvgCurve","nodeType":"FunctionDefinition","parameters":{"id":4286,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4279,"mutability":"mutable","name":"tickLower","nodeType":"VariableDeclaration","scope":4340,"src":"11067:15:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"},"typeName":{"id":4278,"name":"int24","nodeType":"ElementaryTypeName","src":"11067:5:16","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"visibility":"internal"},{"constant":false,"id":4281,"mutability":"mutable","name":"tickUpper","nodeType":"VariableDeclaration","scope":4340,"src":"11092:15:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"},"typeName":{"id":4280,"name":"int24","nodeType":"ElementaryTypeName","src":"11092:5:16","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"visibility":"internal"},{"constant":false,"id":4283,"mutability":"mutable","name":"tickSpacing","nodeType":"VariableDeclaration","scope":4340,"src":"11117:17:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"},"typeName":{"id":4282,"name":"int24","nodeType":"ElementaryTypeName","src":"11117:5:16","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"visibility":"internal"},{"constant":false,"id":4285,"mutability":"mutable","name":"overRange","nodeType":"VariableDeclaration","scope":4340,"src":"11144:14:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"},"typeName":{"id":4284,"name":"int8","nodeType":"ElementaryTypeName","src":"11144:4:16","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"}},"visibility":"internal"}],"src":"11057:107:16"},"returnParameters":{"id":4289,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4288,"mutability":"mutable","name":"svg","nodeType":"VariableDeclaration","scope":4340,"src":"11187:17:16","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":4287,"name":"string","nodeType":"ElementaryTypeName","src":"11187:6:16","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"11186:19:16"},"scope":4885,"src":"11032:1296:16","stateMutability":"pure","virtual":false,"visibility":"private"},{"body":{"id":4428,"nodeType":"Block","src":"12449:582:16","statements":[{"assignments":[4352],"declarations":[{"constant":false,"id":4352,"mutability":"mutable","name":"tickRange","nodeType":"VariableDeclaration","scope":4428,"src":"12459:15:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"},"typeName":{"id":4351,"name":"int24","nodeType":"ElementaryTypeName","src":"12459:5:16","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"visibility":"internal"}],"id":4359,"initialValue":{"commonType":{"typeIdentifier":"t_int24","typeString":"int24"},"id":4358,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_int24","typeString":"int24"},"id":4355,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4353,"name":"tickUpper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4344,"src":"12478:9:16","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":4354,"name":"tickLower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4342,"src":"12490:9:16","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"src":"12478:21:16","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}}],"id":4356,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"12477:23:16","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":4357,"name":"tickSpacing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4346,"src":"12503:11:16","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"src":"12477:37:16","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"nodeType":"VariableDeclarationStatement","src":"12459:55:16"},{"condition":{"commonType":{"typeIdentifier":"t_int24","typeString":"int24"},"id":4362,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4360,"name":"tickRange","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4352,"src":"12528:9:16","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"hexValue":"34","id":4361,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12541:1:16","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"12528:14:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_int24","typeString":"int24"},"id":4370,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4368,"name":"tickRange","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4352,"src":"12593:9:16","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"hexValue":"38","id":4369,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12606:1:16","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"12593:14:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_int24","typeString":"int24"},"id":4378,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4376,"name":"tickRange","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4352,"src":"12658:9:16","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"hexValue":"3136","id":4377,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12671:2:16","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"12658:15:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_int24","typeString":"int24"},"id":4386,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4384,"name":"tickRange","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4352,"src":"12724:9:16","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"hexValue":"3332","id":4385,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12737:2:16","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"12724:15:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_int24","typeString":"int24"},"id":4394,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4392,"name":"tickRange","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4352,"src":"12790:9:16","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"hexValue":"3634","id":4393,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12803:2:16","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"12790:15:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_int24","typeString":"int24"},"id":4402,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4400,"name":"tickRange","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4352,"src":"12856:9:16","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"hexValue":"313238","id":4401,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12869:3:16","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"12856:16:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_int24","typeString":"int24"},"id":4410,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4408,"name":"tickRange","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4352,"src":"12923:9:16","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"hexValue":"323536","id":4409,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12936:3:16","typeDescriptions":{"typeIdentifier":"t_rational_256_by_1","typeString":"int_const 256"},"value":"256"},"src":"12923:16:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":4420,"nodeType":"Block","src":"12986:39:16","statements":[{"expression":{"id":4418,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4416,"name":"curve","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4349,"src":"13000:5:16","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":4417,"name":"curve8","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3980,"src":"13008:6:16","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"13000:14:16","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":4419,"nodeType":"ExpressionStatement","src":"13000:14:16"}]},"id":4421,"nodeType":"IfStatement","src":"12919:106:16","trueBody":{"id":4415,"nodeType":"Block","src":"12941:39:16","statements":[{"expression":{"id":4413,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4411,"name":"curve","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4349,"src":"12955:5:16","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":4412,"name":"curve7","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3977,"src":"12963:6:16","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"12955:14:16","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":4414,"nodeType":"ExpressionStatement","src":"12955:14:16"}]}},"id":4422,"nodeType":"IfStatement","src":"12852:173:16","trueBody":{"id":4407,"nodeType":"Block","src":"12874:39:16","statements":[{"expression":{"id":4405,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4403,"name":"curve","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4349,"src":"12888:5:16","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":4404,"name":"curve6","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3974,"src":"12896:6:16","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"12888:14:16","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":4406,"nodeType":"ExpressionStatement","src":"12888:14:16"}]}},"id":4423,"nodeType":"IfStatement","src":"12786:239:16","trueBody":{"id":4399,"nodeType":"Block","src":"12807:39:16","statements":[{"expression":{"id":4397,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4395,"name":"curve","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4349,"src":"12821:5:16","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":4396,"name":"curve5","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3971,"src":"12829:6:16","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"12821:14:16","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":4398,"nodeType":"ExpressionStatement","src":"12821:14:16"}]}},"id":4424,"nodeType":"IfStatement","src":"12720:305:16","trueBody":{"id":4391,"nodeType":"Block","src":"12741:39:16","statements":[{"expression":{"id":4389,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4387,"name":"curve","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4349,"src":"12755:5:16","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":4388,"name":"curve4","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3968,"src":"12763:6:16","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"12755:14:16","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":4390,"nodeType":"ExpressionStatement","src":"12755:14:16"}]}},"id":4425,"nodeType":"IfStatement","src":"12654:371:16","trueBody":{"id":4383,"nodeType":"Block","src":"12675:39:16","statements":[{"expression":{"id":4381,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4379,"name":"curve","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4349,"src":"12689:5:16","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":4380,"name":"curve3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3965,"src":"12697:6:16","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"12689:14:16","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":4382,"nodeType":"ExpressionStatement","src":"12689:14:16"}]}},"id":4426,"nodeType":"IfStatement","src":"12589:436:16","trueBody":{"id":4375,"nodeType":"Block","src":"12609:39:16","statements":[{"expression":{"id":4373,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4371,"name":"curve","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4349,"src":"12623:5:16","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":4372,"name":"curve2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3962,"src":"12631:6:16","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"12623:14:16","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":4374,"nodeType":"ExpressionStatement","src":"12623:14:16"}]}},"id":4427,"nodeType":"IfStatement","src":"12524:501:16","trueBody":{"id":4367,"nodeType":"Block","src":"12544:39:16","statements":[{"expression":{"id":4365,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4363,"name":"curve","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4349,"src":"12558:5:16","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":4364,"name":"curve1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3959,"src":"12566:6:16","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"12558:14:16","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":4366,"nodeType":"ExpressionStatement","src":"12558:14:16"}]}}]},"id":4429,"implemented":true,"kind":"function","modifiers":[],"name":"getCurve","nodeType":"FunctionDefinition","parameters":{"id":4347,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4342,"mutability":"mutable","name":"tickLower","nodeType":"VariableDeclaration","scope":4429,"src":"12352:15:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"},"typeName":{"id":4341,"name":"int24","nodeType":"ElementaryTypeName","src":"12352:5:16","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"visibility":"internal"},{"constant":false,"id":4344,"mutability":"mutable","name":"tickUpper","nodeType":"VariableDeclaration","scope":4429,"src":"12369:15:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"},"typeName":{"id":4343,"name":"int24","nodeType":"ElementaryTypeName","src":"12369:5:16","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"visibility":"internal"},{"constant":false,"id":4346,"mutability":"mutable","name":"tickSpacing","nodeType":"VariableDeclaration","scope":4429,"src":"12386:17:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"},"typeName":{"id":4345,"name":"int24","nodeType":"ElementaryTypeName","src":"12386:5:16","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"visibility":"internal"}],"src":"12351:53:16"},"returnParameters":{"id":4350,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4349,"mutability":"mutable","name":"curve","nodeType":"VariableDeclaration","scope":4429,"src":"12428:19:16","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":4348,"name":"string","nodeType":"ElementaryTypeName","src":"12428:6:16","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"12427:21:16"},"scope":4885,"src":"12334:697:16","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4524,"nodeType":"Block","src":"13127:1233:16","statements":[{"assignments":[4437],"declarations":[{"constant":false,"id":4437,"mutability":"mutable","name":"curvex1","nodeType":"VariableDeclaration","scope":4524,"src":"13137:21:16","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":4436,"name":"string","nodeType":"ElementaryTypeName","src":"13137:6:16","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"id":4439,"initialValue":{"hexValue":"3733","id":4438,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13161:4:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_b2219b801710730437d0358146c829b62297a059eceaa0b40b27aea2daecf595","typeString":"literal_string \"73\""},"value":"73"},"nodeType":"VariableDeclarationStatement","src":"13137:28:16"},{"assignments":[4441],"declarations":[{"constant":false,"id":4441,"mutability":"mutable","name":"curvey1","nodeType":"VariableDeclaration","scope":4524,"src":"13175:21:16","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":4440,"name":"string","nodeType":"ElementaryTypeName","src":"13175:6:16","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"id":4443,"initialValue":{"hexValue":"313930","id":4442,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13199:5:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_e056e162080d5da78663154decfd308f0383b8d138d504e8a4cde93086ac2fef","typeString":"literal_string \"190\""},"value":"190"},"nodeType":"VariableDeclarationStatement","src":"13175:29:16"},{"assignments":[4445],"declarations":[{"constant":false,"id":4445,"mutability":"mutable","name":"curvex2","nodeType":"VariableDeclaration","scope":4524,"src":"13214:21:16","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":4444,"name":"string","nodeType":"ElementaryTypeName","src":"13214:6:16","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"id":4447,"initialValue":{"hexValue":"323137","id":4446,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13238:5:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_aaf3f8a03bf981e82bfa1e6e69fda395c89cda31e9dff74038d977f68cce1756","typeString":"literal_string \"217\""},"value":"217"},"nodeType":"VariableDeclarationStatement","src":"13214:29:16"},{"assignments":[4449],"declarations":[{"constant":false,"id":4449,"mutability":"mutable","name":"curvey2","nodeType":"VariableDeclaration","scope":4524,"src":"13253:21:16","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":4448,"name":"string","nodeType":"ElementaryTypeName","src":"13253:6:16","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"id":4451,"initialValue":{"hexValue":"333334","id":4450,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13277:5:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_f9bbcd66573bf3c1f4cc184d2152e0dd1704bf0095e444b842e9e57042cbafba","typeString":"literal_string \"334\""},"value":"334"},"nodeType":"VariableDeclarationStatement","src":"13253:29:16"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":4459,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_int8","typeString":"int8"},"id":4454,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4452,"name":"overRange","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4431,"src":"13296:9:16","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"31","id":4453,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13309:1:16","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"13296:14:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_int8","typeString":"int8"},"id":4458,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4455,"name":"overRange","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4431,"src":"13314:9:16","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":4457,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"-","prefix":true,"src":"13327:2:16","subExpression":{"hexValue":"31","id":4456,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13328:1:16","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"typeDescriptions":{"typeIdentifier":"t_rational_minus_1_by_1","typeString":"int_const -1"}},"src":"13314:15:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"13296:33:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":4522,"nodeType":"Block","src":"13897:457:16","statements":[{"expression":{"id":4520,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4503,"name":"svg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4434,"src":"13911:3:16","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"hexValue":"3c636972636c652063783d22","id":4508,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13979:14:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_0cfb64137c1b932845c13a5b9099e70707981c3c97fcffefd9a9dc3cb4822b2a","typeString":"literal_string \"<circle cx=\"\""},"value":"<circle cx=\""},{"id":4509,"name":"curvex1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4437,"src":"14015:7:16","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"7078222063793d22","id":4510,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14044:10:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_04df0b57098eaa746dd457aea178f76fd2ba5ac64e69b33f7dbdf88159fd9066","typeString":"literal_string \"px\" cy=\"\""},"value":"px\" cy=\""},{"id":4511,"name":"curvey1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4441,"src":"14076:7:16","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"70782220723d22347078222066696c6c3d22776869746522202f3e","id":4512,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14105:29:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_9688ea6eac52256e23e98de0d885a67cbdda4b4d8cf2999e296a56007ffef501","typeString":"literal_string \"px\" r=\"4px\" fill=\"white\" />\""},"value":"px\" r=\"4px\" fill=\"white\" />"},{"hexValue":"3c636972636c652063783d22","id":4513,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14156:14:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_0cfb64137c1b932845c13a5b9099e70707981c3c97fcffefd9a9dc3cb4822b2a","typeString":"literal_string \"<circle cx=\"\""},"value":"<circle cx=\""},{"id":4514,"name":"curvex2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4445,"src":"14192:7:16","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"7078222063793d22","id":4515,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14221:10:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_04df0b57098eaa746dd457aea178f76fd2ba5ac64e69b33f7dbdf88159fd9066","typeString":"literal_string \"px\" cy=\"\""},"value":"px\" cy=\""},{"id":4516,"name":"curvey2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4449,"src":"14253:7:16","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"70782220723d22347078222066696c6c3d22776869746522202f3e","id":4517,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14282:29:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_9688ea6eac52256e23e98de0d885a67cbdda4b4d8cf2999e296a56007ffef501","typeString":"literal_string \"px\" r=\"4px\" fill=\"white\" />\""},"value":"px\" r=\"4px\" fill=\"white\" />"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_0cfb64137c1b932845c13a5b9099e70707981c3c97fcffefd9a9dc3cb4822b2a","typeString":"literal_string \"<circle cx=\"\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_stringliteral_04df0b57098eaa746dd457aea178f76fd2ba5ac64e69b33f7dbdf88159fd9066","typeString":"literal_string \"px\" cy=\"\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_stringliteral_9688ea6eac52256e23e98de0d885a67cbdda4b4d8cf2999e296a56007ffef501","typeString":"literal_string \"px\" r=\"4px\" fill=\"white\" />\""},{"typeIdentifier":"t_stringliteral_0cfb64137c1b932845c13a5b9099e70707981c3c97fcffefd9a9dc3cb4822b2a","typeString":"literal_string \"<circle cx=\"\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_stringliteral_04df0b57098eaa746dd457aea178f76fd2ba5ac64e69b33f7dbdf88159fd9066","typeString":"literal_string \"px\" cy=\"\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_stringliteral_9688ea6eac52256e23e98de0d885a67cbdda4b4d8cf2999e296a56007ffef501","typeString":"literal_string \"px\" r=\"4px\" fill=\"white\" />\""}],"expression":{"id":4506,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"13941:3:16","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":4507,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodePacked","nodeType":"MemberAccess","src":"13941:16:16","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":4518,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13941:388:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":4505,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13917:6:16","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":4504,"name":"string","nodeType":"ElementaryTypeName","src":"13917:6:16","typeDescriptions":{}}},"id":4519,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13917:426:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"13911:432:16","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":4521,"nodeType":"ExpressionStatement","src":"13911:432:16"}]},"id":4523,"nodeType":"IfStatement","src":"13292:1062:16","trueBody":{"id":4502,"nodeType":"Block","src":"13331:560:16","statements":[{"expression":{"id":4500,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4460,"name":"svg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4434,"src":"13345:3:16","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"hexValue":"3c636972636c652063783d22","id":4465,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13413:14:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_0cfb64137c1b932845c13a5b9099e70707981c3c97fcffefd9a9dc3cb4822b2a","typeString":"literal_string \"<circle cx=\"\""},"value":"<circle cx=\""},{"condition":{"commonType":{"typeIdentifier":"t_int8","typeString":"int8"},"id":4469,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4466,"name":"overRange","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4431,"src":"13449:9:16","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":4468,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"-","prefix":true,"src":"13462:2:16","subExpression":{"hexValue":"31","id":4467,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13463:1:16","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"typeDescriptions":{"typeIdentifier":"t_rational_minus_1_by_1","typeString":"int_const -1"}},"src":"13449:15:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":4471,"name":"curvex2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4445,"src":"13477:7:16","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":4472,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"13449:35:16","trueExpression":{"id":4470,"name":"curvex1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4437,"src":"13467:7:16","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"7078222063793d22","id":4473,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13506:10:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_04df0b57098eaa746dd457aea178f76fd2ba5ac64e69b33f7dbdf88159fd9066","typeString":"literal_string \"px\" cy=\"\""},"value":"px\" cy=\""},{"condition":{"commonType":{"typeIdentifier":"t_int8","typeString":"int8"},"id":4477,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4474,"name":"overRange","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4431,"src":"13538:9:16","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":4476,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"-","prefix":true,"src":"13551:2:16","subExpression":{"hexValue":"31","id":4475,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13552:1:16","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"typeDescriptions":{"typeIdentifier":"t_rational_minus_1_by_1","typeString":"int_const -1"}},"src":"13538:15:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":4479,"name":"curvey2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4449,"src":"13566:7:16","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":4480,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"13538:35:16","trueExpression":{"id":4478,"name":"curvey1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4441,"src":"13556:7:16","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"70782220723d22347078222066696c6c3d22776869746522202f3e3c636972636c652063783d22","id":4481,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13595:41:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_805d2dfd72788fbd262dae04ab03ec6490a808b57ad0f61b37e39bca57c9434b","typeString":"literal_string \"px\" r=\"4px\" fill=\"white\" /><circle cx=\"\""},"value":"px\" r=\"4px\" fill=\"white\" /><circle cx=\""},{"condition":{"commonType":{"typeIdentifier":"t_int8","typeString":"int8"},"id":4485,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4482,"name":"overRange","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4431,"src":"13658:9:16","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":4484,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"-","prefix":true,"src":"13671:2:16","subExpression":{"hexValue":"31","id":4483,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13672:1:16","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"typeDescriptions":{"typeIdentifier":"t_rational_minus_1_by_1","typeString":"int_const -1"}},"src":"13658:15:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":4487,"name":"curvex2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4445,"src":"13686:7:16","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":4488,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"13658:35:16","trueExpression":{"id":4486,"name":"curvex1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4437,"src":"13676:7:16","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"7078222063793d22","id":4489,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13715:10:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_04df0b57098eaa746dd457aea178f76fd2ba5ac64e69b33f7dbdf88159fd9066","typeString":"literal_string \"px\" cy=\"\""},"value":"px\" cy=\""},{"condition":{"commonType":{"typeIdentifier":"t_int8","typeString":"int8"},"id":4493,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4490,"name":"overRange","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4431,"src":"13747:9:16","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":4492,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"-","prefix":true,"src":"13760:2:16","subExpression":{"hexValue":"31","id":4491,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13761:1:16","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"typeDescriptions":{"typeIdentifier":"t_rational_minus_1_by_1","typeString":"int_const -1"}},"src":"13747:15:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":4495,"name":"curvey2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4449,"src":"13775:7:16","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":4496,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"13747:35:16","trueExpression":{"id":4494,"name":"curvey1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4441,"src":"13765:7:16","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"70782220723d2232347078222066696c6c3d226e6f6e6522207374726f6b653d22776869746522202f3e","id":4497,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13804:44:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_8f39c2ef49d5b31ddb2a6f4b9d03a6a799196af85cc95b7c0148ca8f2d6c3143","typeString":"literal_string \"px\" r=\"24px\" fill=\"none\" stroke=\"white\" />\""},"value":"px\" r=\"24px\" fill=\"none\" stroke=\"white\" />"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_0cfb64137c1b932845c13a5b9099e70707981c3c97fcffefd9a9dc3cb4822b2a","typeString":"literal_string \"<circle cx=\"\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_stringliteral_04df0b57098eaa746dd457aea178f76fd2ba5ac64e69b33f7dbdf88159fd9066","typeString":"literal_string \"px\" cy=\"\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_stringliteral_805d2dfd72788fbd262dae04ab03ec6490a808b57ad0f61b37e39bca57c9434b","typeString":"literal_string \"px\" r=\"4px\" fill=\"white\" /><circle cx=\"\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_stringliteral_04df0b57098eaa746dd457aea178f76fd2ba5ac64e69b33f7dbdf88159fd9066","typeString":"literal_string \"px\" cy=\"\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_stringliteral_8f39c2ef49d5b31ddb2a6f4b9d03a6a799196af85cc95b7c0148ca8f2d6c3143","typeString":"literal_string \"px\" r=\"24px\" fill=\"none\" stroke=\"white\" />\""}],"expression":{"id":4463,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"13375:3:16","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":4464,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodePacked","nodeType":"MemberAccess","src":"13375:16:16","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":4498,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13375:491:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":4462,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13351:6:16","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":4461,"name":"string","nodeType":"ElementaryTypeName","src":"13351:6:16","typeDescriptions":{}}},"id":4499,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13351:529:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"13345:535:16","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":4501,"nodeType":"ExpressionStatement","src":"13345:535:16"}]}}]},"id":4525,"implemented":true,"kind":"function","modifiers":[],"name":"generateSVGCurveCircle","nodeType":"FunctionDefinition","parameters":{"id":4432,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4431,"mutability":"mutable","name":"overRange","nodeType":"VariableDeclaration","scope":4525,"src":"13069:14:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"},"typeName":{"id":4430,"name":"int8","nodeType":"ElementaryTypeName","src":"13069:4:16","typeDescriptions":{"typeIdentifier":"t_int8","typeString":"int8"}},"visibility":"internal"}],"src":"13068:16:16"},"returnParameters":{"id":4435,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4434,"mutability":"mutable","name":"svg","nodeType":"VariableDeclaration","scope":4525,"src":"13108:17:16","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":4433,"name":"string","nodeType":"ElementaryTypeName","src":"13108:6:16","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"13107:19:16"},"scope":4885,"src":"13037:1323:16","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4654,"nodeType":"Block","src":"14543:2372:16","statements":[{"assignments":[4537],"declarations":[{"constant":false,"id":4537,"mutability":"mutable","name":"tickLowerStr","nodeType":"VariableDeclaration","scope":4654,"src":"14553:26:16","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":4536,"name":"string","nodeType":"ElementaryTypeName","src":"14553:6:16","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"id":4541,"initialValue":{"arguments":[{"id":4539,"name":"tickLower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4529,"src":"14595:9:16","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int24","typeString":"int24"}],"id":4538,"name":"tickToString","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4697,"src":"14582:12:16","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int24_$returns$_t_string_memory_ptr_$","typeString":"function (int24) pure returns (string memory)"}},"id":4540,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14582:23:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"VariableDeclarationStatement","src":"14553:52:16"},{"assignments":[4543],"declarations":[{"constant":false,"id":4543,"mutability":"mutable","name":"tickUpperStr","nodeType":"VariableDeclaration","scope":4654,"src":"14615:26:16","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":4542,"name":"string","nodeType":"ElementaryTypeName","src":"14615:6:16","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"id":4547,"initialValue":{"arguments":[{"id":4545,"name":"tickUpper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4531,"src":"14657:9:16","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int24","typeString":"int24"}],"id":4544,"name":"tickToString","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4697,"src":"14644:12:16","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int24_$returns$_t_string_memory_ptr_$","typeString":"function (int24) pure returns (string memory)"}},"id":4546,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14644:23:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"VariableDeclarationStatement","src":"14615:52:16"},{"assignments":[4549],"declarations":[{"constant":false,"id":4549,"mutability":"mutable","name":"str1length","nodeType":"VariableDeclaration","scope":4654,"src":"14677:18:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4548,"name":"uint256","nodeType":"ElementaryTypeName","src":"14677:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4557,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4556,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":4552,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4527,"src":"14704:7:16","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":4551,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14698:5:16","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":4550,"name":"bytes","nodeType":"ElementaryTypeName","src":"14698:5:16","typeDescriptions":{}}},"id":4553,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14698:14:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":4554,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"14698:21:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"34","id":4555,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14722:1:16","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"14698:25:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"14677:46:16"},{"assignments":[4559],"declarations":[{"constant":false,"id":4559,"mutability":"mutable","name":"str2length","nodeType":"VariableDeclaration","scope":4654,"src":"14733:18:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4558,"name":"uint256","nodeType":"ElementaryTypeName","src":"14733:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4567,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4566,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":4562,"name":"tickLowerStr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4537,"src":"14760:12:16","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":4561,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14754:5:16","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":4560,"name":"bytes","nodeType":"ElementaryTypeName","src":"14754:5:16","typeDescriptions":{}}},"id":4563,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14754:19:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":4564,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"14754:26:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"3130","id":4565,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14783:2:16","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"src":"14754:31:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"14733:52:16"},{"assignments":[4569],"declarations":[{"constant":false,"id":4569,"mutability":"mutable","name":"str3length","nodeType":"VariableDeclaration","scope":4654,"src":"14795:18:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4568,"name":"uint256","nodeType":"ElementaryTypeName","src":"14795:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4577,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4576,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":4572,"name":"tickUpperStr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4543,"src":"14822:12:16","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":4571,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14816:5:16","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":4570,"name":"bytes","nodeType":"ElementaryTypeName","src":"14816:5:16","typeDescriptions":{}}},"id":4573,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14816:19:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":4574,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","src":"14816:26:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"3130","id":4575,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14845:2:16","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"src":"14816:31:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"14795:52:16"},{"assignments":[4579,4581],"declarations":[{"constant":false,"id":4579,"mutability":"mutable","name":"xCoord","nodeType":"VariableDeclaration","scope":4654,"src":"14858:20:16","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":4578,"name":"string","nodeType":"ElementaryTypeName","src":"14858:6:16","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":4581,"mutability":"mutable","name":"yCoord","nodeType":"VariableDeclaration","scope":4654,"src":"14880:20:16","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":4580,"name":"string","nodeType":"ElementaryTypeName","src":"14880:6:16","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"id":4586,"initialValue":{"arguments":[{"id":4583,"name":"tickLower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4529,"src":"14918:9:16","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},{"id":4584,"name":"tickUpper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4531,"src":"14929:9:16","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int24","typeString":"int24"},{"typeIdentifier":"t_int24","typeString":"int24"}],"id":4582,"name":"rangeLocation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4808,"src":"14904:13:16","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int24_$_t_int24_$returns$_t_string_memory_ptr_$_t_string_memory_ptr_$","typeString":"function (int24,int24) pure returns (string memory,string memory)"}},"id":4585,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14904:35:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_string_memory_ptr_$_t_string_memory_ptr_$","typeString":"tuple(string memory,string memory)"}},"nodeType":"VariableDeclarationStatement","src":"14857:82:16"},{"expression":{"id":4652,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4587,"name":"svg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4534,"src":"14949:3:16","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"hexValue":"203c67207374796c653d227472616e73666f726d3a7472616e736c61746528323970782c20333834707829223e","id":4592,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15009:47:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_a1d35662f193c8dca60ea626415bf453b6eb6f19f995eb4e725506bddb1c9b3c","typeString":"literal_string \" <g style=\"transform:translate(29px, 384px)\">\""},"value":" <g style=\"transform:translate(29px, 384px)\">"},{"hexValue":"3c726563742077696474683d22","id":4593,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15074:15:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_ea677e503ab4e967d2570a008dd897c1687e0426ee06ab367778d22358bbd498","typeString":"literal_string \"<rect width=\"\""},"value":"<rect width=\""},{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4601,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"37","id":4596,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15115:1:16","typeDescriptions":{"typeIdentifier":"t_rational_7_by_1","typeString":"int_const 7"},"value":"7"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4599,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4597,"name":"str1length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4549,"src":"15120:10:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"34","id":4598,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15133:1:16","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"15120:14:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":4600,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"15119:16:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15115:20:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4595,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15107:7:16","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":4594,"name":"uint256","nodeType":"ElementaryTypeName","src":"15107:7:16","typeDescriptions":{}}},"id":4602,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15107:29:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4603,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"toString","nodeType":"MemberAccess","referencedDeclaration":2054,"src":"15107:38:16","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_string_memory_ptr_$bound_to$_t_uint256_$","typeString":"function (uint256) pure returns (string memory)"}},"id":4604,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15107:40:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"707822206865696768743d2232367078222072783d22387078222072793d22387078222066696c6c3d227267626128302c302c302c302e362922202f3e","id":4605,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15165:63:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_800ca0756ff976e45c222900c67e79662594eea8a3ec66e3bbb8af53bd09f4e4","typeString":"literal_string \"px\" height=\"26px\" rx=\"8px\" ry=\"8px\" fill=\"rgba(0,0,0,0.6)\" />\""},"value":"px\" height=\"26px\" rx=\"8px\" ry=\"8px\" fill=\"rgba(0,0,0,0.6)\" />"},{"hexValue":"3c7465787420783d22313270782220793d22313770782220666f6e742d66616d696c793d2227436f7572696572204e6577272c206d6f6e6f73706163652220666f6e742d73697a653d2231327078222066696c6c3d227768697465223e3c747370616e2066696c6c3d2272676261283235352c3235352c3235352c302e3629223e49443a203c2f747370616e3e","id":4606,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15246:145:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_e48f616382bc4db7da9436f22e091c88340d840be14446bdcabee6fb3c9ef913","typeString":"literal_string \"<text x=\"12px\" y=\"17px\" font-family=\"'Courier New', monospace\" font-size=\"12px\" fill=\"white\"><tspan fill=\"rgba(255,255,255,0.6)\">ID: </tspan>\""},"value":"<text x=\"12px\" y=\"17px\" font-family=\"'Courier New', monospace\" font-size=\"12px\" fill=\"white\"><tspan fill=\"rgba(255,255,255,0.6)\">ID: </tspan>"},{"id":4607,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4527,"src":"15409:7:16","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"3c2f746578743e3c2f673e","id":4608,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15434:13:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_0b7427e2f769aaaa13bde5b715b09255dc5398714a59a798afc7999c8e6ae7f0","typeString":"literal_string \"</text></g>\""},"value":"</text></g>"},{"hexValue":"203c67207374796c653d227472616e73666f726d3a7472616e736c61746528323970782c20343134707829223e","id":4609,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15465:47:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_fab582159965dc3537eef15a4898cfd495cdf6178ad5c39fe4f14de95021bcdd","typeString":"literal_string \" <g style=\"transform:translate(29px, 414px)\">\""},"value":" <g style=\"transform:translate(29px, 414px)\">"},{"hexValue":"3c726563742077696474683d22","id":4610,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15530:15:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_ea677e503ab4e967d2570a008dd897c1687e0426ee06ab367778d22358bbd498","typeString":"literal_string \"<rect width=\"\""},"value":"<rect width=\""},{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4618,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"37","id":4613,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15571:1:16","typeDescriptions":{"typeIdentifier":"t_rational_7_by_1","typeString":"int_const 7"},"value":"7"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4616,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4614,"name":"str2length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4559,"src":"15576:10:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"34","id":4615,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15589:1:16","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"15576:14:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":4617,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"15575:16:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15571:20:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4612,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15563:7:16","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":4611,"name":"uint256","nodeType":"ElementaryTypeName","src":"15563:7:16","typeDescriptions":{}}},"id":4619,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15563:29:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4620,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"toString","nodeType":"MemberAccess","referencedDeclaration":2054,"src":"15563:38:16","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_string_memory_ptr_$bound_to$_t_uint256_$","typeString":"function (uint256) pure returns (string memory)"}},"id":4621,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15563:40:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"707822206865696768743d2232367078222072783d22387078222072793d22387078222066696c6c3d227267626128302c302c302c302e362922202f3e","id":4622,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15621:63:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_800ca0756ff976e45c222900c67e79662594eea8a3ec66e3bbb8af53bd09f4e4","typeString":"literal_string \"px\" height=\"26px\" rx=\"8px\" ry=\"8px\" fill=\"rgba(0,0,0,0.6)\" />\""},"value":"px\" height=\"26px\" rx=\"8px\" ry=\"8px\" fill=\"rgba(0,0,0,0.6)\" />"},{"hexValue":"3c7465787420783d22313270782220793d22313770782220666f6e742d66616d696c793d2227436f7572696572204e6577272c206d6f6e6f73706163652220666f6e742d73697a653d2231327078222066696c6c3d227768697465223e3c747370616e2066696c6c3d2272676261283235352c3235352c3235352c302e3629223e4d696e205469636b3a203c2f747370616e3e","id":4623,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15702:151:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_5bc1bf3d11aae697778119ef346ad4842b7aeee3b48245084fb03eaf191c89a0","typeString":"literal_string \"<text x=\"12px\" y=\"17px\" font-family=\"'Courier New', monospace\" font-size=\"12px\" fill=\"white\"><tspan fill=\"rgba(255,255,255,0.6)\">Min Tick: </tspan>\""},"value":"<text x=\"12px\" y=\"17px\" font-family=\"'Courier New', monospace\" font-size=\"12px\" fill=\"white\"><tspan fill=\"rgba(255,255,255,0.6)\">Min Tick: </tspan>"},{"id":4624,"name":"tickLowerStr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4537,"src":"15871:12:16","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"3c2f746578743e3c2f673e","id":4625,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15901:13:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_0b7427e2f769aaaa13bde5b715b09255dc5398714a59a798afc7999c8e6ae7f0","typeString":"literal_string \"</text></g>\""},"value":"</text></g>"},{"hexValue":"203c67207374796c653d227472616e73666f726d3a7472616e736c61746528323970782c20343434707829223e","id":4626,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15932:47:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_220105d546304f5c5e6ab619f93ed0540d9e75da2d2186101f3be7105ff28a8a","typeString":"literal_string \" <g style=\"transform:translate(29px, 444px)\">\""},"value":" <g style=\"transform:translate(29px, 444px)\">"},{"hexValue":"3c726563742077696474683d22","id":4627,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15997:15:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_ea677e503ab4e967d2570a008dd897c1687e0426ee06ab367778d22358bbd498","typeString":"literal_string \"<rect width=\"\""},"value":"<rect width=\""},{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4635,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"37","id":4630,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16038:1:16","typeDescriptions":{"typeIdentifier":"t_rational_7_by_1","typeString":"int_const 7"},"value":"7"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4633,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4631,"name":"str3length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4569,"src":"16043:10:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"34","id":4632,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16056:1:16","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"16043:14:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":4634,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"16042:16:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16038:20:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4629,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16030:7:16","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":4628,"name":"uint256","nodeType":"ElementaryTypeName","src":"16030:7:16","typeDescriptions":{}}},"id":4636,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16030:29:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4637,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"toString","nodeType":"MemberAccess","referencedDeclaration":2054,"src":"16030:38:16","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_string_memory_ptr_$bound_to$_t_uint256_$","typeString":"function (uint256) pure returns (string memory)"}},"id":4638,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16030:40:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"707822206865696768743d2232367078222072783d22387078222072793d22387078222066696c6c3d227267626128302c302c302c302e362922202f3e","id":4639,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"16088:63:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_800ca0756ff976e45c222900c67e79662594eea8a3ec66e3bbb8af53bd09f4e4","typeString":"literal_string \"px\" height=\"26px\" rx=\"8px\" ry=\"8px\" fill=\"rgba(0,0,0,0.6)\" />\""},"value":"px\" height=\"26px\" rx=\"8px\" ry=\"8px\" fill=\"rgba(0,0,0,0.6)\" />"},{"hexValue":"3c7465787420783d22313270782220793d22313770782220666f6e742d66616d696c793d2227436f7572696572204e6577272c206d6f6e6f73706163652220666f6e742d73697a653d2231327078222066696c6c3d227768697465223e3c747370616e2066696c6c3d2272676261283235352c3235352c3235352c302e3629223e4d6178205469636b3a203c2f747370616e3e","id":4640,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"16169:151:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_bef0de1b6ab64a87365883910640202cc923019a0642c3dc3ce8c92f70e2aec2","typeString":"literal_string \"<text x=\"12px\" y=\"17px\" font-family=\"'Courier New', monospace\" font-size=\"12px\" fill=\"white\"><tspan fill=\"rgba(255,255,255,0.6)\">Max Tick: </tspan>\""},"value":"<text x=\"12px\" y=\"17px\" font-family=\"'Courier New', monospace\" font-size=\"12px\" fill=\"white\"><tspan fill=\"rgba(255,255,255,0.6)\">Max Tick: </tspan>"},{"id":4641,"name":"tickUpperStr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4543,"src":"16338:12:16","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"3c2f746578743e3c2f673e3c67207374796c653d227472616e73666f726d3a7472616e736c6174652832323670782c20343333707829223e","id":4642,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"16368:77:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_f779b01e2c11d50446559da8a96e840c35be2177455b0699985122c52b0d1f4e","typeString":"literal_string \"</text></g><g style=\"transform:translate(226px, 433px)\">\""},"value":"</text></g><g style=\"transform:translate(226px, 433px)\">"},{"hexValue":"3c726563742077696474683d223336707822206865696768743d2233367078222072783d22387078222072793d22387078222066696c6c3d226e6f6e6522207374726f6b653d2272676261283235352c3235352c3235352c302e322922202f3e","id":4643,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"16463:98:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_ec66f735b9269156d2621c7cb2e179cbb93736ea6dfc7db8bdd4441a81eb1f64","typeString":"literal_string \"<rect width=\"36px\" height=\"36px\" rx=\"8px\" ry=\"8px\" fill=\"none\" stroke=\"rgba(255,255,255,0.2)\" />\""},"value":"<rect width=\"36px\" height=\"36px\" rx=\"8px\" ry=\"8px\" fill=\"none\" stroke=\"rgba(255,255,255,0.2)\" />"},{"hexValue":"3c70617468207374726f6b652d6c696e656361703d22726f756e642220643d224d38203943382e30303030342032322e393439342031362e32303939203238203237203238222066696c6c3d226e6f6e6522207374726f6b653d22776869746522202f3e","id":4644,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"16579:102:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_9172aa3905273de2038748a8a21d4c0caf162952597ab7af5f83d1a3c63cec1a","typeString":"literal_string \"<path stroke-linecap=\"round\" d=\"M8 9C8.00004 22.9494 16.2099 28 27 28\" fill=\"none\" stroke=\"white\" />\""},"value":"<path stroke-linecap=\"round\" d=\"M8 9C8.00004 22.9494 16.2099 28 27 28\" fill=\"none\" stroke=\"white\" />"},{"hexValue":"3c636972636c65207374796c653d227472616e73666f726d3a7472616e736c617465336428","id":4645,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"16699:39:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_2f31b113ee3d3056d0911a5e394047e1383278908d2c52df748865318956703e","typeString":"literal_string \"<circle style=\"transform:translate3d(\""},"value":"<circle style=\"transform:translate3d("},{"id":4646,"name":"xCoord","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4579,"src":"16756:6:16","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"70782c20","id":4647,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"16780:6:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_b6aaa2c0b71922b19b9b8b146cc93d2f4e231e6b961d744f30cad118bc857ef8","typeString":"literal_string \"px, \""},"value":"px, "},{"id":4648,"name":"yCoord","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4581,"src":"16804:6:16","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"70782c2030707829222063783d22307078222063793d223070782220723d22347078222066696c6c3d227768697465222f3e3c2f673e","id":4649,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"16828:56:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_12c8706c8ed81675e674ab6c512d5560a6aee02a6795723026211fc0112724ea","typeString":"literal_string \"px, 0px)\" cx=\"0px\" cy=\"0px\" r=\"4px\" fill=\"white\"/></g>\""},"value":"px, 0px)\" cx=\"0px\" cy=\"0px\" r=\"4px\" fill=\"white\"/></g>"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a1d35662f193c8dca60ea626415bf453b6eb6f19f995eb4e725506bddb1c9b3c","typeString":"literal_string \" <g style=\"transform:translate(29px, 384px)\">\""},{"typeIdentifier":"t_stringliteral_ea677e503ab4e967d2570a008dd897c1687e0426ee06ab367778d22358bbd498","typeString":"literal_string \"<rect width=\"\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_stringliteral_800ca0756ff976e45c222900c67e79662594eea8a3ec66e3bbb8af53bd09f4e4","typeString":"literal_string \"px\" height=\"26px\" rx=\"8px\" ry=\"8px\" fill=\"rgba(0,0,0,0.6)\" />\""},{"typeIdentifier":"t_stringliteral_e48f616382bc4db7da9436f22e091c88340d840be14446bdcabee6fb3c9ef913","typeString":"literal_string \"<text x=\"12px\" y=\"17px\" font-family=\"'Courier New', monospace\" font-size=\"12px\" fill=\"white\"><tspan fill=\"rgba(255,255,255,0.6)\">ID: </tspan>\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_stringliteral_0b7427e2f769aaaa13bde5b715b09255dc5398714a59a798afc7999c8e6ae7f0","typeString":"literal_string \"</text></g>\""},{"typeIdentifier":"t_stringliteral_fab582159965dc3537eef15a4898cfd495cdf6178ad5c39fe4f14de95021bcdd","typeString":"literal_string \" <g style=\"transform:translate(29px, 414px)\">\""},{"typeIdentifier":"t_stringliteral_ea677e503ab4e967d2570a008dd897c1687e0426ee06ab367778d22358bbd498","typeString":"literal_string \"<rect width=\"\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_stringliteral_800ca0756ff976e45c222900c67e79662594eea8a3ec66e3bbb8af53bd09f4e4","typeString":"literal_string \"px\" height=\"26px\" rx=\"8px\" ry=\"8px\" fill=\"rgba(0,0,0,0.6)\" />\""},{"typeIdentifier":"t_stringliteral_5bc1bf3d11aae697778119ef346ad4842b7aeee3b48245084fb03eaf191c89a0","typeString":"literal_string \"<text x=\"12px\" y=\"17px\" font-family=\"'Courier New', monospace\" font-size=\"12px\" fill=\"white\"><tspan fill=\"rgba(255,255,255,0.6)\">Min Tick: </tspan>\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_stringliteral_0b7427e2f769aaaa13bde5b715b09255dc5398714a59a798afc7999c8e6ae7f0","typeString":"literal_string \"</text></g>\""},{"typeIdentifier":"t_stringliteral_220105d546304f5c5e6ab619f93ed0540d9e75da2d2186101f3be7105ff28a8a","typeString":"literal_string \" <g style=\"transform:translate(29px, 444px)\">\""},{"typeIdentifier":"t_stringliteral_ea677e503ab4e967d2570a008dd897c1687e0426ee06ab367778d22358bbd498","typeString":"literal_string \"<rect width=\"\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_stringliteral_800ca0756ff976e45c222900c67e79662594eea8a3ec66e3bbb8af53bd09f4e4","typeString":"literal_string \"px\" height=\"26px\" rx=\"8px\" ry=\"8px\" fill=\"rgba(0,0,0,0.6)\" />\""},{"typeIdentifier":"t_stringliteral_bef0de1b6ab64a87365883910640202cc923019a0642c3dc3ce8c92f70e2aec2","typeString":"literal_string \"<text x=\"12px\" y=\"17px\" font-family=\"'Courier New', monospace\" font-size=\"12px\" fill=\"white\"><tspan fill=\"rgba(255,255,255,0.6)\">Max Tick: </tspan>\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_stringliteral_f779b01e2c11d50446559da8a96e840c35be2177455b0699985122c52b0d1f4e","typeString":"literal_string \"</text></g><g style=\"transform:translate(226px, 433px)\">\""},{"typeIdentifier":"t_stringliteral_ec66f735b9269156d2621c7cb2e179cbb93736ea6dfc7db8bdd4441a81eb1f64","typeString":"literal_string \"<rect width=\"36px\" height=\"36px\" rx=\"8px\" ry=\"8px\" fill=\"none\" stroke=\"rgba(255,255,255,0.2)\" />\""},{"typeIdentifier":"t_stringliteral_9172aa3905273de2038748a8a21d4c0caf162952597ab7af5f83d1a3c63cec1a","typeString":"literal_string \"<path stroke-linecap=\"round\" d=\"M8 9C8.00004 22.9494 16.2099 28 27 28\" fill=\"none\" stroke=\"white\" />\""},{"typeIdentifier":"t_stringliteral_2f31b113ee3d3056d0911a5e394047e1383278908d2c52df748865318956703e","typeString":"literal_string \"<circle style=\"transform:translate3d(\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_stringliteral_b6aaa2c0b71922b19b9b8b146cc93d2f4e231e6b961d744f30cad118bc857ef8","typeString":"literal_string \"px, \""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_stringliteral_12c8706c8ed81675e674ab6c512d5560a6aee02a6795723026211fc0112724ea","typeString":"literal_string \"px, 0px)\" cx=\"0px\" cy=\"0px\" r=\"4px\" fill=\"white\"/></g>\""}],"expression":{"id":4590,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"14975:3:16","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":4591,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodePacked","nodeType":"MemberAccess","src":"14975:16:16","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":4650,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14975:1923:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":4589,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14955:6:16","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":4588,"name":"string","nodeType":"ElementaryTypeName","src":"14955:6:16","typeDescriptions":{}}},"id":4651,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14955:1953:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"14949:1959:16","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":4653,"nodeType":"ExpressionStatement","src":"14949:1959:16"}]},"id":4655,"implemented":true,"kind":"function","modifiers":[],"name":"generateSVGPositionDataAndLocationCurve","nodeType":"FunctionDefinition","parameters":{"id":4532,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4527,"mutability":"mutable","name":"tokenId","nodeType":"VariableDeclaration","scope":4655,"src":"14424:21:16","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":4526,"name":"string","nodeType":"ElementaryTypeName","src":"14424:6:16","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":4529,"mutability":"mutable","name":"tickLower","nodeType":"VariableDeclaration","scope":4655,"src":"14455:15:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"},"typeName":{"id":4528,"name":"int24","nodeType":"ElementaryTypeName","src":"14455:5:16","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"visibility":"internal"},{"constant":false,"id":4531,"mutability":"mutable","name":"tickUpper","nodeType":"VariableDeclaration","scope":4655,"src":"14480:15:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"},"typeName":{"id":4530,"name":"int24","nodeType":"ElementaryTypeName","src":"14480:5:16","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"visibility":"internal"}],"src":"14414:87:16"},"returnParameters":{"id":4535,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4534,"mutability":"mutable","name":"svg","nodeType":"VariableDeclaration","scope":4655,"src":"14524:17:16","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":4533,"name":"string","nodeType":"ElementaryTypeName","src":"14524:6:16","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"14523:19:16"},"scope":4885,"src":"14366:2549:16","stateMutability":"pure","virtual":false,"visibility":"private"},{"body":{"id":4696,"nodeType":"Block","src":"16992:201:16","statements":[{"assignments":[4663],"declarations":[{"constant":false,"id":4663,"mutability":"mutable","name":"sign","nodeType":"VariableDeclaration","scope":4696,"src":"17002:18:16","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":4662,"name":"string","nodeType":"ElementaryTypeName","src":"17002:6:16","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"id":4665,"initialValue":{"hexValue":"","id":4664,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"17023:2:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""},"nodeType":"VariableDeclarationStatement","src":"17002:23:16"},{"condition":{"commonType":{"typeIdentifier":"t_int24","typeString":"int24"},"id":4668,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4666,"name":"tick","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4657,"src":"17039:4:16","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"30","id":4667,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17046:1:16","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"17039:8:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4681,"nodeType":"IfStatement","src":"17035:79:16","trueBody":{"id":4680,"nodeType":"Block","src":"17049:65:16","statements":[{"expression":{"id":4674,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4669,"name":"tick","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4657,"src":"17063:4:16","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_int24","typeString":"int24"},"id":4673,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4670,"name":"tick","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4657,"src":"17070:4:16","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":4672,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"-","prefix":true,"src":"17077:2:16","subExpression":{"hexValue":"31","id":4671,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17078:1:16","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"typeDescriptions":{"typeIdentifier":"t_rational_minus_1_by_1","typeString":"int_const -1"}},"src":"17070:9:16","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"src":"17063:16:16","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"id":4675,"nodeType":"ExpressionStatement","src":"17063:16:16"},{"expression":{"id":4678,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4676,"name":"sign","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4663,"src":"17093:4:16","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"2d","id":4677,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"17100:3:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_d3b8281179950f98149eefdb158d0e1acb56f56e8e343aa9fefafa7e36959561","typeString":"literal_string \"-\""},"value":"-"},"src":"17093:10:16","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":4679,"nodeType":"ExpressionStatement","src":"17093:10:16"}]}},{"expression":{"arguments":[{"arguments":[{"id":4686,"name":"sign","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4663,"src":"17154:4:16","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":4689,"name":"tick","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4657,"src":"17168:4:16","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int24","typeString":"int24"}],"id":4688,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17160:7:16","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":4687,"name":"uint256","nodeType":"ElementaryTypeName","src":"17160:7:16","typeDescriptions":{}}},"id":4690,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17160:13:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4691,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"toString","nodeType":"MemberAccess","referencedDeclaration":2054,"src":"17160:22:16","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_string_memory_ptr_$bound_to$_t_uint256_$","typeString":"function (uint256) pure returns (string memory)"}},"id":4692,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17160:24:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":4684,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"17137:3:16","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":4685,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodePacked","nodeType":"MemberAccess","src":"17137:16:16","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":4693,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17137:48:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":4683,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17130:6:16","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":4682,"name":"string","nodeType":"ElementaryTypeName","src":"17130:6:16","typeDescriptions":{}}},"id":4694,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17130:56:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":4661,"id":4695,"nodeType":"Return","src":"17123:63:16"}]},"id":4697,"implemented":true,"kind":"function","modifiers":[],"name":"tickToString","nodeType":"FunctionDefinition","parameters":{"id":4658,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4657,"mutability":"mutable","name":"tick","nodeType":"VariableDeclaration","scope":4697,"src":"16943:10:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"},"typeName":{"id":4656,"name":"int24","nodeType":"ElementaryTypeName","src":"16943:5:16","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"visibility":"internal"}],"src":"16942:12:16"},"returnParameters":{"id":4661,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4660,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","scope":4697,"src":"16977:13:16","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":4659,"name":"string","nodeType":"ElementaryTypeName","src":"16977:6:16","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"16976:15:16"},"scope":4885,"src":"16921:272:16","stateMutability":"pure","virtual":false,"visibility":"private"},{"body":{"id":4807,"nodeType":"Block","src":"17309:771:16","statements":[{"assignments":[4709],"declarations":[{"constant":false,"id":4709,"mutability":"mutable","name":"midPoint","nodeType":"VariableDeclaration","scope":4807,"src":"17319:14:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"},"typeName":{"id":4708,"name":"int24","nodeType":"ElementaryTypeName","src":"17319:5:16","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"visibility":"internal"}],"id":4716,"initialValue":{"commonType":{"typeIdentifier":"t_int24","typeString":"int24"},"id":4715,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_int24","typeString":"int24"},"id":4712,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4710,"name":"tickLower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4699,"src":"17337:9:16","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":4711,"name":"tickUpper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4701,"src":"17349:9:16","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"src":"17337:21:16","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}}],"id":4713,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"17336:23:16","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"hexValue":"32","id":4714,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17362:1:16","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"17336:27:16","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"nodeType":"VariableDeclarationStatement","src":"17319:44:16"},{"condition":{"commonType":{"typeIdentifier":"t_int24","typeString":"int24"},"id":4720,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4717,"name":"midPoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4709,"src":"17377:8:16","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":4719,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"-","prefix":true,"src":"17388:8:16","subExpression":{"hexValue":"3132355f303030","id":4718,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17389:7:16","typeDescriptions":{"typeIdentifier":"t_rational_125000_by_1","typeString":"int_const 125000"},"value":"125_000"},"typeDescriptions":{"typeIdentifier":"t_rational_minus_125000_by_1","typeString":"int_const -125000"}},"src":"17377:19:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_int24","typeString":"int24"},"id":4729,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4726,"name":"midPoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4709,"src":"17450:8:16","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":4728,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"-","prefix":true,"src":"17461:7:16","subExpression":{"hexValue":"37355f303030","id":4727,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17462:6:16","typeDescriptions":{"typeIdentifier":"t_rational_75000_by_1","typeString":"int_const 75000"},"value":"75_000"},"typeDescriptions":{"typeIdentifier":"t_rational_minus_75000_by_1","typeString":"int_const -75000"}},"src":"17450:18:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_int24","typeString":"int24"},"id":4738,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4735,"name":"midPoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4709,"src":"17525:8:16","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":4737,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"-","prefix":true,"src":"17536:7:16","subExpression":{"hexValue":"32355f303030","id":4736,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17537:6:16","typeDescriptions":{"typeIdentifier":"t_rational_25000_by_1","typeString":"int_const 25000"},"value":"25_000"},"typeDescriptions":{"typeIdentifier":"t_rational_minus_25000_by_1","typeString":"int_const -25000"}},"src":"17525:18:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_int24","typeString":"int24"},"id":4747,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4744,"name":"midPoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4709,"src":"17601:8:16","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":4746,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"-","prefix":true,"src":"17612:6:16","subExpression":{"hexValue":"355f303030","id":4745,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17613:5:16","typeDescriptions":{"typeIdentifier":"t_rational_5000_by_1","typeString":"int_const 5000"},"value":"5_000"},"typeDescriptions":{"typeIdentifier":"t_rational_minus_5000_by_1","typeString":"int_const -5000"}},"src":"17601:17:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_int24","typeString":"int24"},"id":4755,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4753,"name":"midPoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4709,"src":"17674:8:16","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"30","id":4754,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17685:1:16","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"17674:12:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_int24","typeString":"int24"},"id":4763,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4761,"name":"midPoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4709,"src":"17742:8:16","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"355f303030","id":4762,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17753:5:16","typeDescriptions":{"typeIdentifier":"t_rational_5000_by_1","typeString":"int_const 5000"},"value":"5_000"},"src":"17742:16:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_int24","typeString":"int24"},"id":4771,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4769,"name":"midPoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4709,"src":"17814:8:16","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"32355f303030","id":4770,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17825:6:16","typeDescriptions":{"typeIdentifier":"t_rational_25000_by_1","typeString":"int_const 25000"},"value":"25_000"},"src":"17814:17:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_int24","typeString":"int24"},"id":4779,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4777,"name":"midPoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4709,"src":"17887:8:16","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"37355f303030","id":4778,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17898:6:16","typeDescriptions":{"typeIdentifier":"t_rational_75000_by_1","typeString":"int_const 75000"},"value":"75_000"},"src":"17887:17:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_int24","typeString":"int24"},"id":4787,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4785,"name":"midPoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4709,"src":"17960:8:16","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"3132355f303030","id":4786,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17971:7:16","typeDescriptions":{"typeIdentifier":"t_rational_125000_by_1","typeString":"int_const 125000"},"value":"125_000"},"src":"17960:18:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":4797,"nodeType":"Block","src":"18030:44:16","statements":[{"expression":{"components":[{"hexValue":"3234","id":4793,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"18052:4:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_6585423cb6456b1d4957f6454d2f004f0c4f58d53a00082412d5c2ef4b1b31fd","typeString":"literal_string \"24\""},"value":"24"},{"hexValue":"3237","id":4794,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"18058:4:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_58a280f74f57bf051c40f060139dc747e015be52f68c57e2c4ab2e4bd4146f43","typeString":"literal_string \"27\""},"value":"27"}],"id":4795,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"18051:12:16","typeDescriptions":{"typeIdentifier":"t_tuple$_t_stringliteral_6585423cb6456b1d4957f6454d2f004f0c4f58d53a00082412d5c2ef4b1b31fd_$_t_stringliteral_58a280f74f57bf051c40f060139dc747e015be52f68c57e2c4ab2e4bd4146f43_$","typeString":"tuple(literal_string \"24\",literal_string \"27\")"}},"functionReturnParameters":4707,"id":4796,"nodeType":"Return","src":"18044:19:16"}]},"id":4798,"nodeType":"IfStatement","src":"17956:118:16","trueBody":{"id":4792,"nodeType":"Block","src":"17980:44:16","statements":[{"expression":{"components":[{"hexValue":"3231","id":4788,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"18002:4:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_f4c2b5de886427473655d4c904c743576dc2d53249b7535d96c06cc97ae7216b","typeString":"literal_string \"21\""},"value":"21"},{"hexValue":"3237","id":4789,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"18008:4:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_58a280f74f57bf051c40f060139dc747e015be52f68c57e2c4ab2e4bd4146f43","typeString":"literal_string \"27\""},"value":"27"}],"id":4790,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"18001:12:16","typeDescriptions":{"typeIdentifier":"t_tuple$_t_stringliteral_f4c2b5de886427473655d4c904c743576dc2d53249b7535d96c06cc97ae7216b_$_t_stringliteral_58a280f74f57bf051c40f060139dc747e015be52f68c57e2c4ab2e4bd4146f43_$","typeString":"tuple(literal_string \"21\",literal_string \"27\")"}},"functionReturnParameters":4707,"id":4791,"nodeType":"Return","src":"17994:19:16"}]}},"id":4799,"nodeType":"IfStatement","src":"17883:191:16","trueBody":{"id":4784,"nodeType":"Block","src":"17906:44:16","statements":[{"expression":{"components":[{"hexValue":"3138","id":4780,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"17928:4:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_8fef2229291b68be841adf029e58b87f39ba144b2d3b0af1760243d0a9bc6a1c","typeString":"literal_string \"18\""},"value":"18"},{"hexValue":"3236","id":4781,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"17934:4:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_9cce9eb03c9f29c6481fca9f0f942b15bef0bbbc47fda0ddb44df157019835d9","typeString":"literal_string \"26\""},"value":"26"}],"id":4782,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"17927:12:16","typeDescriptions":{"typeIdentifier":"t_tuple$_t_stringliteral_8fef2229291b68be841adf029e58b87f39ba144b2d3b0af1760243d0a9bc6a1c_$_t_stringliteral_9cce9eb03c9f29c6481fca9f0f942b15bef0bbbc47fda0ddb44df157019835d9_$","typeString":"tuple(literal_string \"18\",literal_string \"26\")"}},"functionReturnParameters":4707,"id":4783,"nodeType":"Return","src":"17920:19:16"}]}},"id":4800,"nodeType":"IfStatement","src":"17810:264:16","trueBody":{"id":4776,"nodeType":"Block","src":"17833:44:16","statements":[{"expression":{"components":[{"hexValue":"3135","id":4772,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"17855:4:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_1d3be50b2bb17407dd170f1d5da128d1def30c6b1598d6a629e79b4775265526","typeString":"literal_string \"15\""},"value":"15"},{"hexValue":"3235","id":4773,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"17861:4:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_81e080ffc23e8b8d44dd829bc823229e92b893eb1d8f624419d3f5682eb97fc3","typeString":"literal_string \"25\""},"value":"25"}],"id":4774,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"17854:12:16","typeDescriptions":{"typeIdentifier":"t_tuple$_t_stringliteral_1d3be50b2bb17407dd170f1d5da128d1def30c6b1598d6a629e79b4775265526_$_t_stringliteral_81e080ffc23e8b8d44dd829bc823229e92b893eb1d8f624419d3f5682eb97fc3_$","typeString":"tuple(literal_string \"15\",literal_string \"25\")"}},"functionReturnParameters":4707,"id":4775,"nodeType":"Return","src":"17847:19:16"}]}},"id":4801,"nodeType":"IfStatement","src":"17738:336:16","trueBody":{"id":4768,"nodeType":"Block","src":"17760:44:16","statements":[{"expression":{"components":[{"hexValue":"3133","id":4764,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"17782:4:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_789bcdf275fa270780a52ae3b79bb1ce0fda7e0aaad87b57b74bb99ac290714a","typeString":"literal_string \"13\""},"value":"13"},{"hexValue":"3233","id":4765,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"17788:4:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_1572b593c53d839d80004aa4b8c51211864104f06ace9e22be9c4365b50655ea","typeString":"literal_string \"23\""},"value":"23"}],"id":4766,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"17781:12:16","typeDescriptions":{"typeIdentifier":"t_tuple$_t_stringliteral_789bcdf275fa270780a52ae3b79bb1ce0fda7e0aaad87b57b74bb99ac290714a_$_t_stringliteral_1572b593c53d839d80004aa4b8c51211864104f06ace9e22be9c4365b50655ea_$","typeString":"tuple(literal_string \"13\",literal_string \"23\")"}},"functionReturnParameters":4707,"id":4767,"nodeType":"Return","src":"17774:19:16"}]}},"id":4802,"nodeType":"IfStatement","src":"17670:404:16","trueBody":{"id":4760,"nodeType":"Block","src":"17688:44:16","statements":[{"expression":{"components":[{"hexValue":"3131","id":4756,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"17710:4:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_7880aec93413f117ef14bd4e6d130875ab2c7d7d55a064fac3c2f7bd51516380","typeString":"literal_string \"11\""},"value":"11"},{"hexValue":"3231","id":4757,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"17716:4:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_f4c2b5de886427473655d4c904c743576dc2d53249b7535d96c06cc97ae7216b","typeString":"literal_string \"21\""},"value":"21"}],"id":4758,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"17709:12:16","typeDescriptions":{"typeIdentifier":"t_tuple$_t_stringliteral_7880aec93413f117ef14bd4e6d130875ab2c7d7d55a064fac3c2f7bd51516380_$_t_stringliteral_f4c2b5de886427473655d4c904c743576dc2d53249b7535d96c06cc97ae7216b_$","typeString":"tuple(literal_string \"11\",literal_string \"21\")"}},"functionReturnParameters":4707,"id":4759,"nodeType":"Return","src":"17702:19:16"}]}},"id":4803,"nodeType":"IfStatement","src":"17597:477:16","trueBody":{"id":4752,"nodeType":"Block","src":"17620:44:16","statements":[{"expression":{"components":[{"hexValue":"3130","id":4748,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"17642:4:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_1a192fabce13988b84994d4296e6cdc418d55e2f1d7f942188d4040b94fc57ac","typeString":"literal_string \"10\""},"value":"10"},{"hexValue":"3138","id":4749,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"17648:4:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_8fef2229291b68be841adf029e58b87f39ba144b2d3b0af1760243d0a9bc6a1c","typeString":"literal_string \"18\""},"value":"18"}],"id":4750,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"17641:12:16","typeDescriptions":{"typeIdentifier":"t_tuple$_t_stringliteral_1a192fabce13988b84994d4296e6cdc418d55e2f1d7f942188d4040b94fc57ac_$_t_stringliteral_8fef2229291b68be841adf029e58b87f39ba144b2d3b0af1760243d0a9bc6a1c_$","typeString":"tuple(literal_string \"10\",literal_string \"18\")"}},"functionReturnParameters":4707,"id":4751,"nodeType":"Return","src":"17634:19:16"}]}},"id":4804,"nodeType":"IfStatement","src":"17521:553:16","trueBody":{"id":4743,"nodeType":"Block","src":"17545:46:16","statements":[{"expression":{"components":[{"hexValue":"38","id":4739,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"17567:3:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_e4b1702d9298fee62dfeccc57d322a463ad55ca201256d01f62b45b2e1c21c10","typeString":"literal_string \"8\""},"value":"8"},{"hexValue":"31342e3235","id":4740,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"17572:7:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_8fe7b983c83186f2bb4fe7874403b14e48744b4c5f28219cbc58c32323190062","typeString":"literal_string \"14.25\""},"value":"14.25"}],"id":4741,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"17566:14:16","typeDescriptions":{"typeIdentifier":"t_tuple$_t_stringliteral_e4b1702d9298fee62dfeccc57d322a463ad55ca201256d01f62b45b2e1c21c10_$_t_stringliteral_8fe7b983c83186f2bb4fe7874403b14e48744b4c5f28219cbc58c32323190062_$","typeString":"tuple(literal_string \"8\",literal_string \"14.25\")"}},"functionReturnParameters":4707,"id":4742,"nodeType":"Return","src":"17559:21:16"}]}},"id":4805,"nodeType":"IfStatement","src":"17446:628:16","trueBody":{"id":4734,"nodeType":"Block","src":"17470:45:16","statements":[{"expression":{"components":[{"hexValue":"38","id":4730,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"17492:3:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_e4b1702d9298fee62dfeccc57d322a463ad55ca201256d01f62b45b2e1c21c10","typeString":"literal_string \"8\""},"value":"8"},{"hexValue":"31302e35","id":4731,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"17497:6:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_da3d464687fba60756c7debf376611beed660b85b1a8cc9153373d2756ff3096","typeString":"literal_string \"10.5\""},"value":"10.5"}],"id":4732,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"17491:13:16","typeDescriptions":{"typeIdentifier":"t_tuple$_t_stringliteral_e4b1702d9298fee62dfeccc57d322a463ad55ca201256d01f62b45b2e1c21c10_$_t_stringliteral_da3d464687fba60756c7debf376611beed660b85b1a8cc9153373d2756ff3096_$","typeString":"tuple(literal_string \"8\",literal_string \"10.5\")"}},"functionReturnParameters":4707,"id":4733,"nodeType":"Return","src":"17484:20:16"}]}},"id":4806,"nodeType":"IfStatement","src":"17373:701:16","trueBody":{"id":4725,"nodeType":"Block","src":"17398:42:16","statements":[{"expression":{"components":[{"hexValue":"38","id":4721,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"17420:3:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_e4b1702d9298fee62dfeccc57d322a463ad55ca201256d01f62b45b2e1c21c10","typeString":"literal_string \"8\""},"value":"8"},{"hexValue":"37","id":4722,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"17425:3:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_52f1a9b320cab38e5da8a8f97989383aab0a49165fc91c737310e4f7e9821021","typeString":"literal_string \"7\""},"value":"7"}],"id":4723,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"17419:10:16","typeDescriptions":{"typeIdentifier":"t_tuple$_t_stringliteral_e4b1702d9298fee62dfeccc57d322a463ad55ca201256d01f62b45b2e1c21c10_$_t_stringliteral_52f1a9b320cab38e5da8a8f97989383aab0a49165fc91c737310e4f7e9821021_$","typeString":"tuple(literal_string \"8\",literal_string \"7\")"}},"functionReturnParameters":4707,"id":4724,"nodeType":"Return","src":"17412:17:16"}]}}]},"id":4808,"implemented":true,"kind":"function","modifiers":[],"name":"rangeLocation","nodeType":"FunctionDefinition","parameters":{"id":4702,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4699,"mutability":"mutable","name":"tickLower","nodeType":"VariableDeclaration","scope":4808,"src":"17222:15:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"},"typeName":{"id":4698,"name":"int24","nodeType":"ElementaryTypeName","src":"17222:5:16","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"visibility":"internal"},{"constant":false,"id":4701,"mutability":"mutable","name":"tickUpper","nodeType":"VariableDeclaration","scope":4808,"src":"17239:15:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"},"typeName":{"id":4700,"name":"int24","nodeType":"ElementaryTypeName","src":"17239:5:16","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"visibility":"internal"}],"src":"17221:34:16"},"returnParameters":{"id":4707,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4704,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","scope":4808,"src":"17279:13:16","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":4703,"name":"string","nodeType":"ElementaryTypeName","src":"17279:6:16","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":4706,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","scope":4808,"src":"17294:13:16","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":4705,"name":"string","nodeType":"ElementaryTypeName","src":"17294:6:16","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"17278:30:16"},"scope":4885,"src":"17199:881:16","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4842,"nodeType":"Block","src":"18197:951:16","statements":[{"condition":{"arguments":[{"id":4818,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4810,"src":"18218:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":4819,"name":"poolAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4812,"src":"18227:11:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":4817,"name":"isRare","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4884,"src":"18211:6:16","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_address_$returns$_t_bool_$","typeString":"function (uint256,address) pure returns (bool)"}},"id":4820,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18211:28:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":4840,"nodeType":"Block","src":"19109:33:16","statements":[{"expression":{"id":4838,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4836,"name":"svg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4815,"src":"19123:3:16","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"","id":4837,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"19129:2:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""},"src":"19123:8:16","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":4839,"nodeType":"ExpressionStatement","src":"19123:8:16"}]},"id":4841,"nodeType":"IfStatement","src":"18207:935:16","trueBody":{"id":4835,"nodeType":"Block","src":"18241:862:16","statements":[{"expression":{"id":4833,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4821,"name":"svg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4815,"src":"18255:3:16","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"hexValue":"3c67207374796c653d227472616e73666f726d3a7472616e736c6174652832323670782c20333932707829223e3c726563742077696474683d223336707822206865696768743d2233367078222072783d22387078222072793d22387078222066696c6c3d226e6f6e6522207374726f6b653d2272676261283235352c3235352c3235352c302e322922202f3e","id":4826,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"18323:143:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_b620537f4b9141f0600bc5c47da368c069fd5940c0d18c49f45f4f60c38c7276","typeString":"literal_string \"<g style=\"transform:translate(226px, 392px)\"><rect width=\"36px\" height=\"36px\" rx=\"8px\" ry=\"8px\" fill=\"none\" stroke=\"rgba(255,255,255,0.2)\" />\""},"value":"<g style=\"transform:translate(226px, 392px)\"><rect width=\"36px\" height=\"36px\" rx=\"8px\" ry=\"8px\" fill=\"none\" stroke=\"rgba(255,255,255,0.2)\" />"},{"hexValue":"3c673e3c70617468207374796c653d227472616e73666f726d3a7472616e736c617465283670782c367078292220643d224d313220304c31322e3635323220392e35363538374c313820312e363037374c31332e373831392031302e323138314c32322e3339323320364c31342e3433343120","id":4827,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"18488:117:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_9146626b6016e55f44ab5e9e5bfcf47636d35086d1ea0e9bce56b7a6f4831ef4","typeString":"literal_string \"<g><path style=\"transform:translate(6px,6px)\" d=\"M12 0L12.6522 9.56587L18 1.6077L13.7819 10.2181L22.3923 6L14.4341 \""},"value":"<g><path style=\"transform:translate(6px,6px)\" d=\"M12 0L12.6522 9.56587L18 1.6077L13.7819 10.2181L22.3923 6L14.4341 "},{"hexValue":"31312e333437384c32342031324c31342e343334312031322e363532324c32322e333932332031384c31332e373831392031332e373831394c31382032322e333932334c31322e363532322031342e343334314c31322032344c31312e333437382031342e343334314c362032322e3339","id":4828,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"18627:115:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_80e2be066469ac86e096e4a497c1f8a9fc0d1b11356ae8a905f38331737d0215","typeString":"literal_string \"11.3478L24 12L14.4341 12.6522L22.3923 18L13.7819 13.7819L18 22.3923L12.6522 14.4341L12 24L11.3478 14.4341L6 22.39\""},"value":"11.3478L24 12L14.4341 12.6522L22.3923 18L13.7819 13.7819L18 22.3923L12.6522 14.4341L12 24L11.3478 14.4341L6 22.39"},{"hexValue":"32334c31302e323138312031332e373831394c312e363037372031384c392e35363538372031322e363532324c302031324c392e35363538372031312e333437384c312e3630373720364c31302e323138312031302e323138314c3620312e363037374c31312e3334373820392e35363538374c313220305a222066696c6c3d22776869746522202f3e","id":4829,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"18764:140:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_b5bc46fc2ed1d11f843f24feabdc206cab85902b15b95b355214f44b7cfde8e7","typeString":"literal_string \"23L10.2181 13.7819L1.6077 18L9.56587 12.6522L0 12L9.56587 11.3478L1.6077 6L10.2181 10.2181L6 1.6077L11.3478 9.56587L12 0Z\" fill=\"white\" />\""},"value":"23L10.2181 13.7819L1.6077 18L9.56587 12.6522L0 12L9.56587 11.3478L1.6077 6L10.2181 10.2181L6 1.6077L11.3478 9.56587L12 0Z\" fill=\"white\" />"},{"hexValue":"3c616e696d6174655472616e73666f726d206174747269627574654e616d653d227472616e73666f726d2220747970653d22726f74617465222066726f6d3d22302031382031382220746f3d2233363020313820313822206475723d223130732220726570656174436f756e743d22696e646566696e697465222f3e3c2f673e3c2f673e","id":4830,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"18926:134:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_c4a75554270cae0d3a87478224f34b210600c80765754e633311ca3866647bf9","typeString":"literal_string \"<animateTransform attributeName=\"transform\" type=\"rotate\" from=\"0 18 18\" to=\"360 18 18\" dur=\"10s\" repeatCount=\"indefinite\"/></g></g>\""},"value":"<animateTransform attributeName=\"transform\" type=\"rotate\" from=\"0 18 18\" to=\"360 18 18\" dur=\"10s\" repeatCount=\"indefinite\"/></g></g>"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_b620537f4b9141f0600bc5c47da368c069fd5940c0d18c49f45f4f60c38c7276","typeString":"literal_string \"<g style=\"transform:translate(226px, 392px)\"><rect width=\"36px\" height=\"36px\" rx=\"8px\" ry=\"8px\" fill=\"none\" stroke=\"rgba(255,255,255,0.2)\" />\""},{"typeIdentifier":"t_stringliteral_9146626b6016e55f44ab5e9e5bfcf47636d35086d1ea0e9bce56b7a6f4831ef4","typeString":"literal_string \"<g><path style=\"transform:translate(6px,6px)\" d=\"M12 0L12.6522 9.56587L18 1.6077L13.7819 10.2181L22.3923 6L14.4341 \""},{"typeIdentifier":"t_stringliteral_80e2be066469ac86e096e4a497c1f8a9fc0d1b11356ae8a905f38331737d0215","typeString":"literal_string \"11.3478L24 12L14.4341 12.6522L22.3923 18L13.7819 13.7819L18 22.3923L12.6522 14.4341L12 24L11.3478 14.4341L6 22.39\""},{"typeIdentifier":"t_stringliteral_b5bc46fc2ed1d11f843f24feabdc206cab85902b15b95b355214f44b7cfde8e7","typeString":"literal_string \"23L10.2181 13.7819L1.6077 18L9.56587 12.6522L0 12L9.56587 11.3478L1.6077 6L10.2181 10.2181L6 1.6077L11.3478 9.56587L12 0Z\" fill=\"white\" />\""},{"typeIdentifier":"t_stringliteral_c4a75554270cae0d3a87478224f34b210600c80765754e633311ca3866647bf9","typeString":"literal_string \"<animateTransform attributeName=\"transform\" type=\"rotate\" from=\"0 18 18\" to=\"360 18 18\" dur=\"10s\" repeatCount=\"indefinite\"/></g></g>\""}],"expression":{"id":4824,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"18285:3:16","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":4825,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodePacked","nodeType":"MemberAccess","src":"18285:16:16","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":4831,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18285:793:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":4823,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"18261:6:16","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":4822,"name":"string","nodeType":"ElementaryTypeName","src":"18261:6:16","typeDescriptions":{}}},"id":4832,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18261:831:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"18255:837:16","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":4834,"nodeType":"ExpressionStatement","src":"18255:837:16"}]}}]},"id":4843,"implemented":true,"kind":"function","modifiers":[],"name":"generateSVGRareSparkle","nodeType":"FunctionDefinition","parameters":{"id":4813,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4810,"mutability":"mutable","name":"tokenId","nodeType":"VariableDeclaration","scope":4843,"src":"18118:15:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4809,"name":"uint256","nodeType":"ElementaryTypeName","src":"18118:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4812,"mutability":"mutable","name":"poolAddress","nodeType":"VariableDeclaration","scope":4843,"src":"18135:19:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4811,"name":"address","nodeType":"ElementaryTypeName","src":"18135:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"18117:38:16"},"returnParameters":{"id":4816,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4815,"mutability":"mutable","name":"svg","nodeType":"VariableDeclaration","scope":4843,"src":"18178:17:16","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":4814,"name":"string","nodeType":"ElementaryTypeName","src":"18178:6:16","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"18177:19:16"},"scope":4885,"src":"18086:1062:16","stateMutability":"pure","virtual":false,"visibility":"private"},{"body":{"id":4883,"nodeType":"Block","src":"19237:173:16","statements":[{"assignments":[4853],"declarations":[{"constant":false,"id":4853,"mutability":"mutable","name":"h","nodeType":"VariableDeclaration","scope":4883,"src":"19247:9:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4852,"name":"bytes32","nodeType":"ElementaryTypeName","src":"19247:7:16","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":4861,"initialValue":{"arguments":[{"arguments":[{"id":4857,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4845,"src":"19286:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":4858,"name":"poolAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4847,"src":"19295:11:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":4855,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"19269:3:16","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":4856,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodePacked","nodeType":"MemberAccess","src":"19269:16:16","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":4859,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"19269:38:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":4854,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"19259:9:16","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":4860,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"19259:49:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"19247:61:16"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4881,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":4864,"name":"h","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4853,"src":"19333:1:16","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":4863,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"19325:7:16","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":4862,"name":"uint256","nodeType":"ElementaryTypeName","src":"19325:7:16","typeDescriptions":{}}},"id":4865,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"19325:10:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4880,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":4868,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"19343:7:16","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":4867,"name":"uint256","nodeType":"ElementaryTypeName","src":"19343:7:16","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"id":4866,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"19338:4:16","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":4869,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"19338:13:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint256","typeString":"type(uint256)"}},"id":4870,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"max","nodeType":"MemberAccess","src":"19338:17:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":4878,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":4871,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19359:1:16","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":4877,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":4874,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4845,"src":"19390:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":4872,"name":"BitMath","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":726,"src":"19363:7:16","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_BitMath_$726_$","typeString":"type(library BitMath)"}},"id":4873,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"mostSignificantBit","nodeType":"MemberAccess","referencedDeclaration":564,"src":"19363:26:16","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint8_$","typeString":"function (uint256) pure returns (uint8)"}},"id":4875,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"19363:35:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"32","id":4876,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19401:1:16","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"19363:39:16","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"19359:43:16","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"id":4879,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"19358:45:16","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"19338:65:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"19325:78:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":4851,"id":4882,"nodeType":"Return","src":"19318:85:16"}]},"id":4884,"implemented":true,"kind":"function","modifiers":[],"name":"isRare","nodeType":"FunctionDefinition","parameters":{"id":4848,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4845,"mutability":"mutable","name":"tokenId","nodeType":"VariableDeclaration","scope":4884,"src":"19170:15:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4844,"name":"uint256","nodeType":"ElementaryTypeName","src":"19170:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4847,"mutability":"mutable","name":"poolAddress","nodeType":"VariableDeclaration","scope":4884,"src":"19187:19:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4846,"name":"address","nodeType":"ElementaryTypeName","src":"19187:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"19169:38:16"},"returnParameters":{"id":4851,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4850,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","scope":4884,"src":"19231:4:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4849,"name":"bool","nodeType":"ElementaryTypeName","src":"19231:4:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"19230:6:16"},"scope":4885,"src":"19154:256:16","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":4886,"src":"376:19036:16"}],"src":"45:19368:16"},"id":16},"contracts/test/NFTDescriptorTest.sol":{"ast":{"absolutePath":"contracts/test/NFTDescriptorTest.sol","exportedSymbols":{"Base64":[2105],"BitMath":[726],"FullMath":[899],"HexStrings":[2240],"IAstraCLPool":[27],"IAstraCLPoolActions":[123],"IAstraCLPoolDerivedState":[154],"IAstraCLPoolEvents":[273],"IAstraCLPoolImmutables":[313],"IAstraCLPoolOwnerActions":[339],"IAstraCLPoolState":[447],"NFTDescriptor":[3947],"NFTDescriptorTest":[5087],"NFTSVG":[4885],"SafeMath":[1789],"SignedSafeMath":[1968],"Strings":[2055],"TickMath":[1434]},"id":5088,"license":"UNLICENSED","nodeType":"SourceUnit","nodes":[{"id":4887,"literals":["solidity","=","0.7",".6"],"nodeType":"PragmaDirective","src":"39:23:17"},{"id":4888,"literals":["abicoder","v2"],"nodeType":"PragmaDirective","src":"63:19:17"},{"absolutePath":"contracts/libraries/NFTDescriptor.sol","file":"../libraries/NFTDescriptor.sol","id":4889,"nodeType":"ImportDirective","scope":5088,"sourceUnit":3948,"src":"84:40:17","symbolAliases":[],"unitAlias":""},{"absolutePath":"contracts/libraries/NFTSVG.sol","file":"../libraries/NFTSVG.sol","id":4890,"nodeType":"ImportDirective","scope":5088,"sourceUnit":4886,"src":"125:33:17","symbolAliases":[],"unitAlias":""},{"absolutePath":"contracts/libraries/HexStrings.sol","file":"../libraries/HexStrings.sol","id":4891,"nodeType":"ImportDirective","scope":5088,"sourceUnit":2241,"src":"159:37:17","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[],"contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":5087,"linearizedBaseContracts":[5087],"name":"NFTDescriptorTest","nodeType":"ContractDefinition","nodes":[{"id":4894,"libraryName":{"id":4892,"name":"HexStrings","nodeType":"UserDefinedTypeName","referencedDeclaration":2240,"src":"237:10:17","typeDescriptions":{"typeIdentifier":"t_contract$_HexStrings_$2240","typeString":"library HexStrings"}},"nodeType":"UsingForDirective","src":"231:29:17","typeName":{"id":4893,"name":"uint256","nodeType":"ElementaryTypeName","src":"252:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},{"body":{"id":4906,"nodeType":"Block","src":"398:63:17","statements":[{"expression":{"arguments":[{"id":4903,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4896,"src":"447:6:17","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructTokenURIParams_$2306_calldata_ptr","typeString":"struct NFTDescriptor.ConstructTokenURIParams calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ConstructTokenURIParams_$2306_calldata_ptr","typeString":"struct NFTDescriptor.ConstructTokenURIParams calldata"}],"expression":{"id":4901,"name":"NFTDescriptor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3947,"src":"415:13:17","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_NFTDescriptor_$3947_$","typeString":"type(library NFTDescriptor)"}},"id":4902,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"constructTokenURI","nodeType":"MemberAccess","referencedDeclaration":2404,"src":"415:31:17","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_ConstructTokenURIParams_$2306_memory_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (struct NFTDescriptor.ConstructTokenURIParams memory) pure returns (string memory)"}},"id":4904,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"415:39:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":4900,"id":4905,"nodeType":"Return","src":"408:46:17"}]},"functionSelector":"f93a7911","id":4907,"implemented":true,"kind":"function","modifiers":[],"name":"constructTokenURI","nodeType":"FunctionDefinition","parameters":{"id":4897,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4896,"mutability":"mutable","name":"params","nodeType":"VariableDeclaration","scope":4907,"src":"302:53:17","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructTokenURIParams_$2306_calldata_ptr","typeString":"struct NFTDescriptor.ConstructTokenURIParams"},"typeName":{"id":4895,"name":"NFTDescriptor.ConstructTokenURIParams","nodeType":"UserDefinedTypeName","referencedDeclaration":2306,"src":"302:37:17","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructTokenURIParams_$2306_storage_ptr","typeString":"struct NFTDescriptor.ConstructTokenURIParams"}},"visibility":"internal"}],"src":"292:69:17"},"returnParameters":{"id":4900,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4899,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","scope":4907,"src":"383:13:17","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":4898,"name":"string","nodeType":"ElementaryTypeName","src":"383:6:17","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"382:15:17"},"scope":5087,"src":"266:195:17","stateMutability":"pure","virtual":false,"visibility":"public"},{"body":{"id":4930,"nodeType":"Block","src":"605:133:17","statements":[{"assignments":[4915],"declarations":[{"constant":false,"id":4915,"mutability":"mutable","name":"gasBefore","nodeType":"VariableDeclaration","scope":4930,"src":"615:17:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4914,"name":"uint256","nodeType":"ElementaryTypeName","src":"615:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4918,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":4916,"name":"gasleft","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-7,"src":"635:7:17","typeDescriptions":{"typeIdentifier":"t_function_gasleft_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":4917,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"635:9:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"615:29:17"},{"expression":{"arguments":[{"id":4922,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4909,"src":"686:6:17","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructTokenURIParams_$2306_calldata_ptr","typeString":"struct NFTDescriptor.ConstructTokenURIParams calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ConstructTokenURIParams_$2306_calldata_ptr","typeString":"struct NFTDescriptor.ConstructTokenURIParams calldata"}],"expression":{"id":4919,"name":"NFTDescriptor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3947,"src":"654:13:17","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_NFTDescriptor_$3947_$","typeString":"type(library NFTDescriptor)"}},"id":4921,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"constructTokenURI","nodeType":"MemberAccess","referencedDeclaration":2404,"src":"654:31:17","typeDescriptions":{"typeIdentifier":"t_function_delegatecall_pure$_t_struct$_ConstructTokenURIParams_$2306_memory_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (struct NFTDescriptor.ConstructTokenURIParams memory) pure returns (string memory)"}},"id":4923,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"654:39:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"id":4924,"nodeType":"ExpressionStatement","src":"654:39:17"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4928,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4925,"name":"gasBefore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4915,"src":"710:9:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":4926,"name":"gasleft","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-7,"src":"722:7:17","typeDescriptions":{"typeIdentifier":"t_function_gasleft_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":4927,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"722:9:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"710:21:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":4913,"id":4929,"nodeType":"Return","src":"703:28:17"}]},"functionSelector":"854924ab","id":4931,"implemented":true,"kind":"function","modifiers":[],"name":"getGasCostOfConstructTokenURI","nodeType":"FunctionDefinition","parameters":{"id":4910,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4909,"mutability":"mutable","name":"params","nodeType":"VariableDeclaration","scope":4931,"src":"515:53:17","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructTokenURIParams_$2306_calldata_ptr","typeString":"struct NFTDescriptor.ConstructTokenURIParams"},"typeName":{"id":4908,"name":"NFTDescriptor.ConstructTokenURIParams","nodeType":"UserDefinedTypeName","referencedDeclaration":2306,"src":"515:37:17","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructTokenURIParams_$2306_storage_ptr","typeString":"struct NFTDescriptor.ConstructTokenURIParams"}},"visibility":"internal"}],"src":"505:69:17"},"returnParameters":{"id":4913,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4912,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","scope":4931,"src":"596:7:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4911,"name":"uint256","nodeType":"ElementaryTypeName","src":"596:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"595:9:17"},"scope":5087,"src":"467:271:17","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":4955,"nodeType":"Block","src":"946:119:17","statements":[{"expression":{"arguments":[{"id":4948,"name":"tick","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4933,"src":"997:4:17","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},{"id":4949,"name":"tickSpacing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4935,"src":"1003:11:17","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},{"id":4950,"name":"token0Decimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4937,"src":"1016:14:17","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":4951,"name":"token1Decimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4939,"src":"1032:14:17","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":4952,"name":"flipRatio","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4941,"src":"1048:9:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int24","typeString":"int24"},{"typeIdentifier":"t_int24","typeString":"int24"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":4946,"name":"NFTDescriptor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3947,"src":"963:13:17","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_NFTDescriptor_$3947_$","typeString":"type(library NFTDescriptor)"}},"id":4947,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"tickToDecimalString","nodeType":"MemberAccess","referencedDeclaration":2872,"src":"963:33:17","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int24_$_t_int24_$_t_uint8_$_t_uint8_$_t_bool_$returns$_t_string_memory_ptr_$","typeString":"function (int24,int24,uint8,uint8,bool) pure returns (string memory)"}},"id":4953,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"963:95:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":4945,"id":4954,"nodeType":"Return","src":"956:102:17"}]},"functionSelector":"9288c218","id":4956,"implemented":true,"kind":"function","modifiers":[],"name":"tickToDecimalString","nodeType":"FunctionDefinition","parameters":{"id":4942,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4933,"mutability":"mutable","name":"tick","nodeType":"VariableDeclaration","scope":4956,"src":"782:10:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"},"typeName":{"id":4932,"name":"int24","nodeType":"ElementaryTypeName","src":"782:5:17","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"visibility":"internal"},{"constant":false,"id":4935,"mutability":"mutable","name":"tickSpacing","nodeType":"VariableDeclaration","scope":4956,"src":"802:17:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"},"typeName":{"id":4934,"name":"int24","nodeType":"ElementaryTypeName","src":"802:5:17","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"visibility":"internal"},{"constant":false,"id":4937,"mutability":"mutable","name":"token0Decimals","nodeType":"VariableDeclaration","scope":4956,"src":"829:20:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":4936,"name":"uint8","nodeType":"ElementaryTypeName","src":"829:5:17","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":4939,"mutability":"mutable","name":"token1Decimals","nodeType":"VariableDeclaration","scope":4956,"src":"859:20:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":4938,"name":"uint8","nodeType":"ElementaryTypeName","src":"859:5:17","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":4941,"mutability":"mutable","name":"flipRatio","nodeType":"VariableDeclaration","scope":4956,"src":"889:14:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4940,"name":"bool","nodeType":"ElementaryTypeName","src":"889:4:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"772:137:17"},"returnParameters":{"id":4945,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4944,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","scope":4956,"src":"931:13:17","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":4943,"name":"string","nodeType":"ElementaryTypeName","src":"931:6:17","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"930:15:17"},"scope":5087,"src":"744:321:17","stateMutability":"pure","virtual":false,"visibility":"public"},{"body":{"id":4974,"nodeType":"Block","src":"1238:109:17","statements":[{"expression":{"arguments":[{"id":4969,"name":"sqrtRatioX96","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4958,"src":"1295:12:17","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},{"id":4970,"name":"token0Decimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4960,"src":"1309:14:17","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":4971,"name":"token1Decimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4962,"src":"1325:14:17","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"expression":{"id":4967,"name":"NFTDescriptor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3947,"src":"1255:13:17","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_NFTDescriptor_$3947_$","typeString":"type(library NFTDescriptor)"}},"id":4968,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"fixedPointToDecimalString","nodeType":"MemberAccess","referencedDeclaration":3342,"src":"1255:39:17","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint160_$_t_uint8_$_t_uint8_$returns$_t_string_memory_ptr_$","typeString":"function (uint160,uint8,uint8) pure returns (string memory)"}},"id":4972,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1255:85:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":4966,"id":4973,"nodeType":"Return","src":"1248:92:17"}]},"functionSelector":"d5c0bdd8","id":4975,"implemented":true,"kind":"function","modifiers":[],"name":"fixedPointToDecimalString","nodeType":"FunctionDefinition","parameters":{"id":4963,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4958,"mutability":"mutable","name":"sqrtRatioX96","nodeType":"VariableDeclaration","scope":4975,"src":"1115:20:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"},"typeName":{"id":4957,"name":"uint160","nodeType":"ElementaryTypeName","src":"1115:7:17","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},"visibility":"internal"},{"constant":false,"id":4960,"mutability":"mutable","name":"token0Decimals","nodeType":"VariableDeclaration","scope":4975,"src":"1145:20:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":4959,"name":"uint8","nodeType":"ElementaryTypeName","src":"1145:5:17","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":4962,"mutability":"mutable","name":"token1Decimals","nodeType":"VariableDeclaration","scope":4975,"src":"1175:20:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":4961,"name":"uint8","nodeType":"ElementaryTypeName","src":"1175:5:17","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"1105:96:17"},"returnParameters":{"id":4966,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4965,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","scope":4975,"src":"1223:13:17","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":4964,"name":"string","nodeType":"ElementaryTypeName","src":"1223:6:17","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1222:15:17"},"scope":5087,"src":"1071:276:17","stateMutability":"pure","virtual":false,"visibility":"public"},{"body":{"id":4987,"nodeType":"Block","src":"1429:61:17","statements":[{"expression":{"arguments":[{"id":4984,"name":"fee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4977,"src":"1479:3:17","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint24","typeString":"uint24"}],"expression":{"id":4982,"name":"NFTDescriptor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3947,"src":"1446:13:17","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_NFTDescriptor_$3947_$","typeString":"type(library NFTDescriptor)"}},"id":4983,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"feeToPercentString","nodeType":"MemberAccess","referencedDeclaration":3614,"src":"1446:32:17","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint24_$returns$_t_string_memory_ptr_$","typeString":"function (uint24) pure returns (string memory)"}},"id":4985,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1446:37:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":4981,"id":4986,"nodeType":"Return","src":"1439:44:17"}]},"functionSelector":"ea4d3bcd","id":4988,"implemented":true,"kind":"function","modifiers":[],"name":"feeToPercentString","nodeType":"FunctionDefinition","parameters":{"id":4978,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4977,"mutability":"mutable","name":"fee","nodeType":"VariableDeclaration","scope":4988,"src":"1381:10:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"},"typeName":{"id":4976,"name":"uint24","nodeType":"ElementaryTypeName","src":"1381:6:17","typeDescriptions":{"typeIdentifier":"t_uint24","typeString":"uint24"}},"visibility":"internal"}],"src":"1380:12:17"},"returnParameters":{"id":4981,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4980,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","scope":4988,"src":"1414:13:17","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":4979,"name":"string","nodeType":"ElementaryTypeName","src":"1414:6:17","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1413:15:17"},"scope":5087,"src":"1353:137:17","stateMutability":"pure","virtual":false,"visibility":"public"},{"body":{"id":5000,"nodeType":"Block","src":"1575:63:17","statements":[{"expression":{"arguments":[{"id":4997,"name":"_address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4990,"src":"1622:8:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":4995,"name":"NFTDescriptor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3947,"src":"1592:13:17","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_NFTDescriptor_$3947_$","typeString":"type(library NFTDescriptor)"}},"id":4996,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"addressToString","nodeType":"MemberAccess","referencedDeclaration":3631,"src":"1592:29:17","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$_t_string_memory_ptr_$","typeString":"function (address) pure returns (string memory)"}},"id":4998,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1592:39:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":4994,"id":4999,"nodeType":"Return","src":"1585:46:17"}]},"functionSelector":"5e57966d","id":5001,"implemented":true,"kind":"function","modifiers":[],"name":"addressToString","nodeType":"FunctionDefinition","parameters":{"id":4991,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4990,"mutability":"mutable","name":"_address","nodeType":"VariableDeclaration","scope":5001,"src":"1521:16:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4989,"name":"address","nodeType":"ElementaryTypeName","src":"1521:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1520:18:17"},"returnParameters":{"id":4994,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4993,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","scope":5001,"src":"1560:13:17","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":4992,"name":"string","nodeType":"ElementaryTypeName","src":"1560:6:17","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1559:15:17"},"scope":5087,"src":"1496:142:17","stateMutability":"pure","virtual":false,"visibility":"public"},{"body":{"id":5013,"nodeType":"Block","src":"1759:62:17","statements":[{"expression":{"arguments":[{"id":5010,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5003,"src":"1807:6:17","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructTokenURIParams_$2306_memory_ptr","typeString":"struct NFTDescriptor.ConstructTokenURIParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ConstructTokenURIParams_$2306_memory_ptr","typeString":"struct NFTDescriptor.ConstructTokenURIParams memory"}],"expression":{"id":5008,"name":"NFTDescriptor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3947,"src":"1776:13:17","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_NFTDescriptor_$3947_$","typeString":"type(library NFTDescriptor)"}},"id":5009,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"generateSVGImage","nodeType":"MemberAccess","referencedDeclaration":3814,"src":"1776:30:17","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_ConstructTokenURIParams_$2306_memory_ptr_$returns$_t_string_memory_ptr_$","typeString":"function (struct NFTDescriptor.ConstructTokenURIParams memory) pure returns (string memory)"}},"id":5011,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1776:38:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":5007,"id":5012,"nodeType":"Return","src":"1769:45:17"}]},"functionSelector":"e1649fcf","id":5014,"implemented":true,"kind":"function","modifiers":[],"name":"generateSVGImage","nodeType":"FunctionDefinition","parameters":{"id":5004,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5003,"mutability":"mutable","name":"params","nodeType":"VariableDeclaration","scope":5014,"src":"1670:51:17","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructTokenURIParams_$2306_memory_ptr","typeString":"struct NFTDescriptor.ConstructTokenURIParams"},"typeName":{"id":5002,"name":"NFTDescriptor.ConstructTokenURIParams","nodeType":"UserDefinedTypeName","referencedDeclaration":2306,"src":"1670:37:17","typeDescriptions":{"typeIdentifier":"t_struct$_ConstructTokenURIParams_$2306_storage_ptr","typeString":"struct NFTDescriptor.ConstructTokenURIParams"}},"visibility":"internal"}],"src":"1669:53:17"},"returnParameters":{"id":5007,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5006,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","scope":5014,"src":"1744:13:17","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5005,"name":"string","nodeType":"ElementaryTypeName","src":"1744:6:17","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1743:15:17"},"scope":5087,"src":"1644:177:17","stateMutability":"pure","virtual":false,"visibility":"public"},{"body":{"id":5032,"nodeType":"Block","src":"1919:77:17","statements":[{"expression":{"arguments":[{"arguments":[{"id":5027,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5016,"src":"1974:5:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":5026,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1966:7:17","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":5025,"name":"uint256","nodeType":"ElementaryTypeName","src":"1966:7:17","typeDescriptions":{}}},"id":5028,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1966:14:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":5029,"name":"offset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5018,"src":"1982:6:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":5023,"name":"NFTDescriptor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3947,"src":"1936:13:17","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_NFTDescriptor_$3947_$","typeString":"type(library NFTDescriptor)"}},"id":5024,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"tokenToColorHex","nodeType":"MemberAccess","referencedDeclaration":3904,"src":"1936:29:17","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256,uint256) pure returns (string memory)"}},"id":5030,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1936:53:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":5022,"id":5031,"nodeType":"Return","src":"1929:60:17"}]},"functionSelector":"3a0cdee2","id":5033,"implemented":true,"kind":"function","modifiers":[],"name":"tokenToColorHex","nodeType":"FunctionDefinition","parameters":{"id":5019,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5016,"mutability":"mutable","name":"token","nodeType":"VariableDeclaration","scope":5033,"src":"1852:13:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5015,"name":"address","nodeType":"ElementaryTypeName","src":"1852:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5018,"mutability":"mutable","name":"offset","nodeType":"VariableDeclaration","scope":5033,"src":"1867:14:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5017,"name":"uint256","nodeType":"ElementaryTypeName","src":"1867:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1851:31:17"},"returnParameters":{"id":5022,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5021,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","scope":5033,"src":"1904:13:17","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5020,"name":"string","nodeType":"ElementaryTypeName","src":"1904:6:17","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1903:15:17"},"scope":5087,"src":"1827:169:17","stateMutability":"pure","virtual":false,"visibility":"public"},{"body":{"id":5051,"nodeType":"Block","src":"2086:75:17","statements":[{"expression":{"arguments":[{"arguments":[{"id":5046,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5035,"src":"2139:5:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":5045,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2131:7:17","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":5044,"name":"uint256","nodeType":"ElementaryTypeName","src":"2131:7:17","typeDescriptions":{}}},"id":5047,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2131:14:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":5048,"name":"offset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5037,"src":"2147:6:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":5042,"name":"NFTDescriptor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3947,"src":"2103:13:17","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_NFTDescriptor_$3947_$","typeString":"type(library NFTDescriptor)"}},"id":5043,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sliceTokenHex","nodeType":"MemberAccess","referencedDeclaration":3946,"src":"2103:27:17","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":5049,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2103:51:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":5041,"id":5050,"nodeType":"Return","src":"2096:58:17"}]},"functionSelector":"d6986d45","id":5052,"implemented":true,"kind":"function","modifiers":[],"name":"sliceTokenHex","nodeType":"FunctionDefinition","parameters":{"id":5038,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5035,"mutability":"mutable","name":"token","nodeType":"VariableDeclaration","scope":5052,"src":"2025:13:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5034,"name":"address","nodeType":"ElementaryTypeName","src":"2025:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5037,"mutability":"mutable","name":"offset","nodeType":"VariableDeclaration","scope":5052,"src":"2040:14:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5036,"name":"uint256","nodeType":"ElementaryTypeName","src":"2040:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2024:31:17"},"returnParameters":{"id":5041,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5040,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","scope":5052,"src":"2077:7:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5039,"name":"uint256","nodeType":"ElementaryTypeName","src":"2077:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2076:9:17"},"scope":5087,"src":"2002:159:17","stateMutability":"pure","virtual":false,"visibility":"public"},{"body":{"id":5069,"nodeType":"Block","src":"2275:66:17","statements":[{"expression":{"arguments":[{"id":5065,"name":"tickLower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5054,"src":"2313:9:17","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},{"id":5066,"name":"tickUpper","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5056,"src":"2324:9:17","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int24","typeString":"int24"},{"typeIdentifier":"t_int24","typeString":"int24"}],"expression":{"id":5063,"name":"NFTSVG","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4885,"src":"2292:6:17","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_NFTSVG_$4885_$","typeString":"type(library NFTSVG)"}},"id":5064,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"rangeLocation","nodeType":"MemberAccess","referencedDeclaration":4808,"src":"2292:20:17","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int24_$_t_int24_$returns$_t_string_memory_ptr_$_t_string_memory_ptr_$","typeString":"function (int24,int24) pure returns (string memory,string memory)"}},"id":5067,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2292:42:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_string_memory_ptr_$_t_string_memory_ptr_$","typeString":"tuple(string memory,string memory)"}},"functionReturnParameters":5062,"id":5068,"nodeType":"Return","src":"2285:49:17"}]},"functionSelector":"2fa2af10","id":5070,"implemented":true,"kind":"function","modifiers":[],"name":"rangeLocation","nodeType":"FunctionDefinition","parameters":{"id":5057,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5054,"mutability":"mutable","name":"tickLower","nodeType":"VariableDeclaration","scope":5070,"src":"2190:15:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"},"typeName":{"id":5053,"name":"int24","nodeType":"ElementaryTypeName","src":"2190:5:17","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"visibility":"internal"},{"constant":false,"id":5056,"mutability":"mutable","name":"tickUpper","nodeType":"VariableDeclaration","scope":5070,"src":"2207:15:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"},"typeName":{"id":5055,"name":"int24","nodeType":"ElementaryTypeName","src":"2207:5:17","typeDescriptions":{"typeIdentifier":"t_int24","typeString":"int24"}},"visibility":"internal"}],"src":"2189:34:17"},"returnParameters":{"id":5062,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5059,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","scope":5070,"src":"2245:13:17","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5058,"name":"string","nodeType":"ElementaryTypeName","src":"2245:6:17","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":5061,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","scope":5070,"src":"2260:13:17","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5060,"name":"string","nodeType":"ElementaryTypeName","src":"2260:6:17","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2244:30:17"},"scope":5087,"src":"2167:174:17","stateMutability":"pure","virtual":false,"visibility":"public"},{"body":{"id":5085,"nodeType":"Block","src":"2428:59:17","statements":[{"expression":{"arguments":[{"id":5081,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5072,"src":"2459:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":5082,"name":"poolAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5074,"src":"2468:11:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":5079,"name":"NFTSVG","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4885,"src":"2445:6:17","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_NFTSVG_$4885_$","typeString":"type(library NFTSVG)"}},"id":5080,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"isRare","nodeType":"MemberAccess","referencedDeclaration":4884,"src":"2445:13:17","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_address_$returns$_t_bool_$","typeString":"function (uint256,address) pure returns (bool)"}},"id":5083,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2445:35:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":5078,"id":5084,"nodeType":"Return","src":"2438:42:17"}]},"functionSelector":"e7386906","id":5086,"implemented":true,"kind":"function","modifiers":[],"name":"isRare","nodeType":"FunctionDefinition","parameters":{"id":5075,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5072,"mutability":"mutable","name":"tokenId","nodeType":"VariableDeclaration","scope":5086,"src":"2363:15:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5071,"name":"uint256","nodeType":"ElementaryTypeName","src":"2363:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5074,"mutability":"mutable","name":"poolAddress","nodeType":"VariableDeclaration","scope":5086,"src":"2380:19:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5073,"name":"address","nodeType":"ElementaryTypeName","src":"2380:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2362:38:17"},"returnParameters":{"id":5078,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5077,"mutability":"mutable","name":"","nodeType":"VariableDeclaration","scope":5086,"src":"2422:4:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5076,"name":"bool","nodeType":"ElementaryTypeName","src":"2422:4:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2421:6:17"},"scope":5087,"src":"2347:140:17","stateMutability":"pure","virtual":false,"visibility":"public"}],"scope":5088,"src":"198:2291:17"}],"src":"39:2451:17"},"id":17}},"contracts":{"@airdao/astra-cl-core/contracts/interfaces/IAstraCLPool.sol":{"IAstraCLPool":{"abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"int24","name":"tickLower","type":"int24"},{"indexed":true,"internalType":"int24","name":"tickUpper","type":"int24"},{"indexed":false,"internalType":"uint128","name":"amount","type":"uint128"},{"indexed":false,"internalType":"uint256","name":"amount0","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount1","type":"uint256"}],"name":"Burn","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":false,"internalType":"address","name":"recipient","type":"address"},{"indexed":true,"internalType":"int24","name":"tickLower","type":"int24"},{"indexed":true,"internalType":"int24","name":"tickUpper","type":"int24"},{"indexed":false,"internalType":"uint128","name":"amount0","type":"uint128"},{"indexed":false,"internalType":"uint128","name":"amount1","type":"uint128"}],"name":"Collect","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":true,"internalType":"address","name":"recipient","type":"address"},{"indexed":false,"internalType":"uint128","name":"amount0","type":"uint128"},{"indexed":false,"internalType":"uint128","name":"amount1","type":"uint128"}],"name":"CollectProtocol","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":true,"internalType":"address","name":"recipient","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount0","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount1","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"paid0","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"paid1","type":"uint256"}],"name":"Flash","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"observationCardinalityNextOld","type":"uint16"},{"indexed":false,"internalType":"uint16","name":"observationCardinalityNextNew","type":"uint16"}],"name":"IncreaseObservationCardinalityNext","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint160","name":"sqrtPriceX96","type":"uint160"},{"indexed":false,"internalType":"int24","name":"tick","type":"int24"}],"name":"Initialize","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"sender","type":"address"},{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"int24","name":"tickLower","type":"int24"},{"indexed":true,"internalType":"int24","name":"tickUpper","type":"int24"},{"indexed":false,"internalType":"uint128","name":"amount","type":"uint128"},{"indexed":false,"internalType":"uint256","name":"amount0","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount1","type":"uint256"}],"name":"Mint","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"feeProtocol0Old","type":"uint8"},{"indexed":false,"internalType":"uint8","name":"feeProtocol1Old","type":"uint8"},{"indexed":false,"internalType":"uint8","name":"feeProtocol0New","type":"uint8"},{"indexed":false,"internalType":"uint8","name":"feeProtocol1New","type":"uint8"}],"name":"SetFeeProtocol","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":true,"internalType":"address","name":"recipient","type":"address"},{"indexed":false,"internalType":"int256","name":"amount0","type":"int256"},{"indexed":false,"internalType":"int256","name":"amount1","type":"int256"},{"indexed":false,"internalType":"uint160","name":"sqrtPriceX96","type":"uint160"},{"indexed":false,"internalType":"uint128","name":"liquidity","type":"uint128"},{"indexed":false,"internalType":"int24","name":"tick","type":"int24"}],"name":"Swap","type":"event"},{"inputs":[{"internalType":"int24","name":"tickLower","type":"int24"},{"internalType":"int24","name":"tickUpper","type":"int24"},{"internalType":"uint128","name":"amount","type":"uint128"}],"name":"burn","outputs":[{"internalType":"uint256","name":"amount0","type":"uint256"},{"internalType":"uint256","name":"amount1","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"int24","name":"tickLower","type":"int24"},{"internalType":"int24","name":"tickUpper","type":"int24"},{"internalType":"uint128","name":"amount0Requested","type":"uint128"},{"internalType":"uint128","name":"amount1Requested","type":"uint128"}],"name":"collect","outputs":[{"internalType":"uint128","name":"amount0","type":"uint128"},{"internalType":"uint128","name":"amount1","type":"uint128"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint128","name":"amount0Requested","type":"uint128"},{"internalType":"uint128","name":"amount1Requested","type":"uint128"}],"name":"collectProtocol","outputs":[{"internalType":"uint128","name":"amount0","type":"uint128"},{"internalType":"uint128","name":"amount1","type":"uint128"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"factory","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"fee","outputs":[{"internalType":"uint24","name":"","type":"uint24"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"feeGrowthGlobal0X128","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"feeGrowthGlobal1X128","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount0","type":"uint256"},{"internalType":"uint256","name":"amount1","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"flash","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"observationCardinalityNext","type":"uint16"}],"name":"increaseObservationCardinalityNext","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint160","name":"sqrtPriceX96","type":"uint160"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"liquidity","outputs":[{"internalType":"uint128","name":"","type":"uint128"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxLiquidityPerTick","outputs":[{"internalType":"uint128","name":"","type":"uint128"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"int24","name":"tickLower","type":"int24"},{"internalType":"int24","name":"tickUpper","type":"int24"},{"internalType":"uint128","name":"amount","type":"uint128"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"mint","outputs":[{"internalType":"uint256","name":"amount0","type":"uint256"},{"internalType":"uint256","name":"amount1","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"name":"observations","outputs":[{"internalType":"uint32","name":"blockTimestamp","type":"uint32"},{"internalType":"int56","name":"tickCumulative","type":"int56"},{"internalType":"uint160","name":"secondsPerLiquidityCumulativeX128","type":"uint160"},{"internalType":"bool","name":"initialized","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint32[]","name":"secondsAgos","type":"uint32[]"}],"name":"observe","outputs":[{"internalType":"int56[]","name":"tickCumulatives","type":"int56[]"},{"internalType":"uint160[]","name":"secondsPerLiquidityCumulativeX128s","type":"uint160[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"key","type":"bytes32"}],"name":"positions","outputs":[{"internalType":"uint128","name":"_liquidity","type":"uint128"},{"internalType":"uint256","name":"feeGrowthInside0LastX128","type":"uint256"},{"internalType":"uint256","name":"feeGrowthInside1LastX128","type":"uint256"},{"internalType":"uint128","name":"tokensOwed0","type":"uint128"},{"internalType":"uint128","name":"tokensOwed1","type":"uint128"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"protocolFees","outputs":[{"internalType":"uint128","name":"token0","type":"uint128"},{"internalType":"uint128","name":"token1","type":"uint128"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint8","name":"feeProtocol0","type":"uint8"},{"internalType":"uint8","name":"feeProtocol1","type":"uint8"}],"name":"setFeeProtocol","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"slot0","outputs":[{"internalType":"uint160","name":"sqrtPriceX96","type":"uint160"},{"internalType":"int24","name":"tick","type":"int24"},{"internalType":"uint16","name":"observationIndex","type":"uint16"},{"internalType":"uint16","name":"observationCardinality","type":"uint16"},{"internalType":"uint16","name":"observationCardinalityNext","type":"uint16"},{"internalType":"uint8","name":"feeProtocol","type":"uint8"},{"internalType":"bool","name":"unlocked","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"int24","name":"tickLower","type":"int24"},{"internalType":"int24","name":"tickUpper","type":"int24"}],"name":"snapshotCumulativesInside","outputs":[{"internalType":"int56","name":"tickCumulativeInside","type":"int56"},{"internalType":"uint160","name":"secondsPerLiquidityInsideX128","type":"uint160"},{"internalType":"uint32","name":"secondsInside","type":"uint32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"bool","name":"zeroForOne","type":"bool"},{"internalType":"int256","name":"amountSpecified","type":"int256"},{"internalType":"uint160","name":"sqrtPriceLimitX96","type":"uint160"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"swap","outputs":[{"internalType":"int256","name":"amount0","type":"int256"},{"internalType":"int256","name":"amount1","type":"int256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"int16","name":"wordPosition","type":"int16"}],"name":"tickBitmap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tickSpacing","outputs":[{"internalType":"int24","name":"","type":"int24"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"int24","name":"tick","type":"int24"}],"name":"ticks","outputs":[{"internalType":"uint128","name":"liquidityGross","type":"uint128"},{"internalType":"int128","name":"liquidityNet","type":"int128"},{"internalType":"uint256","name":"feeGrowthOutside0X128","type":"uint256"},{"internalType":"uint256","name":"feeGrowthOutside1X128","type":"uint256"},{"internalType":"int56","name":"tickCumulativeOutside","type":"int56"},{"internalType":"uint160","name":"secondsPerLiquidityOutsideX128","type":"uint160"},{"internalType":"uint32","name":"secondsOutside","type":"uint32"},{"internalType":"bool","name":"initialized","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"token0","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"token1","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"burn(int24,int24,uint128)":"a34123a7","collect(address,int24,int24,uint128,uint128)":"4f1eb3d8","collectProtocol(address,uint128,uint128)":"85b66729","factory()":"c45a0155","fee()":"ddca3f43","feeGrowthGlobal0X128()":"f3058399","feeGrowthGlobal1X128()":"46141319","flash(address,uint256,uint256,bytes)":"490e6cbc","increaseObservationCardinalityNext(uint16)":"32148f67","initialize(uint160)":"f637731d","liquidity()":"1a686502","maxLiquidityPerTick()":"70cf754a","mint(address,int24,int24,uint128,bytes)":"3c8a7d8d","observations(uint256)":"252c09d7","observe(uint32[])":"883bdbfd","positions(bytes32)":"514ea4bf","protocolFees()":"1ad8b03b","setFeeProtocol(uint8,uint8)":"8206a4d1","slot0()":"3850c7bd","snapshotCumulativesInside(int24,int24)":"a38807f2","swap(address,bool,int256,uint160,bytes)":"128acb08","tickBitmap(int16)":"5339c296","tickSpacing()":"d0c93a7c","ticks(int24)":"f30dba93","token0()":"0dfe1681","token1()":"d21220a7"}},"metadata":"{\"compiler\":{\"version\":\"0.7.6+commit.7338295f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"int24\",\"name\":\"tickLower\",\"type\":\"int24\"},{\"indexed\":true,\"internalType\":\"int24\",\"name\":\"tickUpper\",\"type\":\"int24\"},{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"amount\",\"type\":\"uint128\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount0\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount1\",\"type\":\"uint256\"}],\"name\":\"Burn\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"int24\",\"name\":\"tickLower\",\"type\":\"int24\"},{\"indexed\":true,\"internalType\":\"int24\",\"name\":\"tickUpper\",\"type\":\"int24\"},{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"amount0\",\"type\":\"uint128\"},{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"amount1\",\"type\":\"uint128\"}],\"name\":\"Collect\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"amount0\",\"type\":\"uint128\"},{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"amount1\",\"type\":\"uint128\"}],\"name\":\"CollectProtocol\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount0\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount1\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"paid0\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"paid1\",\"type\":\"uint256\"}],\"name\":\"Flash\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"observationCardinalityNextOld\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"observationCardinalityNextNew\",\"type\":\"uint16\"}],\"name\":\"IncreaseObservationCardinalityNext\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint160\",\"name\":\"sqrtPriceX96\",\"type\":\"uint160\"},{\"indexed\":false,\"internalType\":\"int24\",\"name\":\"tick\",\"type\":\"int24\"}],\"name\":\"Initialize\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"int24\",\"name\":\"tickLower\",\"type\":\"int24\"},{\"indexed\":true,\"internalType\":\"int24\",\"name\":\"tickUpper\",\"type\":\"int24\"},{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"amount\",\"type\":\"uint128\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount0\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount1\",\"type\":\"uint256\"}],\"name\":\"Mint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"feeProtocol0Old\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"feeProtocol1Old\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"feeProtocol0New\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"feeProtocol1New\",\"type\":\"uint8\"}],\"name\":\"SetFeeProtocol\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"amount0\",\"type\":\"int256\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"amount1\",\"type\":\"int256\"},{\"indexed\":false,\"internalType\":\"uint160\",\"name\":\"sqrtPriceX96\",\"type\":\"uint160\"},{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"liquidity\",\"type\":\"uint128\"},{\"indexed\":false,\"internalType\":\"int24\",\"name\":\"tick\",\"type\":\"int24\"}],\"name\":\"Swap\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"int24\",\"name\":\"tickLower\",\"type\":\"int24\"},{\"internalType\":\"int24\",\"name\":\"tickUpper\",\"type\":\"int24\"},{\"internalType\":\"uint128\",\"name\":\"amount\",\"type\":\"uint128\"}],\"name\":\"burn\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount0\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount1\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"int24\",\"name\":\"tickLower\",\"type\":\"int24\"},{\"internalType\":\"int24\",\"name\":\"tickUpper\",\"type\":\"int24\"},{\"internalType\":\"uint128\",\"name\":\"amount0Requested\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"amount1Requested\",\"type\":\"uint128\"}],\"name\":\"collect\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"amount0\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"amount1\",\"type\":\"uint128\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint128\",\"name\":\"amount0Requested\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"amount1Requested\",\"type\":\"uint128\"}],\"name\":\"collectProtocol\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"amount0\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"amount1\",\"type\":\"uint128\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"factory\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"fee\",\"outputs\":[{\"internalType\":\"uint24\",\"name\":\"\",\"type\":\"uint24\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"feeGrowthGlobal0X128\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"feeGrowthGlobal1X128\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount0\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount1\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"flash\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"observationCardinalityNext\",\"type\":\"uint16\"}],\"name\":\"increaseObservationCardinalityNext\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint160\",\"name\":\"sqrtPriceX96\",\"type\":\"uint160\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"liquidity\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"\",\"type\":\"uint128\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"maxLiquidityPerTick\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"\",\"type\":\"uint128\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"int24\",\"name\":\"tickLower\",\"type\":\"int24\"},{\"internalType\":\"int24\",\"name\":\"tickUpper\",\"type\":\"int24\"},{\"internalType\":\"uint128\",\"name\":\"amount\",\"type\":\"uint128\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"mint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount0\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount1\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"observations\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"blockTimestamp\",\"type\":\"uint32\"},{\"internalType\":\"int56\",\"name\":\"tickCumulative\",\"type\":\"int56\"},{\"internalType\":\"uint160\",\"name\":\"secondsPerLiquidityCumulativeX128\",\"type\":\"uint160\"},{\"internalType\":\"bool\",\"name\":\"initialized\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint32[]\",\"name\":\"secondsAgos\",\"type\":\"uint32[]\"}],\"name\":\"observe\",\"outputs\":[{\"internalType\":\"int56[]\",\"name\":\"tickCumulatives\",\"type\":\"int56[]\"},{\"internalType\":\"uint160[]\",\"name\":\"secondsPerLiquidityCumulativeX128s\",\"type\":\"uint160[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"key\",\"type\":\"bytes32\"}],\"name\":\"positions\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"_liquidity\",\"type\":\"uint128\"},{\"internalType\":\"uint256\",\"name\":\"feeGrowthInside0LastX128\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"feeGrowthInside1LastX128\",\"type\":\"uint256\"},{\"internalType\":\"uint128\",\"name\":\"tokensOwed0\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"tokensOwed1\",\"type\":\"uint128\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"protocolFees\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"token0\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"token1\",\"type\":\"uint128\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"feeProtocol0\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"feeProtocol1\",\"type\":\"uint8\"}],\"name\":\"setFeeProtocol\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"slot0\",\"outputs\":[{\"internalType\":\"uint160\",\"name\":\"sqrtPriceX96\",\"type\":\"uint160\"},{\"internalType\":\"int24\",\"name\":\"tick\",\"type\":\"int24\"},{\"internalType\":\"uint16\",\"name\":\"observationIndex\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"observationCardinality\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"observationCardinalityNext\",\"type\":\"uint16\"},{\"internalType\":\"uint8\",\"name\":\"feeProtocol\",\"type\":\"uint8\"},{\"internalType\":\"bool\",\"name\":\"unlocked\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int24\",\"name\":\"tickLower\",\"type\":\"int24\"},{\"internalType\":\"int24\",\"name\":\"tickUpper\",\"type\":\"int24\"}],\"name\":\"snapshotCumulativesInside\",\"outputs\":[{\"internalType\":\"int56\",\"name\":\"tickCumulativeInside\",\"type\":\"int56\"},{\"internalType\":\"uint160\",\"name\":\"secondsPerLiquidityInsideX128\",\"type\":\"uint160\"},{\"internalType\":\"uint32\",\"name\":\"secondsInside\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"zeroForOne\",\"type\":\"bool\"},{\"internalType\":\"int256\",\"name\":\"amountSpecified\",\"type\":\"int256\"},{\"internalType\":\"uint160\",\"name\":\"sqrtPriceLimitX96\",\"type\":\"uint160\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"swap\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"amount0\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"amount1\",\"type\":\"int256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int16\",\"name\":\"wordPosition\",\"type\":\"int16\"}],\"name\":\"tickBitmap\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"tickSpacing\",\"outputs\":[{\"internalType\":\"int24\",\"name\":\"\",\"type\":\"int24\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int24\",\"name\":\"tick\",\"type\":\"int24\"}],\"name\":\"ticks\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"liquidityGross\",\"type\":\"uint128\"},{\"internalType\":\"int128\",\"name\":\"liquidityNet\",\"type\":\"int128\"},{\"internalType\":\"uint256\",\"name\":\"feeGrowthOutside0X128\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"feeGrowthOutside1X128\",\"type\":\"uint256\"},{\"internalType\":\"int56\",\"name\":\"tickCumulativeOutside\",\"type\":\"int56\"},{\"internalType\":\"uint160\",\"name\":\"secondsPerLiquidityOutsideX128\",\"type\":\"uint160\"},{\"internalType\":\"uint32\",\"name\":\"secondsOutside\",\"type\":\"uint32\"},{\"internalType\":\"bool\",\"name\":\"initialized\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"token0\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"token1\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"The pool interface is broken up into many smaller pieces\",\"kind\":\"dev\",\"methods\":{\"burn(int24,int24,uint128)\":{\"details\":\"Can be used to trigger a recalculation of fees owed to a position by calling with an amount of 0Fees must be collected separately via a call to #collect\",\"params\":{\"amount\":\"How much liquidity to burn\",\"tickLower\":\"The lower tick of the position for which to burn liquidity\",\"tickUpper\":\"The upper tick of the position for which to burn liquidity\"},\"returns\":{\"amount0\":\"The amount of token0 sent to the recipient\",\"amount1\":\"The amount of token1 sent to the recipient\"}},\"collect(address,int24,int24,uint128,uint128)\":{\"details\":\"Does not recompute fees earned, which must be done either via mint or burn of any amount of liquidity. Collect must be called by the position owner. To withdraw only token0 or only token1, amount0Requested or amount1Requested may be set to zero. To withdraw all tokens owed, caller may pass any value greater than the actual tokens owed, e.g. type(uint128).max. Tokens owed may be from accumulated swap fees or burned liquidity.\",\"params\":{\"amount0Requested\":\"How much token0 should be withdrawn from the fees owed\",\"amount1Requested\":\"How much token1 should be withdrawn from the fees owed\",\"recipient\":\"The address which should receive the fees collected\",\"tickLower\":\"The lower tick of the position for which to collect fees\",\"tickUpper\":\"The upper tick of the position for which to collect fees\"},\"returns\":{\"amount0\":\"The amount of fees collected in token0\",\"amount1\":\"The amount of fees collected in token1\"}},\"collectProtocol(address,uint128,uint128)\":{\"params\":{\"amount0Requested\":\"The maximum amount of token0 to send, can be 0 to collect fees in only token1\",\"amount1Requested\":\"The maximum amount of token1 to send, can be 0 to collect fees in only token0\",\"recipient\":\"The address to which collected protocol fees should be sent\"},\"returns\":{\"amount0\":\"The protocol fee collected in token0\",\"amount1\":\"The protocol fee collected in token1\"}},\"factory()\":{\"returns\":{\"_0\":\"The contract address\"}},\"fee()\":{\"returns\":{\"_0\":\"The fee\"}},\"feeGrowthGlobal0X128()\":{\"details\":\"This value can overflow the uint256\"},\"feeGrowthGlobal1X128()\":{\"details\":\"This value can overflow the uint256\"},\"flash(address,uint256,uint256,bytes)\":{\"details\":\"The caller of this method receives a callback in the form of IAstraCLFlashCallback.sol#astraCLFlashCallbackCan be used to donate underlying tokens pro-rata to currently in-range liquidity providers by calling with 0 amount{0,1} and sending the donation amount(s) from the callback\",\"params\":{\"amount0\":\"The amount of token0 to send\",\"amount1\":\"The amount of token1 to send\",\"data\":\"Any data to be passed through to the callback\",\"recipient\":\"The address which will receive the token0 and token1 amounts\"}},\"increaseObservationCardinalityNext(uint16)\":{\"details\":\"This method is no-op if the pool already has an observationCardinalityNext greater than or equal to the input observationCardinalityNext.\",\"params\":{\"observationCardinalityNext\":\"The desired minimum number of observations for the pool to store\"}},\"initialize(uint160)\":{\"details\":\"Price is represented as a sqrt(amountToken1/amountToken0) Q64.96 value\",\"params\":{\"sqrtPriceX96\":\"the initial sqrt price of the pool as a Q64.96\"}},\"liquidity()\":{\"details\":\"This value has no relationship to the total liquidity across all ticks\"},\"maxLiquidityPerTick()\":{\"details\":\"This parameter is enforced per tick to prevent liquidity from overflowing a uint128 at any point, and also prevents out-of-range liquidity from being used to prevent adding in-range liquidity to a pool\",\"returns\":{\"_0\":\"The max amount of liquidity per tick\"}},\"mint(address,int24,int24,uint128,bytes)\":{\"details\":\"The caller of this method receives a callback in the form of IAstraCLMintCallback.sol#astraCLMintCallback in which they must pay any token0 or token1 owed for the liquidity. The amount of token0/token1 due depends on tickLower, tickUpper, the amount of liquidity, and the current price.\",\"params\":{\"amount\":\"The amount of liquidity to mint\",\"data\":\"Any data that should be passed through to the callback\",\"recipient\":\"The address for which the liquidity will be created\",\"tickLower\":\"The lower tick of the position in which to add liquidity\",\"tickUpper\":\"The upper tick of the position in which to add liquidity\"},\"returns\":{\"amount0\":\"The amount of token0 that was paid to mint the given amount of liquidity. Matches the value in the callback\",\"amount1\":\"The amount of token1 that was paid to mint the given amount of liquidity. Matches the value in the callback\"}},\"observations(uint256)\":{\"details\":\"You most likely want to use #observe() instead of this method to get an observation as of some amount of time ago, rather than at a specific index in the array.\",\"params\":{\"index\":\"The element of the observations array to fetch\"},\"returns\":{\"blockTimestamp\":\"The timestamp of the observation, Returns tickCumulative the tick multiplied by seconds elapsed for the life of the pool as of the observation timestamp, Returns secondsPerLiquidityCumulativeX128 the seconds per in range liquidity for the life of the pool as of the observation timestamp, Returns initialized whether the observation has been initialized and the values are safe to use\"}},\"observe(uint32[])\":{\"details\":\"To get a time weighted average tick or liquidity-in-range, you must call this with two values, one representing the beginning of the period and another for the end of the period. E.g., to get the last hour time-weighted average tick, you must call it with secondsAgos = [3600, 0].The time weighted average tick represents the geometric time weighted average price of the pool, in log base sqrt(1.0001) of token1 / token0. The TickMath library can be used to go from a tick value to a ratio.\",\"params\":{\"secondsAgos\":\"From how long ago each cumulative tick and liquidity value should be returned\"},\"returns\":{\"secondsPerLiquidityCumulativeX128s\":\"Cumulative seconds per liquidity-in-range value as of each `secondsAgos` from the current block timestamp\",\"tickCumulatives\":\"Cumulative tick values as of each `secondsAgos` from the current block timestamp\"}},\"positions(bytes32)\":{\"params\":{\"key\":\"The position's key is a hash of a preimage composed by the owner, tickLower and tickUpper\"},\"returns\":{\"_liquidity\":\"The amount of liquidity in the position, Returns feeGrowthInside0LastX128 fee growth of token0 inside the tick range as of the last mint/burn/poke, Returns feeGrowthInside1LastX128 fee growth of token1 inside the tick range as of the last mint/burn/poke, Returns tokensOwed0 the computed amount of token0 owed to the position as of the last mint/burn/poke, Returns tokensOwed1 the computed amount of token1 owed to the position as of the last mint/burn/poke\"}},\"protocolFees()\":{\"details\":\"Protocol fees will never exceed uint128 max in either token\"},\"setFeeProtocol(uint8,uint8)\":{\"params\":{\"feeProtocol0\":\"new protocol fee for token0 of the pool\",\"feeProtocol1\":\"new protocol fee for token1 of the pool\"}},\"slot0()\":{\"returns\":{\"sqrtPriceX96\":\"The current price of the pool as a sqrt(token1/token0) Q64.96 value tick The current tick of the pool, i.e. according to the last tick transition that was run. This value may not always be equal to SqrtTickMath.getTickAtSqrtRatio(sqrtPriceX96) if the price is on a tick boundary. observationIndex The index of the last oracle observation that was written, observationCardinality The current maximum number of observations stored in the pool, observationCardinalityNext The next maximum number of observations, to be updated when the observation. feeProtocol The protocol fee for both tokens of the pool. Encoded as two 4 bit values, where the protocol fee of token1 is shifted 4 bits and the protocol fee of token0 is the lower 4 bits. Used as the denominator of a fraction of the swap fee, e.g. 4 means 1/4th of the swap fee. unlocked Whether the pool is currently locked to reentrancy\"}},\"snapshotCumulativesInside(int24,int24)\":{\"details\":\"Snapshots must only be compared to other snapshots, taken over a period for which a position existed. I.e., snapshots cannot be compared if a position is not held for the entire period between when the first snapshot is taken and the second snapshot is taken.\",\"params\":{\"tickLower\":\"The lower tick of the range\",\"tickUpper\":\"The upper tick of the range\"},\"returns\":{\"secondsInside\":\"The snapshot of seconds per liquidity for the range\",\"secondsPerLiquidityInsideX128\":\"The snapshot of seconds per liquidity for the range\",\"tickCumulativeInside\":\"The snapshot of the tick accumulator for the range\"}},\"swap(address,bool,int256,uint160,bytes)\":{\"details\":\"The caller of this method receives a callback in the form of IAstraCLSwapCallback.sol#astraCLSwapCallback\",\"params\":{\"amountSpecified\":\"The amount of the swap, which implicitly configures the swap as exact input (positive), or exact output (negative)\",\"data\":\"Any data to be passed through to the callback\",\"recipient\":\"The address to receive the output of the swap\",\"sqrtPriceLimitX96\":\"The Q64.96 sqrt price limit. If zero for one, the price cannot be less than this value after the swap. If one for zero, the price cannot be greater than this value after the swap\",\"zeroForOne\":\"The direction of the swap, true for token0 to token1, false for token1 to token0\"},\"returns\":{\"amount0\":\"The delta of the balance of token0 of the pool, exact when negative, minimum when positive\",\"amount1\":\"The delta of the balance of token1 of the pool, exact when negative, minimum when positive\"}},\"tickSpacing()\":{\"details\":\"Ticks can only be used at multiples of this value, minimum of 1 and always positive e.g.: a tickSpacing of 3 means ticks can be initialized every 3rd tick, i.e., ..., -6, -3, 0, 3, 6, ... This value is an int24 to avoid casting even though it is always positive.\",\"returns\":{\"_0\":\"The tick spacing\"}},\"ticks(int24)\":{\"params\":{\"tick\":\"The tick to look up\"},\"returns\":{\"liquidityGross\":\"the total amount of position liquidity that uses the pool either as tick lower or tick upper, liquidityNet how much liquidity changes when the pool price crosses the tick, feeGrowthOutside0X128 the fee growth on the other side of the tick from the current tick in token0, feeGrowthOutside1X128 the fee growth on the other side of the tick from the current tick in token1, tickCumulativeOutside the cumulative tick value on the other side of the tick from the current tick secondsPerLiquidityOutsideX128 the seconds spent per liquidity on the other side of the tick from the current tick, secondsOutside the seconds spent on the other side of the tick from the current tick, initialized Set to true if the tick is initialized, i.e. liquidityGross is greater than 0, otherwise equal to false. Outside values can only be used if the tick is initialized, i.e. if liquidityGross is greater than 0. In addition, these values are only relative and must be used only in comparison to previous snapshots for a specific position.\"}},\"token0()\":{\"returns\":{\"_0\":\"The token contract address\"}},\"token1()\":{\"returns\":{\"_0\":\"The token contract address\"}}},\"title\":\"The interface for a Astra CL Pool\",\"version\":1},\"userdoc\":{\"events\":{\"Burn(address,int24,int24,uint128,uint256,uint256)\":{\"notice\":\"Emitted when a position's liquidity is removed\"},\"Collect(address,address,int24,int24,uint128,uint128)\":{\"notice\":\"Emitted when fees are collected by the owner of a position\"},\"CollectProtocol(address,address,uint128,uint128)\":{\"notice\":\"Emitted when the collected protocol fees are withdrawn by the factory owner\"},\"Flash(address,address,uint256,uint256,uint256,uint256)\":{\"notice\":\"Emitted by the pool for any flashes of token0/token1\"},\"IncreaseObservationCardinalityNext(uint16,uint16)\":{\"notice\":\"Emitted by the pool for increases to the number of observations that can be stored\"},\"Initialize(uint160,int24)\":{\"notice\":\"Emitted exactly once by a pool when #initialize is first called on the pool\"},\"Mint(address,address,int24,int24,uint128,uint256,uint256)\":{\"notice\":\"Emitted when liquidity is minted for a given position\"},\"SetFeeProtocol(uint8,uint8,uint8,uint8)\":{\"notice\":\"Emitted when the protocol fee is changed by the pool\"},\"Swap(address,address,int256,int256,uint160,uint128,int24)\":{\"notice\":\"Emitted by the pool for any swaps between token0 and token1\"}},\"kind\":\"user\",\"methods\":{\"burn(int24,int24,uint128)\":{\"notice\":\"Burn liquidity from the sender and account tokens owed for the liquidity to the position\"},\"collect(address,int24,int24,uint128,uint128)\":{\"notice\":\"Collects tokens owed to a position\"},\"collectProtocol(address,uint128,uint128)\":{\"notice\":\"Collect the protocol fee accrued to the pool\"},\"factory()\":{\"notice\":\"The contract that deployed the pool, which must adhere to the IAstraCLFactory interface\"},\"fee()\":{\"notice\":\"The pool's fee in hundredths of a bip, i.e. 1e-6\"},\"feeGrowthGlobal0X128()\":{\"notice\":\"The fee growth as a Q128.128 fees of token0 collected per unit of liquidity for the entire life of the pool\"},\"feeGrowthGlobal1X128()\":{\"notice\":\"The fee growth as a Q128.128 fees of token1 collected per unit of liquidity for the entire life of the pool\"},\"flash(address,uint256,uint256,bytes)\":{\"notice\":\"Receive token0 and/or token1 and pay it back, plus a fee, in the callback\"},\"increaseObservationCardinalityNext(uint16)\":{\"notice\":\"Increase the maximum number of price and liquidity observations that this pool will store\"},\"initialize(uint160)\":{\"notice\":\"Sets the initial price for the pool\"},\"liquidity()\":{\"notice\":\"The currently in range liquidity available to the pool\"},\"maxLiquidityPerTick()\":{\"notice\":\"The maximum amount of position liquidity that can use any tick in the range\"},\"mint(address,int24,int24,uint128,bytes)\":{\"notice\":\"Adds liquidity for the given recipient/tickLower/tickUpper position\"},\"observations(uint256)\":{\"notice\":\"Returns data about a specific observation index\"},\"observe(uint32[])\":{\"notice\":\"Returns the cumulative tick and liquidity as of each timestamp `secondsAgo` from the current block timestamp\"},\"positions(bytes32)\":{\"notice\":\"Returns the information about a position by the position's key\"},\"protocolFees()\":{\"notice\":\"The amounts of token0 and token1 that are owed to the protocol\"},\"setFeeProtocol(uint8,uint8)\":{\"notice\":\"Set the denominator of the protocol's % share of the fees\"},\"slot0()\":{\"notice\":\"The 0th storage slot in the pool stores many values, and is exposed as a single method to save gas when accessed externally.\"},\"snapshotCumulativesInside(int24,int24)\":{\"notice\":\"Returns a snapshot of the tick cumulative, seconds per liquidity and seconds inside a tick range\"},\"swap(address,bool,int256,uint160,bytes)\":{\"notice\":\"Swap token0 for token1, or token1 for token0\"},\"tickBitmap(int16)\":{\"notice\":\"Returns 256 packed tick initialized boolean values. See TickBitmap for more information\"},\"tickSpacing()\":{\"notice\":\"The pool tick spacing\"},\"ticks(int24)\":{\"notice\":\"Look up information about a specific tick in the pool\"},\"token0()\":{\"notice\":\"The first of the two tokens of the pool, sorted by address\"},\"token1()\":{\"notice\":\"The second of the two tokens of the pool, sorted by address\"}},\"notice\":\"An Astra pool facilitates swapping and automated market making between any two assets that strictly conform to the ERC20 specification\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"@airdao/astra-cl-core/contracts/interfaces/IAstraCLPool.sol\":\"IAstraCLPool\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[]},\"sources\":{\"@airdao/astra-cl-core/contracts/interfaces/IAstraCLPool.sol\":{\"keccak256\":\"0xd86f876af8f4253bfc7564ae46cfad2d09d83290f4a6a4b133a44740e73d2640\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://bde092b2aba1f27df9701ff9ed1ec7370fb443b0373be6f468ae57dd1e433273\",\"dweb:/ipfs/Qmd3M893Bosob7PVUqC33hcoD2XYHTVFtjgAPhRQibWkFe\"]},\"@airdao/astra-cl-core/contracts/interfaces/pool/IAstraCLPoolActions.sol\":{\"keccak256\":\"0x29e91b8993d8df671a62aa4c3a861bac77990d2ac9f7b8ba883eacfb271964f0\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://d520d78a7d6ed69f53b72fcfea1267fd1d9fa517df6a4138df996f931f8161d8\",\"dweb:/ipfs/QmcRtZcqFBjs163wJxFZ9A4JE6CyR4ySSRqBcDe4KsL4dD\"]},\"@airdao/astra-cl-core/contracts/interfaces/pool/IAstraCLPoolDerivedState.sol\":{\"keccak256\":\"0x17b2c352ea0e1b5c8137c6f1c3aef7ef3b02ac95a6d9a7e165c573c45518748c\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://45af49340294535c5e28f80df0f3a2927a8a8f8b2d8a656197c36734ba018659\",\"dweb:/ipfs/QmYXJZArrZF93TaUMibWe8GDQEqAp4yP7oDMDjTqkaPzVW\"]},\"@airdao/astra-cl-core/contracts/interfaces/pool/IAstraCLPoolEvents.sol\":{\"keccak256\":\"0x33715230197f3b2e24a7d76c9b4ea78dacbde03d5b5e4614b118f59fad2ca004\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://1da6ef4e8c8549ea5836e040233afe78424b33de50bbf8a83bc521fc1ae0b7f5\",\"dweb:/ipfs/QmVt57cHvYNaQ94VrnTgRhDN81hq7zeV3UU1EQ3F8z2kw7\"]},\"@airdao/astra-cl-core/contracts/interfaces/pool/IAstraCLPoolImmutables.sol\":{\"keccak256\":\"0x366c9b646ed0a7e8a2ff3b01e61b078b0397b605459804948a3b5dbfadf87f07\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://4a211d5a178f08cd93b082fddd142fb144f4bc76a0d56f7bddc6b01b5433f864\",\"dweb:/ipfs/QmXbsAbdrcyiHZwksqvQ45m579Qc9C6ThPXQUttP72gUFa\"]},\"@airdao/astra-cl-core/contracts/interfaces/pool/IAstraCLPoolOwnerActions.sol\":{\"keccak256\":\"0xf783673049e12e1f5ab4784c9ffdbaef66d4cd7709ac7c43af3ab163dfcc4819\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://c64e566d63ff5e1cf081d718e5356810fedce220a473330c20aef166275cd9a9\",\"dweb:/ipfs/QmdsBonXzuaiQC8BxYVCvmcWUtnkKzp873poeH6jbsuidP\"]},\"@airdao/astra-cl-core/contracts/interfaces/pool/IAstraCLPoolState.sol\":{\"keccak256\":\"0xb41dbeb5a9faebd4222678080759032377f8dedf65388bfe1644dc6f2aaeef39\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://c7ebd43d4b1c485d5b536160d138b0206b985cf6c5f82c19dd945ff0d87ca350\",\"dweb:/ipfs/QmPuuoryMaBArNtHvNaY5PpDGmfNajoqjdyWBmGWCdbXkW\"]}},\"version\":1}"}},"@airdao/astra-cl-core/contracts/interfaces/pool/IAstraCLPoolActions.sol":{"IAstraCLPoolActions":{"abi":[{"inputs":[{"internalType":"int24","name":"tickLower","type":"int24"},{"internalType":"int24","name":"tickUpper","type":"int24"},{"internalType":"uint128","name":"amount","type":"uint128"}],"name":"burn","outputs":[{"internalType":"uint256","name":"amount0","type":"uint256"},{"internalType":"uint256","name":"amount1","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"int24","name":"tickLower","type":"int24"},{"internalType":"int24","name":"tickUpper","type":"int24"},{"internalType":"uint128","name":"amount0Requested","type":"uint128"},{"internalType":"uint128","name":"amount1Requested","type":"uint128"}],"name":"collect","outputs":[{"internalType":"uint128","name":"amount0","type":"uint128"},{"internalType":"uint128","name":"amount1","type":"uint128"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount0","type":"uint256"},{"internalType":"uint256","name":"amount1","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"flash","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"observationCardinalityNext","type":"uint16"}],"name":"increaseObservationCardinalityNext","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint160","name":"sqrtPriceX96","type":"uint160"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"int24","name":"tickLower","type":"int24"},{"internalType":"int24","name":"tickUpper","type":"int24"},{"internalType":"uint128","name":"amount","type":"uint128"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"mint","outputs":[{"internalType":"uint256","name":"amount0","type":"uint256"},{"internalType":"uint256","name":"amount1","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"bool","name":"zeroForOne","type":"bool"},{"internalType":"int256","name":"amountSpecified","type":"int256"},{"internalType":"uint160","name":"sqrtPriceLimitX96","type":"uint160"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"swap","outputs":[{"internalType":"int256","name":"amount0","type":"int256"},{"internalType":"int256","name":"amount1","type":"int256"}],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"burn(int24,int24,uint128)":"a34123a7","collect(address,int24,int24,uint128,uint128)":"4f1eb3d8","flash(address,uint256,uint256,bytes)":"490e6cbc","increaseObservationCardinalityNext(uint16)":"32148f67","initialize(uint160)":"f637731d","mint(address,int24,int24,uint128,bytes)":"3c8a7d8d","swap(address,bool,int256,uint160,bytes)":"128acb08"}},"metadata":"{\"compiler\":{\"version\":\"0.7.6+commit.7338295f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"int24\",\"name\":\"tickLower\",\"type\":\"int24\"},{\"internalType\":\"int24\",\"name\":\"tickUpper\",\"type\":\"int24\"},{\"internalType\":\"uint128\",\"name\":\"amount\",\"type\":\"uint128\"}],\"name\":\"burn\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount0\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount1\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"int24\",\"name\":\"tickLower\",\"type\":\"int24\"},{\"internalType\":\"int24\",\"name\":\"tickUpper\",\"type\":\"int24\"},{\"internalType\":\"uint128\",\"name\":\"amount0Requested\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"amount1Requested\",\"type\":\"uint128\"}],\"name\":\"collect\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"amount0\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"amount1\",\"type\":\"uint128\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount0\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount1\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"flash\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"observationCardinalityNext\",\"type\":\"uint16\"}],\"name\":\"increaseObservationCardinalityNext\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint160\",\"name\":\"sqrtPriceX96\",\"type\":\"uint160\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"int24\",\"name\":\"tickLower\",\"type\":\"int24\"},{\"internalType\":\"int24\",\"name\":\"tickUpper\",\"type\":\"int24\"},{\"internalType\":\"uint128\",\"name\":\"amount\",\"type\":\"uint128\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"mint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount0\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount1\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"zeroForOne\",\"type\":\"bool\"},{\"internalType\":\"int256\",\"name\":\"amountSpecified\",\"type\":\"int256\"},{\"internalType\":\"uint160\",\"name\":\"sqrtPriceLimitX96\",\"type\":\"uint160\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"swap\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"amount0\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"amount1\",\"type\":\"int256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"burn(int24,int24,uint128)\":{\"details\":\"Can be used to trigger a recalculation of fees owed to a position by calling with an amount of 0Fees must be collected separately via a call to #collect\",\"params\":{\"amount\":\"How much liquidity to burn\",\"tickLower\":\"The lower tick of the position for which to burn liquidity\",\"tickUpper\":\"The upper tick of the position for which to burn liquidity\"},\"returns\":{\"amount0\":\"The amount of token0 sent to the recipient\",\"amount1\":\"The amount of token1 sent to the recipient\"}},\"collect(address,int24,int24,uint128,uint128)\":{\"details\":\"Does not recompute fees earned, which must be done either via mint or burn of any amount of liquidity. Collect must be called by the position owner. To withdraw only token0 or only token1, amount0Requested or amount1Requested may be set to zero. To withdraw all tokens owed, caller may pass any value greater than the actual tokens owed, e.g. type(uint128).max. Tokens owed may be from accumulated swap fees or burned liquidity.\",\"params\":{\"amount0Requested\":\"How much token0 should be withdrawn from the fees owed\",\"amount1Requested\":\"How much token1 should be withdrawn from the fees owed\",\"recipient\":\"The address which should receive the fees collected\",\"tickLower\":\"The lower tick of the position for which to collect fees\",\"tickUpper\":\"The upper tick of the position for which to collect fees\"},\"returns\":{\"amount0\":\"The amount of fees collected in token0\",\"amount1\":\"The amount of fees collected in token1\"}},\"flash(address,uint256,uint256,bytes)\":{\"details\":\"The caller of this method receives a callback in the form of IAstraCLFlashCallback.sol#astraCLFlashCallbackCan be used to donate underlying tokens pro-rata to currently in-range liquidity providers by calling with 0 amount{0,1} and sending the donation amount(s) from the callback\",\"params\":{\"amount0\":\"The amount of token0 to send\",\"amount1\":\"The amount of token1 to send\",\"data\":\"Any data to be passed through to the callback\",\"recipient\":\"The address which will receive the token0 and token1 amounts\"}},\"increaseObservationCardinalityNext(uint16)\":{\"details\":\"This method is no-op if the pool already has an observationCardinalityNext greater than or equal to the input observationCardinalityNext.\",\"params\":{\"observationCardinalityNext\":\"The desired minimum number of observations for the pool to store\"}},\"initialize(uint160)\":{\"details\":\"Price is represented as a sqrt(amountToken1/amountToken0) Q64.96 value\",\"params\":{\"sqrtPriceX96\":\"the initial sqrt price of the pool as a Q64.96\"}},\"mint(address,int24,int24,uint128,bytes)\":{\"details\":\"The caller of this method receives a callback in the form of IAstraCLMintCallback.sol#astraCLMintCallback in which they must pay any token0 or token1 owed for the liquidity. The amount of token0/token1 due depends on tickLower, tickUpper, the amount of liquidity, and the current price.\",\"params\":{\"amount\":\"The amount of liquidity to mint\",\"data\":\"Any data that should be passed through to the callback\",\"recipient\":\"The address for which the liquidity will be created\",\"tickLower\":\"The lower tick of the position in which to add liquidity\",\"tickUpper\":\"The upper tick of the position in which to add liquidity\"},\"returns\":{\"amount0\":\"The amount of token0 that was paid to mint the given amount of liquidity. Matches the value in the callback\",\"amount1\":\"The amount of token1 that was paid to mint the given amount of liquidity. Matches the value in the callback\"}},\"swap(address,bool,int256,uint160,bytes)\":{\"details\":\"The caller of this method receives a callback in the form of IAstraCLSwapCallback.sol#astraCLSwapCallback\",\"params\":{\"amountSpecified\":\"The amount of the swap, which implicitly configures the swap as exact input (positive), or exact output (negative)\",\"data\":\"Any data to be passed through to the callback\",\"recipient\":\"The address to receive the output of the swap\",\"sqrtPriceLimitX96\":\"The Q64.96 sqrt price limit. If zero for one, the price cannot be less than this value after the swap. If one for zero, the price cannot be greater than this value after the swap\",\"zeroForOne\":\"The direction of the swap, true for token0 to token1, false for token1 to token0\"},\"returns\":{\"amount0\":\"The delta of the balance of token0 of the pool, exact when negative, minimum when positive\",\"amount1\":\"The delta of the balance of token1 of the pool, exact when negative, minimum when positive\"}}},\"title\":\"Permissionless pool actions\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"burn(int24,int24,uint128)\":{\"notice\":\"Burn liquidity from the sender and account tokens owed for the liquidity to the position\"},\"collect(address,int24,int24,uint128,uint128)\":{\"notice\":\"Collects tokens owed to a position\"},\"flash(address,uint256,uint256,bytes)\":{\"notice\":\"Receive token0 and/or token1 and pay it back, plus a fee, in the callback\"},\"increaseObservationCardinalityNext(uint16)\":{\"notice\":\"Increase the maximum number of price and liquidity observations that this pool will store\"},\"initialize(uint160)\":{\"notice\":\"Sets the initial price for the pool\"},\"mint(address,int24,int24,uint128,bytes)\":{\"notice\":\"Adds liquidity for the given recipient/tickLower/tickUpper position\"},\"swap(address,bool,int256,uint160,bytes)\":{\"notice\":\"Swap token0 for token1, or token1 for token0\"}},\"notice\":\"Contains pool methods that can be called by anyone\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"@airdao/astra-cl-core/contracts/interfaces/pool/IAstraCLPoolActions.sol\":\"IAstraCLPoolActions\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[]},\"sources\":{\"@airdao/astra-cl-core/contracts/interfaces/pool/IAstraCLPoolActions.sol\":{\"keccak256\":\"0x29e91b8993d8df671a62aa4c3a861bac77990d2ac9f7b8ba883eacfb271964f0\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://d520d78a7d6ed69f53b72fcfea1267fd1d9fa517df6a4138df996f931f8161d8\",\"dweb:/ipfs/QmcRtZcqFBjs163wJxFZ9A4JE6CyR4ySSRqBcDe4KsL4dD\"]}},\"version\":1}"}},"@airdao/astra-cl-core/contracts/interfaces/pool/IAstraCLPoolDerivedState.sol":{"IAstraCLPoolDerivedState":{"abi":[{"inputs":[{"internalType":"uint32[]","name":"secondsAgos","type":"uint32[]"}],"name":"observe","outputs":[{"internalType":"int56[]","name":"tickCumulatives","type":"int56[]"},{"internalType":"uint160[]","name":"secondsPerLiquidityCumulativeX128s","type":"uint160[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"int24","name":"tickLower","type":"int24"},{"internalType":"int24","name":"tickUpper","type":"int24"}],"name":"snapshotCumulativesInside","outputs":[{"internalType":"int56","name":"tickCumulativeInside","type":"int56"},{"internalType":"uint160","name":"secondsPerLiquidityInsideX128","type":"uint160"},{"internalType":"uint32","name":"secondsInside","type":"uint32"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"observe(uint32[])":"883bdbfd","snapshotCumulativesInside(int24,int24)":"a38807f2"}},"metadata":"{\"compiler\":{\"version\":\"0.7.6+commit.7338295f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint32[]\",\"name\":\"secondsAgos\",\"type\":\"uint32[]\"}],\"name\":\"observe\",\"outputs\":[{\"internalType\":\"int56[]\",\"name\":\"tickCumulatives\",\"type\":\"int56[]\"},{\"internalType\":\"uint160[]\",\"name\":\"secondsPerLiquidityCumulativeX128s\",\"type\":\"uint160[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int24\",\"name\":\"tickLower\",\"type\":\"int24\"},{\"internalType\":\"int24\",\"name\":\"tickUpper\",\"type\":\"int24\"}],\"name\":\"snapshotCumulativesInside\",\"outputs\":[{\"internalType\":\"int56\",\"name\":\"tickCumulativeInside\",\"type\":\"int56\"},{\"internalType\":\"uint160\",\"name\":\"secondsPerLiquidityInsideX128\",\"type\":\"uint160\"},{\"internalType\":\"uint32\",\"name\":\"secondsInside\",\"type\":\"uint32\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"observe(uint32[])\":{\"details\":\"To get a time weighted average tick or liquidity-in-range, you must call this with two values, one representing the beginning of the period and another for the end of the period. E.g., to get the last hour time-weighted average tick, you must call it with secondsAgos = [3600, 0].The time weighted average tick represents the geometric time weighted average price of the pool, in log base sqrt(1.0001) of token1 / token0. The TickMath library can be used to go from a tick value to a ratio.\",\"params\":{\"secondsAgos\":\"From how long ago each cumulative tick and liquidity value should be returned\"},\"returns\":{\"secondsPerLiquidityCumulativeX128s\":\"Cumulative seconds per liquidity-in-range value as of each `secondsAgos` from the current block timestamp\",\"tickCumulatives\":\"Cumulative tick values as of each `secondsAgos` from the current block timestamp\"}},\"snapshotCumulativesInside(int24,int24)\":{\"details\":\"Snapshots must only be compared to other snapshots, taken over a period for which a position existed. I.e., snapshots cannot be compared if a position is not held for the entire period between when the first snapshot is taken and the second snapshot is taken.\",\"params\":{\"tickLower\":\"The lower tick of the range\",\"tickUpper\":\"The upper tick of the range\"},\"returns\":{\"secondsInside\":\"The snapshot of seconds per liquidity for the range\",\"secondsPerLiquidityInsideX128\":\"The snapshot of seconds per liquidity for the range\",\"tickCumulativeInside\":\"The snapshot of the tick accumulator for the range\"}}},\"title\":\"Pool state that is not stored\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"observe(uint32[])\":{\"notice\":\"Returns the cumulative tick and liquidity as of each timestamp `secondsAgo` from the current block timestamp\"},\"snapshotCumulativesInside(int24,int24)\":{\"notice\":\"Returns a snapshot of the tick cumulative, seconds per liquidity and seconds inside a tick range\"}},\"notice\":\"Contains view functions to provide information about the pool that is computed rather than stored on the blockchain. The functions here may have variable gas costs.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"@airdao/astra-cl-core/contracts/interfaces/pool/IAstraCLPoolDerivedState.sol\":\"IAstraCLPoolDerivedState\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[]},\"sources\":{\"@airdao/astra-cl-core/contracts/interfaces/pool/IAstraCLPoolDerivedState.sol\":{\"keccak256\":\"0x17b2c352ea0e1b5c8137c6f1c3aef7ef3b02ac95a6d9a7e165c573c45518748c\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://45af49340294535c5e28f80df0f3a2927a8a8f8b2d8a656197c36734ba018659\",\"dweb:/ipfs/QmYXJZArrZF93TaUMibWe8GDQEqAp4yP7oDMDjTqkaPzVW\"]}},\"version\":1}"}},"@airdao/astra-cl-core/contracts/interfaces/pool/IAstraCLPoolEvents.sol":{"IAstraCLPoolEvents":{"abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"int24","name":"tickLower","type":"int24"},{"indexed":true,"internalType":"int24","name":"tickUpper","type":"int24"},{"indexed":false,"internalType":"uint128","name":"amount","type":"uint128"},{"indexed":false,"internalType":"uint256","name":"amount0","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount1","type":"uint256"}],"name":"Burn","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":false,"internalType":"address","name":"recipient","type":"address"},{"indexed":true,"internalType":"int24","name":"tickLower","type":"int24"},{"indexed":true,"internalType":"int24","name":"tickUpper","type":"int24"},{"indexed":false,"internalType":"uint128","name":"amount0","type":"uint128"},{"indexed":false,"internalType":"uint128","name":"amount1","type":"uint128"}],"name":"Collect","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":true,"internalType":"address","name":"recipient","type":"address"},{"indexed":false,"internalType":"uint128","name":"amount0","type":"uint128"},{"indexed":false,"internalType":"uint128","name":"amount1","type":"uint128"}],"name":"CollectProtocol","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":true,"internalType":"address","name":"recipient","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount0","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount1","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"paid0","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"paid1","type":"uint256"}],"name":"Flash","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"observationCardinalityNextOld","type":"uint16"},{"indexed":false,"internalType":"uint16","name":"observationCardinalityNextNew","type":"uint16"}],"name":"IncreaseObservationCardinalityNext","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint160","name":"sqrtPriceX96","type":"uint160"},{"indexed":false,"internalType":"int24","name":"tick","type":"int24"}],"name":"Initialize","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"sender","type":"address"},{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"int24","name":"tickLower","type":"int24"},{"indexed":true,"internalType":"int24","name":"tickUpper","type":"int24"},{"indexed":false,"internalType":"uint128","name":"amount","type":"uint128"},{"indexed":false,"internalType":"uint256","name":"amount0","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount1","type":"uint256"}],"name":"Mint","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"feeProtocol0Old","type":"uint8"},{"indexed":false,"internalType":"uint8","name":"feeProtocol1Old","type":"uint8"},{"indexed":false,"internalType":"uint8","name":"feeProtocol0New","type":"uint8"},{"indexed":false,"internalType":"uint8","name":"feeProtocol1New","type":"uint8"}],"name":"SetFeeProtocol","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":true,"internalType":"address","name":"recipient","type":"address"},{"indexed":false,"internalType":"int256","name":"amount0","type":"int256"},{"indexed":false,"internalType":"int256","name":"amount1","type":"int256"},{"indexed":false,"internalType":"uint160","name":"sqrtPriceX96","type":"uint160"},{"indexed":false,"internalType":"uint128","name":"liquidity","type":"uint128"},{"indexed":false,"internalType":"int24","name":"tick","type":"int24"}],"name":"Swap","type":"event"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.7.6+commit.7338295f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"int24\",\"name\":\"tickLower\",\"type\":\"int24\"},{\"indexed\":true,\"internalType\":\"int24\",\"name\":\"tickUpper\",\"type\":\"int24\"},{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"amount\",\"type\":\"uint128\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount0\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount1\",\"type\":\"uint256\"}],\"name\":\"Burn\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"int24\",\"name\":\"tickLower\",\"type\":\"int24\"},{\"indexed\":true,\"internalType\":\"int24\",\"name\":\"tickUpper\",\"type\":\"int24\"},{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"amount0\",\"type\":\"uint128\"},{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"amount1\",\"type\":\"uint128\"}],\"name\":\"Collect\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"amount0\",\"type\":\"uint128\"},{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"amount1\",\"type\":\"uint128\"}],\"name\":\"CollectProtocol\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount0\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount1\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"paid0\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"paid1\",\"type\":\"uint256\"}],\"name\":\"Flash\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"observationCardinalityNextOld\",\"type\":\"uint16\"},{\"indexed\":false,\"internalType\":\"uint16\",\"name\":\"observationCardinalityNextNew\",\"type\":\"uint16\"}],\"name\":\"IncreaseObservationCardinalityNext\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint160\",\"name\":\"sqrtPriceX96\",\"type\":\"uint160\"},{\"indexed\":false,\"internalType\":\"int24\",\"name\":\"tick\",\"type\":\"int24\"}],\"name\":\"Initialize\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"int24\",\"name\":\"tickLower\",\"type\":\"int24\"},{\"indexed\":true,\"internalType\":\"int24\",\"name\":\"tickUpper\",\"type\":\"int24\"},{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"amount\",\"type\":\"uint128\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount0\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount1\",\"type\":\"uint256\"}],\"name\":\"Mint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"feeProtocol0Old\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"feeProtocol1Old\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"feeProtocol0New\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"feeProtocol1New\",\"type\":\"uint8\"}],\"name\":\"SetFeeProtocol\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"amount0\",\"type\":\"int256\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"amount1\",\"type\":\"int256\"},{\"indexed\":false,\"internalType\":\"uint160\",\"name\":\"sqrtPriceX96\",\"type\":\"uint160\"},{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"liquidity\",\"type\":\"uint128\"},{\"indexed\":false,\"internalType\":\"int24\",\"name\":\"tick\",\"type\":\"int24\"}],\"name\":\"Swap\",\"type\":\"event\"}],\"devdoc\":{\"events\":{\"Burn(address,int24,int24,uint128,uint256,uint256)\":{\"details\":\"Does not withdraw any fees earned by the liquidity position, which must be withdrawn via #collect\",\"params\":{\"amount\":\"The amount of liquidity to remove\",\"amount0\":\"The amount of token0 withdrawn\",\"amount1\":\"The amount of token1 withdrawn\",\"owner\":\"The owner of the position for which liquidity is removed\",\"tickLower\":\"The lower tick of the position\",\"tickUpper\":\"The upper tick of the position\"}},\"Collect(address,address,int24,int24,uint128,uint128)\":{\"details\":\"Collect events may be emitted with zero amount0 and amount1 when the caller chooses not to collect fees\",\"params\":{\"amount0\":\"The amount of token0 fees collected\",\"amount1\":\"The amount of token1 fees collected\",\"owner\":\"The owner of the position for which fees are collected\",\"tickLower\":\"The lower tick of the position\",\"tickUpper\":\"The upper tick of the position\"}},\"CollectProtocol(address,address,uint128,uint128)\":{\"params\":{\"amount0\":\"The amount of token1 protocol fees that is withdrawn\",\"recipient\":\"The address that receives the collected protocol fees\",\"sender\":\"The address that collects the protocol fees\"}},\"Flash(address,address,uint256,uint256,uint256,uint256)\":{\"params\":{\"amount0\":\"The amount of token0 that was flashed\",\"amount1\":\"The amount of token1 that was flashed\",\"paid0\":\"The amount of token0 paid for the flash, which can exceed the amount0 plus the fee\",\"paid1\":\"The amount of token1 paid for the flash, which can exceed the amount1 plus the fee\",\"recipient\":\"The address that received the tokens from flash\",\"sender\":\"The address that initiated the swap call, and that received the callback\"}},\"IncreaseObservationCardinalityNext(uint16,uint16)\":{\"details\":\"observationCardinalityNext is not the observation cardinality until an observation is written at the index just before a mint/swap/burn.\",\"params\":{\"observationCardinalityNextNew\":\"The updated value of the next observation cardinality\",\"observationCardinalityNextOld\":\"The previous value of the next observation cardinality\"}},\"Initialize(uint160,int24)\":{\"details\":\"Mint/Burn/Swap cannot be emitted by the pool before Initialize\",\"params\":{\"sqrtPriceX96\":\"The initial sqrt price of the pool, as a Q64.96\",\"tick\":\"The initial tick of the pool, i.e. log base 1.0001 of the starting price of the pool\"}},\"Mint(address,address,int24,int24,uint128,uint256,uint256)\":{\"params\":{\"amount\":\"The amount of liquidity minted to the position range\",\"amount0\":\"How much token0 was required for the minted liquidity\",\"amount1\":\"How much token1 was required for the minted liquidity\",\"owner\":\"The owner of the position and recipient of any minted liquidity\",\"sender\":\"The address that minted the liquidity\",\"tickLower\":\"The lower tick of the position\",\"tickUpper\":\"The upper tick of the position\"}},\"SetFeeProtocol(uint8,uint8,uint8,uint8)\":{\"params\":{\"feeProtocol0New\":\"The updated value of the token0 protocol fee\",\"feeProtocol0Old\":\"The previous value of the token0 protocol fee\",\"feeProtocol1New\":\"The updated value of the token1 protocol fee\",\"feeProtocol1Old\":\"The previous value of the token1 protocol fee\"}},\"Swap(address,address,int256,int256,uint160,uint128,int24)\":{\"params\":{\"amount0\":\"The delta of the token0 balance of the pool\",\"amount1\":\"The delta of the token1 balance of the pool\",\"liquidity\":\"The liquidity of the pool after the swap\",\"recipient\":\"The address that received the output of the swap\",\"sender\":\"The address that initiated the swap call, and that received the callback\",\"sqrtPriceX96\":\"The sqrt(price) of the pool after the swap, as a Q64.96\",\"tick\":\"The log base 1.0001 of price of the pool after the swap\"}}},\"kind\":\"dev\",\"methods\":{},\"title\":\"Events emitted by a pool\",\"version\":1},\"userdoc\":{\"events\":{\"Burn(address,int24,int24,uint128,uint256,uint256)\":{\"notice\":\"Emitted when a position's liquidity is removed\"},\"Collect(address,address,int24,int24,uint128,uint128)\":{\"notice\":\"Emitted when fees are collected by the owner of a position\"},\"CollectProtocol(address,address,uint128,uint128)\":{\"notice\":\"Emitted when the collected protocol fees are withdrawn by the factory owner\"},\"Flash(address,address,uint256,uint256,uint256,uint256)\":{\"notice\":\"Emitted by the pool for any flashes of token0/token1\"},\"IncreaseObservationCardinalityNext(uint16,uint16)\":{\"notice\":\"Emitted by the pool for increases to the number of observations that can be stored\"},\"Initialize(uint160,int24)\":{\"notice\":\"Emitted exactly once by a pool when #initialize is first called on the pool\"},\"Mint(address,address,int24,int24,uint128,uint256,uint256)\":{\"notice\":\"Emitted when liquidity is minted for a given position\"},\"SetFeeProtocol(uint8,uint8,uint8,uint8)\":{\"notice\":\"Emitted when the protocol fee is changed by the pool\"},\"Swap(address,address,int256,int256,uint160,uint128,int24)\":{\"notice\":\"Emitted by the pool for any swaps between token0 and token1\"}},\"kind\":\"user\",\"methods\":{},\"notice\":\"Contains all events emitted by the pool\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"@airdao/astra-cl-core/contracts/interfaces/pool/IAstraCLPoolEvents.sol\":\"IAstraCLPoolEvents\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[]},\"sources\":{\"@airdao/astra-cl-core/contracts/interfaces/pool/IAstraCLPoolEvents.sol\":{\"keccak256\":\"0x33715230197f3b2e24a7d76c9b4ea78dacbde03d5b5e4614b118f59fad2ca004\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://1da6ef4e8c8549ea5836e040233afe78424b33de50bbf8a83bc521fc1ae0b7f5\",\"dweb:/ipfs/QmVt57cHvYNaQ94VrnTgRhDN81hq7zeV3UU1EQ3F8z2kw7\"]}},\"version\":1}"}},"@airdao/astra-cl-core/contracts/interfaces/pool/IAstraCLPoolImmutables.sol":{"IAstraCLPoolImmutables":{"abi":[{"inputs":[],"name":"factory","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"fee","outputs":[{"internalType":"uint24","name":"","type":"uint24"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxLiquidityPerTick","outputs":[{"internalType":"uint128","name":"","type":"uint128"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tickSpacing","outputs":[{"internalType":"int24","name":"","type":"int24"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"token0","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"token1","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"factory()":"c45a0155","fee()":"ddca3f43","maxLiquidityPerTick()":"70cf754a","tickSpacing()":"d0c93a7c","token0()":"0dfe1681","token1()":"d21220a7"}},"metadata":"{\"compiler\":{\"version\":\"0.7.6+commit.7338295f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"factory\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"fee\",\"outputs\":[{\"internalType\":\"uint24\",\"name\":\"\",\"type\":\"uint24\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"maxLiquidityPerTick\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"\",\"type\":\"uint128\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"tickSpacing\",\"outputs\":[{\"internalType\":\"int24\",\"name\":\"\",\"type\":\"int24\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"token0\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"token1\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"factory()\":{\"returns\":{\"_0\":\"The contract address\"}},\"fee()\":{\"returns\":{\"_0\":\"The fee\"}},\"maxLiquidityPerTick()\":{\"details\":\"This parameter is enforced per tick to prevent liquidity from overflowing a uint128 at any point, and also prevents out-of-range liquidity from being used to prevent adding in-range liquidity to a pool\",\"returns\":{\"_0\":\"The max amount of liquidity per tick\"}},\"tickSpacing()\":{\"details\":\"Ticks can only be used at multiples of this value, minimum of 1 and always positive e.g.: a tickSpacing of 3 means ticks can be initialized every 3rd tick, i.e., ..., -6, -3, 0, 3, 6, ... This value is an int24 to avoid casting even though it is always positive.\",\"returns\":{\"_0\":\"The tick spacing\"}},\"token0()\":{\"returns\":{\"_0\":\"The token contract address\"}},\"token1()\":{\"returns\":{\"_0\":\"The token contract address\"}}},\"title\":\"Pool state that never changes\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"factory()\":{\"notice\":\"The contract that deployed the pool, which must adhere to the IAstraCLFactory interface\"},\"fee()\":{\"notice\":\"The pool's fee in hundredths of a bip, i.e. 1e-6\"},\"maxLiquidityPerTick()\":{\"notice\":\"The maximum amount of position liquidity that can use any tick in the range\"},\"tickSpacing()\":{\"notice\":\"The pool tick spacing\"},\"token0()\":{\"notice\":\"The first of the two tokens of the pool, sorted by address\"},\"token1()\":{\"notice\":\"The second of the two tokens of the pool, sorted by address\"}},\"notice\":\"These parameters are fixed for a pool forever, i.e., the methods will always return the same values\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"@airdao/astra-cl-core/contracts/interfaces/pool/IAstraCLPoolImmutables.sol\":\"IAstraCLPoolImmutables\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[]},\"sources\":{\"@airdao/astra-cl-core/contracts/interfaces/pool/IAstraCLPoolImmutables.sol\":{\"keccak256\":\"0x366c9b646ed0a7e8a2ff3b01e61b078b0397b605459804948a3b5dbfadf87f07\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://4a211d5a178f08cd93b082fddd142fb144f4bc76a0d56f7bddc6b01b5433f864\",\"dweb:/ipfs/QmXbsAbdrcyiHZwksqvQ45m579Qc9C6ThPXQUttP72gUFa\"]}},\"version\":1}"}},"@airdao/astra-cl-core/contracts/interfaces/pool/IAstraCLPoolOwnerActions.sol":{"IAstraCLPoolOwnerActions":{"abi":[{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint128","name":"amount0Requested","type":"uint128"},{"internalType":"uint128","name":"amount1Requested","type":"uint128"}],"name":"collectProtocol","outputs":[{"internalType":"uint128","name":"amount0","type":"uint128"},{"internalType":"uint128","name":"amount1","type":"uint128"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"feeProtocol0","type":"uint8"},{"internalType":"uint8","name":"feeProtocol1","type":"uint8"}],"name":"setFeeProtocol","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"collectProtocol(address,uint128,uint128)":"85b66729","setFeeProtocol(uint8,uint8)":"8206a4d1"}},"metadata":"{\"compiler\":{\"version\":\"0.7.6+commit.7338295f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint128\",\"name\":\"amount0Requested\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"amount1Requested\",\"type\":\"uint128\"}],\"name\":\"collectProtocol\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"amount0\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"amount1\",\"type\":\"uint128\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"feeProtocol0\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"feeProtocol1\",\"type\":\"uint8\"}],\"name\":\"setFeeProtocol\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"collectProtocol(address,uint128,uint128)\":{\"params\":{\"amount0Requested\":\"The maximum amount of token0 to send, can be 0 to collect fees in only token1\",\"amount1Requested\":\"The maximum amount of token1 to send, can be 0 to collect fees in only token0\",\"recipient\":\"The address to which collected protocol fees should be sent\"},\"returns\":{\"amount0\":\"The protocol fee collected in token0\",\"amount1\":\"The protocol fee collected in token1\"}},\"setFeeProtocol(uint8,uint8)\":{\"params\":{\"feeProtocol0\":\"new protocol fee for token0 of the pool\",\"feeProtocol1\":\"new protocol fee for token1 of the pool\"}}},\"title\":\"Permissioned pool actions\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"collectProtocol(address,uint128,uint128)\":{\"notice\":\"Collect the protocol fee accrued to the pool\"},\"setFeeProtocol(uint8,uint8)\":{\"notice\":\"Set the denominator of the protocol's % share of the fees\"}},\"notice\":\"Contains pool methods that may only be called by the factory owner\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"@airdao/astra-cl-core/contracts/interfaces/pool/IAstraCLPoolOwnerActions.sol\":\"IAstraCLPoolOwnerActions\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[]},\"sources\":{\"@airdao/astra-cl-core/contracts/interfaces/pool/IAstraCLPoolOwnerActions.sol\":{\"keccak256\":\"0xf783673049e12e1f5ab4784c9ffdbaef66d4cd7709ac7c43af3ab163dfcc4819\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://c64e566d63ff5e1cf081d718e5356810fedce220a473330c20aef166275cd9a9\",\"dweb:/ipfs/QmdsBonXzuaiQC8BxYVCvmcWUtnkKzp873poeH6jbsuidP\"]}},\"version\":1}"}},"@airdao/astra-cl-core/contracts/interfaces/pool/IAstraCLPoolState.sol":{"IAstraCLPoolState":{"abi":[{"inputs":[],"name":"feeGrowthGlobal0X128","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"feeGrowthGlobal1X128","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidity","outputs":[{"internalType":"uint128","name":"","type":"uint128"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"name":"observations","outputs":[{"internalType":"uint32","name":"blockTimestamp","type":"uint32"},{"internalType":"int56","name":"tickCumulative","type":"int56"},{"internalType":"uint160","name":"secondsPerLiquidityCumulativeX128","type":"uint160"},{"internalType":"bool","name":"initialized","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"key","type":"bytes32"}],"name":"positions","outputs":[{"internalType":"uint128","name":"_liquidity","type":"uint128"},{"internalType":"uint256","name":"feeGrowthInside0LastX128","type":"uint256"},{"internalType":"uint256","name":"feeGrowthInside1LastX128","type":"uint256"},{"internalType":"uint128","name":"tokensOwed0","type":"uint128"},{"internalType":"uint128","name":"tokensOwed1","type":"uint128"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"protocolFees","outputs":[{"internalType":"uint128","name":"token0","type":"uint128"},{"internalType":"uint128","name":"token1","type":"uint128"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"slot0","outputs":[{"internalType":"uint160","name":"sqrtPriceX96","type":"uint160"},{"internalType":"int24","name":"tick","type":"int24"},{"internalType":"uint16","name":"observationIndex","type":"uint16"},{"internalType":"uint16","name":"observationCardinality","type":"uint16"},{"internalType":"uint16","name":"observationCardinalityNext","type":"uint16"},{"internalType":"uint8","name":"feeProtocol","type":"uint8"},{"internalType":"bool","name":"unlocked","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"int16","name":"wordPosition","type":"int16"}],"name":"tickBitmap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"int24","name":"tick","type":"int24"}],"name":"ticks","outputs":[{"internalType":"uint128","name":"liquidityGross","type":"uint128"},{"internalType":"int128","name":"liquidityNet","type":"int128"},{"internalType":"uint256","name":"feeGrowthOutside0X128","type":"uint256"},{"internalType":"uint256","name":"feeGrowthOutside1X128","type":"uint256"},{"internalType":"int56","name":"tickCumulativeOutside","type":"int56"},{"internalType":"uint160","name":"secondsPerLiquidityOutsideX128","type":"uint160"},{"internalType":"uint32","name":"secondsOutside","type":"uint32"},{"internalType":"bool","name":"initialized","type":"bool"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"feeGrowthGlobal0X128()":"f3058399","feeGrowthGlobal1X128()":"46141319","liquidity()":"1a686502","observations(uint256)":"252c09d7","positions(bytes32)":"514ea4bf","protocolFees()":"1ad8b03b","slot0()":"3850c7bd","tickBitmap(int16)":"5339c296","ticks(int24)":"f30dba93"}},"metadata":"{\"compiler\":{\"version\":\"0.7.6+commit.7338295f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"feeGrowthGlobal0X128\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"feeGrowthGlobal1X128\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"liquidity\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"\",\"type\":\"uint128\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"observations\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"blockTimestamp\",\"type\":\"uint32\"},{\"internalType\":\"int56\",\"name\":\"tickCumulative\",\"type\":\"int56\"},{\"internalType\":\"uint160\",\"name\":\"secondsPerLiquidityCumulativeX128\",\"type\":\"uint160\"},{\"internalType\":\"bool\",\"name\":\"initialized\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"key\",\"type\":\"bytes32\"}],\"name\":\"positions\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"_liquidity\",\"type\":\"uint128\"},{\"internalType\":\"uint256\",\"name\":\"feeGrowthInside0LastX128\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"feeGrowthInside1LastX128\",\"type\":\"uint256\"},{\"internalType\":\"uint128\",\"name\":\"tokensOwed0\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"tokensOwed1\",\"type\":\"uint128\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"protocolFees\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"token0\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"token1\",\"type\":\"uint128\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"slot0\",\"outputs\":[{\"internalType\":\"uint160\",\"name\":\"sqrtPriceX96\",\"type\":\"uint160\"},{\"internalType\":\"int24\",\"name\":\"tick\",\"type\":\"int24\"},{\"internalType\":\"uint16\",\"name\":\"observationIndex\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"observationCardinality\",\"type\":\"uint16\"},{\"internalType\":\"uint16\",\"name\":\"observationCardinalityNext\",\"type\":\"uint16\"},{\"internalType\":\"uint8\",\"name\":\"feeProtocol\",\"type\":\"uint8\"},{\"internalType\":\"bool\",\"name\":\"unlocked\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int16\",\"name\":\"wordPosition\",\"type\":\"int16\"}],\"name\":\"tickBitmap\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int24\",\"name\":\"tick\",\"type\":\"int24\"}],\"name\":\"ticks\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"liquidityGross\",\"type\":\"uint128\"},{\"internalType\":\"int128\",\"name\":\"liquidityNet\",\"type\":\"int128\"},{\"internalType\":\"uint256\",\"name\":\"feeGrowthOutside0X128\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"feeGrowthOutside1X128\",\"type\":\"uint256\"},{\"internalType\":\"int56\",\"name\":\"tickCumulativeOutside\",\"type\":\"int56\"},{\"internalType\":\"uint160\",\"name\":\"secondsPerLiquidityOutsideX128\",\"type\":\"uint160\"},{\"internalType\":\"uint32\",\"name\":\"secondsOutside\",\"type\":\"uint32\"},{\"internalType\":\"bool\",\"name\":\"initialized\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"feeGrowthGlobal0X128()\":{\"details\":\"This value can overflow the uint256\"},\"feeGrowthGlobal1X128()\":{\"details\":\"This value can overflow the uint256\"},\"liquidity()\":{\"details\":\"This value has no relationship to the total liquidity across all ticks\"},\"observations(uint256)\":{\"details\":\"You most likely want to use #observe() instead of this method to get an observation as of some amount of time ago, rather than at a specific index in the array.\",\"params\":{\"index\":\"The element of the observations array to fetch\"},\"returns\":{\"blockTimestamp\":\"The timestamp of the observation, Returns tickCumulative the tick multiplied by seconds elapsed for the life of the pool as of the observation timestamp, Returns secondsPerLiquidityCumulativeX128 the seconds per in range liquidity for the life of the pool as of the observation timestamp, Returns initialized whether the observation has been initialized and the values are safe to use\"}},\"positions(bytes32)\":{\"params\":{\"key\":\"The position's key is a hash of a preimage composed by the owner, tickLower and tickUpper\"},\"returns\":{\"_liquidity\":\"The amount of liquidity in the position, Returns feeGrowthInside0LastX128 fee growth of token0 inside the tick range as of the last mint/burn/poke, Returns feeGrowthInside1LastX128 fee growth of token1 inside the tick range as of the last mint/burn/poke, Returns tokensOwed0 the computed amount of token0 owed to the position as of the last mint/burn/poke, Returns tokensOwed1 the computed amount of token1 owed to the position as of the last mint/burn/poke\"}},\"protocolFees()\":{\"details\":\"Protocol fees will never exceed uint128 max in either token\"},\"slot0()\":{\"returns\":{\"sqrtPriceX96\":\"The current price of the pool as a sqrt(token1/token0) Q64.96 value tick The current tick of the pool, i.e. according to the last tick transition that was run. This value may not always be equal to SqrtTickMath.getTickAtSqrtRatio(sqrtPriceX96) if the price is on a tick boundary. observationIndex The index of the last oracle observation that was written, observationCardinality The current maximum number of observations stored in the pool, observationCardinalityNext The next maximum number of observations, to be updated when the observation. feeProtocol The protocol fee for both tokens of the pool. Encoded as two 4 bit values, where the protocol fee of token1 is shifted 4 bits and the protocol fee of token0 is the lower 4 bits. Used as the denominator of a fraction of the swap fee, e.g. 4 means 1/4th of the swap fee. unlocked Whether the pool is currently locked to reentrancy\"}},\"ticks(int24)\":{\"params\":{\"tick\":\"The tick to look up\"},\"returns\":{\"liquidityGross\":\"the total amount of position liquidity that uses the pool either as tick lower or tick upper, liquidityNet how much liquidity changes when the pool price crosses the tick, feeGrowthOutside0X128 the fee growth on the other side of the tick from the current tick in token0, feeGrowthOutside1X128 the fee growth on the other side of the tick from the current tick in token1, tickCumulativeOutside the cumulative tick value on the other side of the tick from the current tick secondsPerLiquidityOutsideX128 the seconds spent per liquidity on the other side of the tick from the current tick, secondsOutside the seconds spent on the other side of the tick from the current tick, initialized Set to true if the tick is initialized, i.e. liquidityGross is greater than 0, otherwise equal to false. Outside values can only be used if the tick is initialized, i.e. if liquidityGross is greater than 0. In addition, these values are only relative and must be used only in comparison to previous snapshots for a specific position.\"}}},\"title\":\"Pool state that can change\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"feeGrowthGlobal0X128()\":{\"notice\":\"The fee growth as a Q128.128 fees of token0 collected per unit of liquidity for the entire life of the pool\"},\"feeGrowthGlobal1X128()\":{\"notice\":\"The fee growth as a Q128.128 fees of token1 collected per unit of liquidity for the entire life of the pool\"},\"liquidity()\":{\"notice\":\"The currently in range liquidity available to the pool\"},\"observations(uint256)\":{\"notice\":\"Returns data about a specific observation index\"},\"positions(bytes32)\":{\"notice\":\"Returns the information about a position by the position's key\"},\"protocolFees()\":{\"notice\":\"The amounts of token0 and token1 that are owed to the protocol\"},\"slot0()\":{\"notice\":\"The 0th storage slot in the pool stores many values, and is exposed as a single method to save gas when accessed externally.\"},\"tickBitmap(int16)\":{\"notice\":\"Returns 256 packed tick initialized boolean values. See TickBitmap for more information\"},\"ticks(int24)\":{\"notice\":\"Look up information about a specific tick in the pool\"}},\"notice\":\"These methods compose the pool's state, and can change with any frequency including multiple times per transaction\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"@airdao/astra-cl-core/contracts/interfaces/pool/IAstraCLPoolState.sol\":\"IAstraCLPoolState\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[]},\"sources\":{\"@airdao/astra-cl-core/contracts/interfaces/pool/IAstraCLPoolState.sol\":{\"keccak256\":\"0xb41dbeb5a9faebd4222678080759032377f8dedf65388bfe1644dc6f2aaeef39\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://c7ebd43d4b1c485d5b536160d138b0206b985cf6c5f82c19dd945ff0d87ca350\",\"dweb:/ipfs/QmPuuoryMaBArNtHvNaY5PpDGmfNajoqjdyWBmGWCdbXkW\"]}},\"version\":1}"}},"@airdao/astra-cl-core/contracts/libraries/BitMath.sol":{"BitMath":{"abi":[],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"602d6023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c6343000706000a","opcodes":"PUSH1 0x2D PUSH1 0x23 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x16 JUMPI INVALID JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG1 PUSH5 0x736F6C6343 STOP SMOD MOD STOP EXP ","sourceMap":"187:2602:7:-:0;;;;;;;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c6343000706000a","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG1 PUSH5 0x736F6C6343 STOP SMOD MOD STOP EXP ","sourceMap":"187:2602:7:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.7.6+commit.7338295f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"This library provides functionality for computing bit properties of an unsigned integer\",\"kind\":\"dev\",\"methods\":{},\"title\":\"BitMath\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@airdao/astra-cl-core/contracts/libraries/BitMath.sol\":\"BitMath\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[]},\"sources\":{\"@airdao/astra-cl-core/contracts/libraries/BitMath.sol\":{\"keccak256\":\"0x82e425066110aac05ed8a9fc90f9ee85142b6f434769447e49d4438a8d9fcd82\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://77a97078bc992c18c59cb61e07fa4632c8a26b6babf00f3b16eabb5dcaa953b4\",\"dweb:/ipfs/QmTj15ufLWk6AxedSVXBcLp5cYf2DCJAeDi94cVemCkm54\"]}},\"version\":1}"}},"@airdao/astra-cl-core/contracts/libraries/FullMath.sol":{"FullMath":{"abi":[],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"602d6023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c6343000706000a","opcodes":"PUSH1 0x2D PUSH1 0x23 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x16 JUMPI INVALID JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG1 PUSH5 0x736F6C6343 STOP SMOD MOD STOP EXP ","sourceMap":"362:4702:8:-:0;;;;;;;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c6343000706000a","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG1 PUSH5 0x736F6C6343 STOP SMOD MOD STOP EXP ","sourceMap":"362:4702:8:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.7.6+commit.7338295f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Handles \\\"phantom overflow\\\" i.e., allows multiplication and division where an intermediate value overflows 256 bits\",\"kind\":\"dev\",\"methods\":{},\"title\":\"Contains 512-bit math functions\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Facilitates multiplication and division that can have overflow of an intermediate value without any loss of precision\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"@airdao/astra-cl-core/contracts/libraries/FullMath.sol\":\"FullMath\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[]},\"sources\":{\"@airdao/astra-cl-core/contracts/libraries/FullMath.sol\":{\"keccak256\":\"0x5340256039418f5d03512a44173d3dcf1da277a73a461e06fb5668f49cfc46f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://75dee99795d1125875233a7f1d356935099cc97b4085c0e451060d77db85d144\",\"dweb:/ipfs/QmTGqyrxVLQd8TBaarqSQDiYvq1QFutCdmTyXk6JpxzKTN\"]}},\"version\":1}"}},"@airdao/astra-cl-core/contracts/libraries/TickMath.sol":{"TickMath":{"abi":[],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"602d6023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c6343000706000a","opcodes":"PUSH1 0x2D PUSH1 0x23 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x16 JUMPI INVALID JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG1 PUSH5 0x736F6C6343 STOP SMOD MOD STOP EXP ","sourceMap":"313:8387:9:-:0;;;;;;;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c6343000706000a","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG1 PUSH5 0x736F6C6343 STOP SMOD MOD STOP EXP ","sourceMap":"313:8387:9:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.7.6+commit.7338295f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"stateVariables\":{\"MAX_SQRT_RATIO\":{\"details\":\"The maximum value that can be returned from #getSqrtRatioAtTick. Equivalent to getSqrtRatioAtTick(MAX_TICK)\"},\"MAX_TICK\":{\"details\":\"The maximum tick that may be passed to #getSqrtRatioAtTick computed from log base 1.0001 of 2**128\"},\"MIN_SQRT_RATIO\":{\"details\":\"The minimum value that can be returned from #getSqrtRatioAtTick. Equivalent to getSqrtRatioAtTick(MIN_TICK)\"},\"MIN_TICK\":{\"details\":\"The minimum tick that may be passed to #getSqrtRatioAtTick computed from log base 1.0001 of 2**-128\"}},\"title\":\"Math library for computing sqrt prices from ticks and vice versa\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Computes sqrt price for ticks of size 1.0001, i.e. sqrt(1.0001^tick) as fixed point Q64.96 numbers. Supports prices between 2**-128 and 2**128\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"@airdao/astra-cl-core/contracts/libraries/TickMath.sol\":\"TickMath\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[]},\"sources\":{\"@airdao/astra-cl-core/contracts/libraries/TickMath.sol\":{\"keccak256\":\"0xe22d07f1ebf9c8468c81cb6905bfc8f8a54fa2f9b4a50742202a47cdbcb5af80\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://d4773ca5008d2a2f496370695942c8ba3d6e1d487adbf5cda1149da12e3a6268\",\"dweb:/ipfs/QmcPYTLpEWfU8e3KAYBfHH7uYR4tGAkvnWrWS1CG8EkyLC\"]}},\"version\":1}"}},"@openzeppelin/contracts/math/SafeMath.sol":{"SafeMath":{"abi":[],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"602d6023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c6343000706000a","opcodes":"PUSH1 0x2D PUSH1 0x23 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x16 JUMPI INVALID JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG1 PUSH5 0x736F6C6343 STOP SMOD MOD STOP EXP ","sourceMap":"622:6594:10:-:0;;;;;;;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c6343000706000a","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG1 PUSH5 0x736F6C6343 STOP SMOD MOD STOP EXP ","sourceMap":"622:6594:10:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.7.6+commit.7338295f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Wrappers over Solidity's arithmetic operations with added overflow checks. Arithmetic operations in Solidity wrap on overflow. This can easily result in bugs, because programmers usually assume that an overflow raises an error, which is the standard behavior in high level programming languages. `SafeMath` restores this intuition by reverting the transaction when an operation overflows. Using this library instead of the unchecked operations eliminates an entire class of bugs, so it's recommended to use it always.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/math/SafeMath.sol\":\"SafeMath\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/math/SafeMath.sol\":{\"keccak256\":\"0xe22a1fc7400ae196eba2ad1562d0386462b00a6363b742d55a2fd2021a58586f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4a635cec58fb4141a16cfd408f1a21ac944c335a3beaba541c35d2e95c04536f\",\"dweb:/ipfs/QmXWcz73UenN1ji8jiWMbzxHjjfLbNQwLVKTEB5zNFE34K\"]}},\"version\":1}"}},"@openzeppelin/contracts/math/SignedSafeMath.sol":{"SignedSafeMath":{"abi":[],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"602d6023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c6343000706000a","opcodes":"PUSH1 0x2D PUSH1 0x23 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x16 JUMPI INVALID JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG1 PUSH5 0x736F6C6343 STOP SMOD MOD STOP EXP ","sourceMap":"163:2495:11:-:0;;;;;;;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c6343000706000a","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG1 PUSH5 0x736F6C6343 STOP SMOD MOD STOP EXP ","sourceMap":"163:2495:11:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.7.6+commit.7338295f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Signed math operations with safety checks that revert on error.\",\"kind\":\"dev\",\"methods\":{},\"title\":\"SignedSafeMath\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/math/SignedSafeMath.sol\":\"SignedSafeMath\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/math/SignedSafeMath.sol\":{\"keccak256\":\"0xba085261d44cf28d2583f7c8cdb2f0a6a495ff1a640f86d995ea9d36b42b0046\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://03481543f67d854c94f73b006609ccd0e11a2461837296bf9d27b14b4bde7de6\",\"dweb:/ipfs/QmVt8ZoWv6jPdtoo5zikqrj7ijDvKoQ4BWYiufctStkXd3\"]}},\"version\":1}"}},"@openzeppelin/contracts/utils/Strings.sol":{"Strings":{"abi":[],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"602d6023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c6343000706000a","opcodes":"PUSH1 0x2D PUSH1 0x23 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x16 JUMPI INVALID JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG1 PUSH5 0x736F6C6343 STOP SMOD MOD STOP EXP ","sourceMap":"93:836:12:-:0;;;;;;;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c6343000706000a","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG1 PUSH5 0x736F6C6343 STOP SMOD MOD STOP EXP ","sourceMap":"93:836:12:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.7.6+commit.7338295f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"String operations.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/Strings.sol\":\"Strings\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0x08e38e034333372aea8cb1b8846085b7fbab42c6b77a0af464d2c6827827c4f0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://22746e9348187309fb4fbd3f79f6ad88787103eac10f24bd18f67257fafdd8ad\",\"dweb:/ipfs/QmSLXfXg8b27Xstq58DFGvCpqgtTqpfrGbLMq19PtEKQJS\"]}},\"version\":1}"}},"base64-sol/base64.sol":{"Base64":{"abi":[],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"602d6023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c6343000706000a","opcodes":"PUSH1 0x2D PUSH1 0x23 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x16 JUMPI INVALID JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG1 PUSH5 0x736F6C6343 STOP SMOD MOD STOP EXP ","sourceMap":"166:2114:13:-:0;;;;;;;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c6343000706000a","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG1 PUSH5 0x736F6C6343 STOP SMOD MOD STOP EXP ","sourceMap":"166:2114:13:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.7.6+commit.7338295f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"author\":\"Brecht Devos - <brecht@loopring.org>\",\"kind\":\"dev\",\"methods\":{},\"title\":\"Base64\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Provides a function for encoding some bytes in base64\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"base64-sol/base64.sol\":\"Base64\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[]},\"sources\":{\"base64-sol/base64.sol\":{\"keccak256\":\"0x0c8ad17afea99676d4dbab1857f52a7660b67602a79d03abd0a4c742074bbeb3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://692d64ac089a389d2e955d92c75e9f3ee642257a39c91c2efa7493a21e79d61a\",\"dweb:/ipfs/QmVSGRBRjeh4APNHjHD5GbYY7BrBhWRj8aHkmqHJQwQiK1\"]}},\"version\":1}"}},"contracts/libraries/HexStrings.sol":{"HexStrings":{"abi":[],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"602d6023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c6343000706000a","opcodes":"PUSH1 0x2D PUSH1 0x23 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x16 JUMPI INVALID JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG1 PUSH5 0x736F6C6343 STOP SMOD MOD STOP EXP ","sourceMap":"57:1154:14:-:0;;;;;;;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c6343000706000a","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG1 PUSH5 0x736F6C6343 STOP SMOD MOD STOP EXP ","sourceMap":"57:1154:14:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.7.6+commit.7338295f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/libraries/HexStrings.sol\":\"HexStrings\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[]},\"sources\":{\"contracts/libraries/HexStrings.sol\":{\"keccak256\":\"0x667d05bd5eb87dd445aee26790f8a96ad1fb339f324be97f85f20d6697533ebc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0deb463c872c0befbc355adabf6eedc42fdddbcbc43ec9baaa7a51fd7422992c\",\"dweb:/ipfs/QmW3Q9jSUCijLet37aLrV4jJcR5ZR3WgUhM3uCf9dDyeFC\"]}},\"version\":1}"}},"contracts/libraries/NFTDescriptor.sol":{"NFTDescriptor":{"abi":[{"inputs":[{"components":[{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"address","name":"quoteTokenAddress","type":"address"},{"internalType":"address","name":"baseTokenAddress","type":"address"},{"internalType":"string","name":"quoteTokenSymbol","type":"string"},{"internalType":"string","name":"baseTokenSymbol","type":"string"},{"internalType":"uint8","name":"quoteTokenDecimals","type":"uint8"},{"internalType":"uint8","name":"baseTokenDecimals","type":"uint8"},{"internalType":"bool","name":"flipRatio","type":"bool"},{"internalType":"int24","name":"tickLower","type":"int24"},{"internalType":"int24","name":"tickUpper","type":"int24"},{"internalType":"int24","name":"tickCurrent","type":"int24"},{"internalType":"int24","name":"tickSpacing","type":"int24"},{"internalType":"uint24","name":"fee","type":"uint24"},{"internalType":"address","name":"poolAddress","type":"address"}],"internalType":"struct NFTDescriptor.ConstructTokenURIParams","name":"params","type":"tuple"}],"name":"constructTokenURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"615fdd610026600b82828239805160001a60731461001957fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600436106100355760003560e01c8063c49917d71461003a575b600080fd5b61004d610048366004613f08565b610063565b60405161005a919061464a565b60405180910390f35b6060600061007e83610079856101800151610170565b6103d1565b905060006100b2610092856060015161048c565b61009f866080015161048c565b6100ad876101a00151610644565b61065a565b905060006101006100c6866000015161068c565b6100d3876080015161048c565b6100e08860200151610644565b6100ed8960400151610644565b6100fb8a6101800151610170565b610767565b905060006101156101108761079d565b6109d8565b9050610145848484846040516020016101319493929190614179565b6040516020818303038152906040526109d8565b6040516020016101559190614605565b6040516020818303038152906040529450505050505b919050565b606062ffffff82166101b6575060408051808201909152600281527f3025000000000000000000000000000000000000000000000000000000000000602082015261016b565b816000805b62ffffff8316156102065760ff8116156101d7576001016101f0565b600a62ffffff84160662ffffff166000146101f0576001015b600190910190600a62ffffff84160492506101bb565b61020e613e02565b60006005841061030357600060046102298660ff8716610b5d565b1015610236576001610239565b60005b60ff908116915061024d9085166001610b5d565b610258866005610b5d565b106102845761027f61026e60ff86166001610b5d565b610279876005610b5d565b90610b5d565b610287565b60005b60ff8516608085018190529092506102a6906001906102799085610bba565b60ff90811660a085015260808401516102cd9183916102c791166001610b5d565b90610bba565b60ff90811660408501526102f59082906102c7906102ee9088166001610bba565b8590610bba565b60ff16602084015250610373565b61030e600585610b5d565b60026080840181905290915061032c90600190610279908490610bba565b60ff90811660a084015261034e906103479085166002610bba565b8290610bba565b60ff1660208301819052610363906002610b5d565b60ff166040830152600160c08301525b6103926103838560ff8616610b5d565b62ffffff891690600a0a610c14565b8252600160e0830152600484116103aa5760006103b5565b6103b5846004610b5d565b60ff1660608301526103c682610c7b565b979650505050505050565b6060816103e1846060015161048c565b6103ee856080015161048c565b6104278660e00151156104065786610120015161040d565b8661010001515b8761016001518860c001518960a001518a60e00151610ea7565b6104608760e001511561043f57876101000151610446565b8761012001515b8861016001518960c001518a60a001518b60e00151610ea7565b6040516020016104749594939291906142a0565b60405160208183030381529060405290505b92915050565b6060816000805b82518160ff1610156104f057828160ff16815181106104ae57fe5b6020910101517fff0000000000000000000000000000000000000000000000000000000000000016601160f91b14156104e8576001909101905b600101610493565b5060ff81161561063c5760008160ff1683510167ffffffffffffffff8111801561051957600080fd5b506040519080825280601f01601f191660200182016040528015610544576020820181803683370190505b5090506000805b84518160ff16101561062f57848160ff168151811061056657fe5b6020910101517fff0000000000000000000000000000000000000000000000000000000000000016601160f91b14156105e4577f5c000000000000000000000000000000000000000000000000000000000000008383806001019450815181106105cc57fe5b60200101906001600160f81b031916908160001a9053505b848160ff16815181106105f357fe5b602001015160f81c60f81b83838060010194508151811061061057fe5b60200101906001600160f81b031916908160001a90535060010161054b565b508194505050505061016b565b509192915050565b60606104866001600160a01b0383166014610fd1565b60608383838660405160200161067394939291906144b9565b60405160208183030381529060405290505b9392505050565b6060816106b157506040805180820190915260018152600360fc1b602082015261016b565b8160005b81156106c957600101600a820491506106b5565b60008167ffffffffffffffff811180156106e257600080fd5b506040519080825280601f01601f19166020018201604052801561070d576020820181803683370190505b50859350905060001982015b831561075e57600a840660300160f81b8282806001900393508151811061073c57fe5b60200101906001600160f81b031916908160001a905350600a84049350610719565b50949350505050565b606083858484896040516020016107829594939291906143a1565b60405160208183030381529060405290505b95945050505050565b60606000604051806102a001604052806107ba8560200151610644565b81526020016107cc8560400151610644565b8152602001846101a001516001600160a01b031681526020018460600151815260200184608001518152602001610807856101800151610170565b815260200184610100015160020b815260200184610120015160020b815260200184610160015160020b8152602001610850856101000151866101200151876101400151611159565b60000b81526020018460000151815260200161087a85602001516001600160a01b03166088611190565b815260200161089785604001516001600160a01b03166088611190565b81526020016108b485602001516001600160a01b03166000611190565b81526020016108d185604001516001600160a01b03166000611190565b81526020016109046108f686602001516001600160a01b03166010886000015161119f565b600060ff60106101126111bf565b815260200161093761092986604001516001600160a01b03166010886000015161119f565b600060ff60646101e46111bf565b815260200161095c6108f686602001516001600160a01b03166020886000015161119f565b815260200161098161092986604001516001600160a01b03166020886000015161119f565b81526020016109a66108f686602001516001600160a01b03166030886000015161119f565b81526020016109cb61092986604001516001600160a01b03166030886000015161119f565b9052905061068581611207565b60608151600014156109f9575060408051602081019091526000815261016b565b600060405180606001604052806040815260200161526b60409139905060006003845160020181610a2657fe5b04600402905060008160200167ffffffffffffffff81118015610a4857600080fd5b506040519080825280601f01601f191660200182016040528015610a73576020820181803683370190505b509050818152600183018586518101602084015b81831015610ae15760039283018051603f601282901c811687015160f890811b8552600c83901c8216880151811b6001860152600683901c8216880151811b60028601529116860151901b93820193909352600401610a87565b600389510660018114610afb5760028114610b2757610b4f565b7f3d3d000000000000000000000000000000000000000000000000000000000000600119830152610b4f565b7f3d000000000000000000000000000000000000000000000000000000000000006000198301525b509398975050505050505050565b600082821115610bb4576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b600082820183811015610685576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6000808211610c6a576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b818381610c7357fe5b049392505050565b60606000826020015160ff1667ffffffffffffffff81118015610c9d57600080fd5b506040519080825280601f01601f191660200182016040528015610cc8576020820181803683370190505b5090508260e0015115610d1e577f250000000000000000000000000000000000000000000000000000000000000081600183510381518110610d0657fe5b60200101906001600160f81b031916908160001a9053505b8260c0015115610d7b57600360fc1b81600081518110610d3a57fe5b60200101906001600160f81b031916908160001a905350601760f91b81600181518110610d6357fe5b60200101906001600160f81b031916908160001a9053505b608083015160ff165b60a0840151610d979060ff166001610bba565b811015610dce57603060f81b828281518110610daf57fe5b60200101906001600160f81b031916908160001a905350600101610d84565b505b825115610486576000836060015160ff16118015610dfb5750826060015160ff16836040015160ff16145b15610e3e5760408301805160ff600019820181169092528251601760f91b92849216908110610e2657fe5b60200101906001600160f81b031916908160001a9053505b8251610e5090603090600a9006610bba565b60f81b818460400180518091906001900360ff1660ff1681525060ff1681518110610e7757fe5b60200101906001600160f81b031916908160001a905350600a8360000181815181610e9e57fe5b04905250610dd0565b606084600281900b620d89e71981610ebb57fe5b050260020b8660020b1415610f15578115610ef1576040518060400160405280600381526020016209a82b60eb1b815250610f0e565b6040518060400160405280600381526020016226a4a760e91b8152505b9050610794565b84600281900b620d89e881610f2657fe5b050260020b8660020b1415610f7c578115610f5c576040518060400160405280600381526020016226a4a760e91b815250610f0e565b5060408051808201909152600381526209a82b60eb1b6020820152610794565b6000610f8787611496565b90508215610fbe57610fbb78010000000000000000000000000000000000000000000000006001600160a01b038316610c14565b90505b610fc98186866117e4565b915050610794565b606060008260020260020167ffffffffffffffff81118015610ff257600080fd5b506040519080825280601f01601f19166020018201604052801561101d576020820181803683370190505b509050600360fc1b8160008151811061103257fe5b60200101906001600160f81b031916908160001a9053507f78000000000000000000000000000000000000000000000000000000000000008160018151811061107757fe5b60200101906001600160f81b031916908160001a905350600160028402015b6001811115611105577f303132333435363738396162636465660000000000000000000000000000000085600f16601081106110ce57fe5b1a60f81b8282815181106110de57fe5b60200101906001600160f81b031916908160001a90535060049490941c9360001901611096565b508315610685576040805162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e74604482015290519081900360640190fd5b60008360020b8260020b12156111725750600019610685565b8260020b8260020b131561118857506001610685565b506000610685565b606061068583831c60036119b2565b600060ff826111ae8686611a79565b02816111b657fe5b06949350505050565b60606111fd6111f8846102c76111d5888a610b5d565b6111f26111e2888a610b5d565b6111ec8d8d610b5d565b90611a80565b90610c14565b61068c565b9695505050505050565b606061121282611ad9565b61122e836000015184602001518560600151866080015161218d565b611245846060015185608001518660a001516124b8565b6112638560c001518660e00151876101000151886101200151612608565b61128361127487610140015161068c565b8760c001518860e0015161295b565b6112968761014001518860400151612d8c565b6040516020018087805190602001908083835b602083106112c85780518252601f1990920191602091820191016112a9565b51815160209384036101000a600019018019909216911617905289519190930192890191508083835b602083106113105780518252601f1990920191602091820191016112f1565b51815160209384036101000a600019018019909216911617905288519190930192880191508083835b602083106113585780518252601f199092019160209182019101611339565b51815160209384036101000a600019018019909216911617905287519190930192870191508083835b602083106113a05780518252601f199092019160209182019101611381565b51815160209384036101000a600019018019909216911617905286519190930192860191508083835b602083106113e85780518252601f1990920191602091820191016113c9565b51815160209384036101000a600019018019909216911617905285519190930192850191508083835b602083106114305780518252601f199092019160209182019101611411565b5181516020939093036101000a60001901801990911692169190911790527f3c2f7376673e000000000000000000000000000000000000000000000000000092019182525060408051808303601919018152600690920190529998505050505050505050565b60008060008360020b126114ad578260020b6114b5565b8260020b6000035b9050620d89e881111561150f576040805162461bcd60e51b815260206004820152600160248201527f5400000000000000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b60006001821661152357600160801b611535565b6ffffcb933bd6fad37aa2d162d1a5940015b70ffffffffffffffffffffffffffffffffff1690506002821615611569576ffff97272373d413259a46990580e213a0260801c5b6004821615611588576ffff2e50f5f656932ef12357cf3c7fdcc0260801c5b60088216156115a7576fffe5caca7e10e4e61c3624eaa0941cd00260801c5b60108216156115c6576fffcb9843d60f6159c9db58835c9266440260801c5b60208216156115e5576fff973b41fa98c081472e6896dfb254c00260801c5b6040821615611604576fff2ea16466c96a3843ec78b326b528610260801c5b6080821615611623576ffe5dee046a99a2a811c461f1969c30530260801c5b610100821615611643576ffcbe86c7900a88aedcffc83b479aa3a40260801c5b610200821615611663576ff987a7253ac413176f2b074cf7815e540260801c5b610400821615611683576ff3392b0822b70005940c7a398e4b70f30260801c5b6108008216156116a3576fe7159475a2c29b7443b29c7fa6e889d90260801c5b6110008216156116c3576fd097f3bdfd2022b8845ad8f792aa58250260801c5b6120008216156116e3576fa9f746462d870fdf8a65dc1f90e061e50260801c5b614000821615611703576f70d869a156d2a1b890bb3df62baf32f70260801c5b618000821615611723576f31be135f97d08fd981231505542fcfa60260801c5b62010000821615611744576f09aa508b5b7a84e1c677de54f3e99bc90260801c5b62020000821615611764576e5d6af8dedb81196699c329225ee6040260801c5b62040000821615611783576d2216e584f5fa1ea926041bedfe980260801c5b620800008216156117a0576b048a170391f7dc42444e8fa20260801c5b60008460020b13156117bb5780600019816117b757fe5b0490505b6401000000008106156117cf5760016117d2565b60005b60ff16602082901c0192505050919050565b606060006117f3858585612e04565b9050600061180b828368010000000000000000612f06565b90506c010000000000000000000000008210801561184c576118458272047bf19673df52e37f2410011d100000000000600160801b612f06565b9150611861565b61185e82620186a0600160801b612f06565b91505b8160005b811561187957600101600a82049150611865565b6000190160008061188a8684612fb5565b91509150801561189b576001909201915b6118a3613e02565b8515611910576118c26118ba602b60ff8716610b5d565b600790610bba565b60ff9081166020830152600260808301526118e8906001906102c790602b908816610b5d565b60ff90811660a0830152602082015161190391166001610b5d565b60ff166040820152611987565b60098460ff16106119595761192960ff85166004610b5d565b60ff166020820181905260056080830152611945906001610b5d565b60ff1660a082015260046040820152611987565b6006602082015260056040820181905261197e906001906102c79060ff881690610b5d565b60ff1660608201525b82815285151560c0820152600060e08201526119a281610c7b565b9c9b505050505050505050505050565b606060008260020267ffffffffffffffff811180156119d057600080fd5b506040519080825280601f01601f1916602001820160405280156119fb576020820181803683370190505b5080519091505b8015611a71577f303132333435363738396162636465660000000000000000000000000000000085600f1660108110611a3757fe5b1a60f81b826001830381518110611a4a57fe5b60200101906001600160f81b031916908160001a90535060049490941c9360001901611a02565b509392505050565b1c60ff1690565b600082611a8f57506000610486565b82820282848281611a9c57fe5b04146106855760405162461bcd60e51b815260040180806020018281038252602181526020018061548a6021913960400191505060405180910390fd5b6060611b6e82610160015160405160200180806150446081913960810182805190602001908083835b60208310611b215780518252601f199092019160209182019101611b02565b6001836020036101000a038019825116818451168082178552505050505050905001806813979f1e17b9bb339f60b91b8152506009019150506040516020818303038152906040526109d8565b611cda836101e001518461020001518561018001516040516020018080614b816063913960630184805190602001908083835b60208310611bc05780518252601f199092019160209182019101611ba1565b51815160209384036101000a600019018019909216911617905265272063793d2760d01b919093019081528551600690910192860191508083835b60208310611c1a5780518252601f199092019160209182019101611bfb565b51815160209384036101000a60001901801990921691161790527f2720723d273132307078272066696c6c3d272300000000000000000000000000919093019081528451601390910192850191508083835b60208310611c8b5780518252601f199092019160209182019101611c6c565b6001836020036101000a038019825116818451168082178552505050505050905001806813979f1e17b9bb339f60b91b81525060090193505050506040516020818303038152906040526109d8565b611d2b846102200151856102400151866101a001516040516020018080614b8160639139606301848051906020019080838360208310611bc05780518252601f199092019160209182019101611ba1565b611e4a856102600151866102800151876101c001516040516020018080614b816063913960630184805190602001908083835b60208310611d7d5780518252601f199092019160209182019101611d5e565b51815160209384036101000a600019018019909216911617905265272063793d2760d01b919093019081528551600690910192860191508083835b60208310611dd75780518252601f199092019160209182019101611db8565b51815160001960209485036101000a019081169019919091161790527f2720723d273130307078272066696c6c3d272300000000000000000000000000939091019283528451601390930192908501915080838360208310611c8b5780518252601f199092019160209182019101611c6c565b6101608601516040516020018060566148fc8239605601602c6152ab82397f3c646566733e0000000000000000000000000000000000000000000000000000602c820152603201604b614ff98239604b0186805190602001908083835b60208310611ec65780518252601f199092019160209182019101611ea7565b6001836020036101000a03801982511681845116808217855250505050505090500180615b31603e9139603e0185805190602001908083835b60208310611f1e5780518252601f199092019160209182019101611eff565b6001836020036101000a038019825116818451168082178552505050505050905001806150c5603e9139603e0184805190602001908083835b60208310611f765780518252601f199092019160209182019101611f57565b5181516020939093036101000a60001901801990911692169190911790527f22202f3e00000000000000000000000000000000000000000000000000000000920191825250600401603b6147f48239603b0183805190602001908083835b60208310611ff35780518252601f199092019160209182019101611fd4565b6001836020036101000a03801982511681845116808217855250505050505090500180614c4160999139609901607f6156e28239607f016088615aa982396088016041614cda8239604101605d615c698239605d01607261578e8239607201604961475d823960490160be614f3b823960be016071614a0d8239607101607561562582396075016066614d1b823960660160a46152d7823960a4016085615b6f82397f3c6720636c69702d706174683d2275726c2823636f726e65727329223e00000060858201527f3c726563742066696c6c3d22000000000000000000000000000000000000000060a2820152825160ae9091019060208401908083835b602083106121115780518252601f1990920191602091820191016120f2565b6001836020036101000a03801982511681845116808217855250505050505090500180614d8160319139603101604e6147a68239604e01605d614be48239605d01604161522a8239604101605261510382396052016075615bf48239607501955050505050506040516020818303038152906040529050919050565b60608382858488878a896040516020018080615d4c60259139602501607d614ebe8239607d0189805190602001908083835b602083106121de5780518252601f1990920191602091820191016121bf565b51815160209384036101000a600019018019909216911617905264010714051160dd1b919093019081528a516005909101928b0191508083835b602083106122375780518252601f199092019160209182019101612218565b6001836020036101000a03801982511681845116808217855250505050505090500180614db2607991396079016086615cc6823960860187805190602001908083835b602083106122995780518252601f19909201916020918201910161227a565b51815160209384036101000a600019018019909216911617905264010714051160dd1b919093019081528851600590910192890191508083835b602083106122f25780518252601f1990920191602091820191016122d3565b6001836020036101000a0380198251168184511680821785525050505050509050018061498860859139608501607b6159178239607b0185805190602001908083835b602083106123545780518252601f199092019160209182019101612335565b51815160209384036101000a600019018019909216911617905264010714051160dd1b919093019081528651600590910192870191508083835b602083106123ad5780518252601f19909201916020918201910161238e565b6001836020036101000a03801982511681845116808217855250505050505090500180614ad2605d9139605d0160a3615582823960a30183805190602001908083835b6020831061240f5780518252601f1990920191602091820191016123f0565b51815160209384036101000a600019018019909216911617905264010714051160dd1b919093019081528451600590910192850191508083835b602083106124685780518252601f199092019160209182019101612449565b6001836020036101000a038019825116818451168082178552505050505050905001806146d2608b9139608b01985050505050505050506040516020818303038152906040529050949350505050565b6060838383604051602001808061482f60cd913960cd0184805190602001908083835b602083106124fa5780518252601f1990920191602091820191016124db565b6001836020036101000a03801982511681845116808217855250505050505090500180602f60f81b81525060010183805190602001908083835b602083106125535780518252601f199092019160209182019101612534565b6001836020036101000a03801982511681845116808217855250505050505090500180615ef56077913960770182805190602001908083835b602083106125ab5780518252601f19909201916020918201910161258c565b5181516020939093036101000a60001901801990911692169190911790526a1e17ba32bc3a1f1e17b39f60a91b920191825250600b016073615d958239607301935050505060405160208183030381529060405290509392505050565b606060008260000b60011461269a578260000b6000191461265e576040518060400160405280600581526020017f236e6f6e65000000000000000000000000000000000000000000000000000000815250612695565b6040518060400160405280600a81526020017f23666164652d646f776e000000000000000000000000000000000000000000008152505b6126d1565b6040518060400160405280600881526020017f23666164652d75700000000000000000000000000000000000000000000000008152505b905060006126e0878787613026565b9050818183836126ef88613274565b60405160200180807f3c67206d61736b3d2275726c2800000000000000000000000000000000000000815250600d0186805190602001908083835b602083106127495780518252601f19909201916020918201910161272a565b5181516020939093036101000a600019018019909116921691909117905261149160f11b920191825250600201607761537b823960770185805190602001908083835b602083106127ab5780518252601f19909201916020918201910161278c565b6001836020036101000a03801982511681845116808217855250505050505090500180614a7e60549139605401807f3c2f673e3c67206d61736b3d2275726c2800000000000000000000000000000081525060110184805190602001908083835b6020831061282b5780518252601f19909201916020918201910161280c565b5181516020939093036101000a600019018019909116921691909117905261149160f11b92019182525060020160296153f2823960290160456154458239604501807f3c7061746820643d22000000000000000000000000000000000000000000000081525060090183805190602001908083835b602083106128bf5780518252601f1990920191602091820191016128a0565b6001836020036101000a0380198251168184511680821785525050505050509050018061569a6048913960480182805190602001908083835b602083106129175780518252601f1990920191602091820191016128f8565b6001836020036101000a0380198251168184511680821785525050505050509050019550505050505060405160208183030381529060405292505050949350505050565b6060600061296884613748565b9050600061297584613748565b865183518251929350600490910191600a91820191016000806129988a8a613852565b915091506129ab8560040160070261068c565b8b6129bb8660040160070261068c565b896129cb8760040160070261068c565b8a87876040516020018080615761602d9139602d01806c1e3932b1ba103bb4b23a341e9160991b815250600d0189805190602001908083835b60208310612a235780518252601f199092019160209182019101612a04565b6001836020036101000a03801982511681845116808217855250505050505090500180615155603d9139603d01608d615e088239608d0188805190602001908083835b60208310612a855780518252601f199092019160209182019101612a66565b5181516020939093036101000a60001901801990911692169190911790526a1e17ba32bc3a1f1e17b39f60a91b920191825250600b01602d615fa48239602d01806c1e3932b1ba103bb4b23a341e9160991b815250600d0187805190602001908083835b60208310612b085780518252601f199092019160209182019101612ae9565b6001836020036101000a03801982511681845116808217855250505050505090500180615155603d9139603d016093614e2b823960930186805190602001908083835b60208310612b6a5780518252601f199092019160209182019101612b4b565b5181516020939093036101000a60001901801990911692169190911790526a1e17ba32bc3a1f1e17b39f60a91b920191825250600b01602d614b2f8239602d01806c1e3932b1ba103bb4b23a341e9160991b815250600d0185805190602001908083835b60208310612bed5780518252601f199092019160209182019101612bce565b6001836020036101000a03801982511681845116808217855250505050505090500180615155603d9139603d016093615992823960930184805190602001908083835b60208310612c4f5780518252601f199092019160209182019101612c30565b6001836020036101000a03801982511681845116808217855250505050505090500180615f6c603891396038016060615e958239606001606461551e82396064016025614b5c823960250183805190602001908083835b60208310612cc55780518252601f199092019160209182019101612ca6565b51815160209384036101000a60001901801990921691161790527f70782c2000000000000000000000000000000000000000000000000000000000919093019081528451600490910192850191508083835b60208310612d365780518252601f199092019160209182019101612d17565b6001836020036101000a0380198251168184511680821785525050505050509050018061495260369139603601985050505050505050506040516020818303038152906040529750505050505050509392505050565b6060612d988383613c83565b15612dee5760405160200180608d61588a8239608d0160736154ab823960730160716151b98239607101608a6158008239608a016084615a25823960840190506040516020818303038152906040529050610486565b5060408051602081019091526000815292915050565b600080612e1f612e1a60ff868116908616613ce6565b613d4b565b9050600081118015612e32575060128111155b15612ef3578260ff168460ff161115612e9c57612e66612e53826002610c14565b6001600160a01b03871690600a0a611a80565b91506002810660011415612e9757612e94827003298b075b4b6a5240945790619b37fd4a600160801b612f06565b91505b612eee565b612ebd612eaa826002610c14565b6001600160a01b03871690600a0a610c14565b91506002810660011415612eee57612eeb82600160801b7003298b075b4b6a5240945790619b37fd4a612f06565b91505b611a71565b50506001600160a01b0390921692915050565b6000808060001985870986860292508281109083900303905080612f3c5760008411612f3157600080fd5b508290049050610685565b808411612f4857600080fd5b6000848688096000868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010186841190950394909402919094039290920491909117919091029150509392505050565b600080600060058460ff161115612fdd57612fda8560ff600419870116600a0a610c14565b94505b60006004600a8706119050612ff386600a610c14565b95508015613002578560010195505b85620186a0141561301857600a86049550600191505b5084925090505b9250929050565b606060008260020b85850360020b8161303b57fe5b05905060048160020b13613086576040518060400160405280601a81526020017f4d312031433431203431203130352031303520313435203134350000000000008152509150611a71565b60088160020b136130ce576040518060400160405280601981526020017f4d312031433333203439203937203131332031343520313435000000000000008152509150611a71565b60108160020b13613116576040518060400160405280601981526020017f4d312031433333203537203839203131332031343520313435000000000000008152509150611a71565b60208160020b1361315e576040518060400160405280601981526020017f4d312031433235203635203831203132312031343520313435000000000000008152509150611a71565b60408160020b136131a6576040518060400160405280601981526020017f4d312031433137203733203733203132392031343520313435000000000000008152509150611a71565b60808160020b136131ee576040518060400160405280601881526020017f4d312031433920383120363520313337203134352031343500000000000000008152509150611a71565b6101008160020b13613237576040518060400160405280601a81526020017f4d31203143312038392035372e352031343520313435203134350000000000008152509150611a71565b505060408051808201909152601881527f4d3120314331203937203439203134352031343520313435000000000000000060208201529392505050565b604080518082018252600281527f37330000000000000000000000000000000000000000000000000000000000006020808301919091528251808401845260038082527f313930000000000000000000000000000000000000000000000000000000000082840152845180860186528181527f32313700000000000000000000000000000000000000000000000000000000008185015285518087019096529085527f3333340000000000000000000000000000000000000000000000000000000000928501929092526060939091906001600087900b148061335b57508560000b600019145b15613552578560000b600019146133725781613374565b835b8660000b600019146133865781613388565b835b8760000b6000191461339a578361339c565b855b8860000b600019146133ae57836133b0565b855b60405160200180806b1e31b4b931b6329031bc1e9160a11b815250600c0185805190602001908083835b602083106133f95780518252601f1990920191602091820191016133da565b51815160209384036101000a600019018019909216911617905267383c111031bc9e9160c11b919093019081528651600890910192870191508083835b602083106134555780518252601f199092019160209182019101613436565b6001836020036101000a038019825116818451168082178552505050505050905001806151926027913960270183805190602001908083835b602083106134ad5780518252601f19909201916020918201910161348e565b51815160209384036101000a600019018019909216911617905267383c111031bc9e9160c11b919093019081528451600890910192850191508083835b602083106135095780518252601f1990920191602091820191016134ea565b6001836020036101000a0380198251168184511680821785525050505050509050018061541b602a9139602a01945050505050604051602081830303815290604052945061373f565b8383838360405160200180806b1e31b4b931b6329031bc1e9160a11b815250600c0185805190602001908083835b6020831061359f5780518252601f199092019160209182019101613580565b51815160209384036101000a600019018019909216911617905267383c111031bc9e9160c11b919093019081528651600890910192870191508083835b602083106135fb5780518252601f1990920191602091820191016135dc565b51815160209384036101000a60001901801990921691161790527f70782220723d22347078222066696c6c3d22776869746522202f3e0000000000919093019081526b1e31b4b931b6329031bc1e9160a11b601b8201528551602790910192860191508083835b602083106136815780518252601f199092019160209182019101613662565b51815160209384036101000a600019018019909216911617905267383c111031bc9e9160c11b919093019081528451600890910192850191508083835b602083106136dd5780518252601f1990920191602091820191016136be565b6001836020036101000a038019825116818451168082178552505050505050905001807f70782220723d22347078222066696c6c3d22776869746522202f3e0000000000815250601b0194505050505060405160208183030381529060405294505b50505050919050565b6060600060405180602001604052806000815250905060008360020b121561378e5782600019029250604051806040016040528060018152602001602d60f81b81525090505b8061379b8460020b61068c565b6040516020018083805190602001908083835b602083106137cd5780518252601f1990920191602091820191016137ae565b51815160209384036101000a600019018019909216911617905285519190930192850191508083835b602083106138155780518252601f1990920191602091820191016137f6565b6001836020036101000a03801982511681845116808217855250505050505090500192505050604051602081830303815290604052915050919050565b60608060006002858501810b0590506201e847198160020b12156138ca57604051806040016040528060018152602001600760fb1b8152506040518060400160405280600181526020017f3700000000000000000000000000000000000000000000000000000000000000815250925092505061301f565b620124f7198160020b121561393357604051806040016040528060018152602001600760fb1b8152506040518060400160405280600481526020017f31302e3500000000000000000000000000000000000000000000000000000000815250925092505061301f565b6161a7198160020b121561399b57604051806040016040528060018152602001600760fb1b8152506040518060400160405280600581526020017f31342e3235000000000000000000000000000000000000000000000000000000815250925092505061301f565b611387198160020b1215613a04576040518060400160405280600281526020017f313000000000000000000000000000000000000000000000000000000000000081525060405180604001604052806002815260200161062760f31b815250925092505061301f565b60008160020b1215613a6b576040518060400160405280600281526020017f313100000000000000000000000000000000000000000000000000000000000081525060405180604001604052806002815260200161323160f01b815250925092505061301f565b6113888160020b1215613aee576040518060400160405280600281526020017f31330000000000000000000000000000000000000000000000000000000000008152506040518060400160405280600281526020017f3233000000000000000000000000000000000000000000000000000000000000815250925092505061301f565b6161a88160020b1215613b71576040518060400160405280600281526020017f31350000000000000000000000000000000000000000000000000000000000008152506040518060400160405280600281526020017f3235000000000000000000000000000000000000000000000000000000000000815250925092505061301f565b620124f88160020b1215613bda5760405180604001604052806002815260200161062760f31b8152506040518060400160405280600281526020017f3236000000000000000000000000000000000000000000000000000000000000815250925092505061301f565b6201e8488160020b1215613c285760405180604001604052806002815260200161323160f01b81525060405180604001604052806002815260200161323760f01b815250925092505061301f565b6040518060400160405280600281526020017f323400000000000000000000000000000000000000000000000000000000000081525060405180604001604052806002815260200161323760f01b815250925092505061301f565b6040805160208082018590526bffffffffffffffffffffffff19606085901b16828401528251603481840301815260549092019092528051910120600090613cca84613d62565b60020260010160ff1660001981613cdd57fe5b04119392505050565b6000818303818312801590613cfb5750838113155b80613d105750600083128015613d1057508381135b6106855760405162461bcd60e51b8152600401808060200182810382526024815260200180615d716024913960400191505060405180910390fd5b600080821215613d5e5781600003610486565b5090565b6000808211613d7057600080fd5b600160801b8210613d8357608091821c91015b680100000000000000008210613d9b57604091821c91015b6401000000008210613daf57602091821c91015b620100008210613dc157601091821c91015b6101008210613dd257600891821c91015b60108210613de257600491821c91015b60048210613df257600291821c91015b6002821061016b57600101919050565b6040805161010081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e081019190915290565b80356001600160a01b038116811461016b57600080fd5b8035801515811461016b57600080fd5b8035600281900b811461016b57600080fd5b600082601f830112613e8f578081fd5b813567ffffffffffffffff811115613ea357fe5b613eb6601f8201601f191660200161467d565b818152846020838601011115613eca578283fd5b816020850160208301379081016020019190915292915050565b803562ffffff8116811461016b57600080fd5b803560ff8116811461016b57600080fd5b600060208284031215613f19578081fd5b813567ffffffffffffffff80821115613f30578283fd5b81840191506101c0808387031215613f46578384fd5b613f4f8161467d565b905082358152613f6160208401613e46565b6020820152613f7260408401613e46565b6040820152606083013582811115613f88578485fd5b613f9487828601613e7f565b606083015250608083013582811115613fab578485fd5b613fb787828601613e7f565b608083015250613fc960a08401613ef7565b60a0820152613fda60c08401613ef7565b60c0820152613feb60e08401613e5d565b60e08201526101009150614000828401613e6d565b828201526101209150614014828401613e6d565b828201526101409150614028828401613e6d565b82820152610160915061403c828401613e6d565b828201526101809150614050828401613ee4565b828201526101a09150614064828401613e46565b91810191909152949350505050565b600081516140858185602086016146a1565b9290920192915050565b7fe29aa0efb88f20444953434c41494d45523a204475652064696c6967656e636581527f20697320696d7065726174697665207768656e20617373657373696e6720746860208201527f6973204e46542e204d616b65207375726520746f6b656e20616464726573736560408201527f73206d617463682074686520657870656374656420746f6b656e732c2061732060608201527f746f6b656e2073796d626f6c73206d617920626520696d6974617465642e00006080820152609e0190565b7f5c6e5c6e00000000000000000000000000000000000000000000000000000000815260040190565b60007f7b226e616d65223a220000000000000000000000000000000000000000000000825285516141b1816009850160208a016146a1565b7f222c20226465736372697074696f6e223a22000000000000000000000000000060099184019182015285516141ee81601b840160208a016146a1565b855191019061420481601b8401602089016146a1565b7f222c2022696d616765223a202200000000000000000000000000000000000000601b92909101918201527f646174613a696d6167652f7376672b786d6c3b6261736536342c000000000000602882015283516142688160428401602088016146a1565b7f227d000000000000000000000000000000000000000000000000000000000000604292909101918201526044019695505050505050565b60007f4173747261202d20000000000000000000000000000000000000000000000000825286516142d8816008850160208b016146a1565b80830190507f202d200000000000000000000000000000000000000000000000000000000000806008830152875161431781600b850160208c016146a1565b602f60f81b600b9390910192830152865161433981600c850160208b016146a1565b600c920191820152845161435481600f8401602089016146a1565b7f3c3e000000000000000000000000000000000000000000000000000000000000600f929091019182015283516143928160118401602088016146a1565b01601101979650505050505050565b60007f20416464726573733a200000000000000000000000000000000000000000000080835287516143da81600a860160208c016146a1565b612e3760f11b600a9185019182015287516143fc81600c840160208c016146a1565b01600c810191909152855190614419826016830160208a016146a1565b8181019150507f5c6e46656520546965723a200000000000000000000000000000000000000000601682015284516144588160228401602089016146a1565b7f5c6e546f6b656e2049443a20000000000000000000000000000000000000000060229290910191820152835161449681602e8401602088016146a1565b6144ac6144a7602e83850101614150565b61408f565b9998505050505050505050565b60007f54686973204e465420726570726573656e74732061206c69717569646974792082527f706f736974696f6e20696e206120417374726144455820434c200000000000006020830152855161451781603a850160208a016146a1565b602d60f81b603a91840191820152855161453881603b840160208a016146a1565b7f20706f6f6c2e2000000000000000000000000000000000000000000000000000603b92909101918201527f546865206f776e6572206f662074686973204e46542063616e206d6f6469667960428201527f206f722072656465656d2074686520706f736974696f6e2e5c6e00000000000060628201527f5c6e506f6f6c20416464726573733a2000000000000000000000000000000000607c82015284516145e881608c8401602089016146a1565b612e3760f11b608c92909101918201526103c6608e820185614073565b60007f646174613a6170706c69636174696f6e2f6a736f6e3b6261736536342c0000008252825161463d81601d8501602087016146a1565b91909101601d0192915050565b60006020825282518060208401526146698160408501602087016146a1565b601f01601f19169190910160400192915050565b60405181810167ffffffffffffffff8111828210171561469957fe5b604052919050565b60005b838110156146bc5781810151838201526020016146a4565b838111156146cb576000848401525b5050505056fe203c616e696d6174652061646469746976653d2273756d22206174747269627574654e616d653d2273746172744f6666736574222066726f6d3d2230252220746f3d22313030252220626567696e3d22307322206475723d223330732220726570656174436f756e743d22696e646566696e69746522202f3e3c2f74657874506174683e3c2f746578743e3c73746f70206f66667365743d222e39222073746f702d636f6c6f723d227768697465222073746f702d6f7061636974793d223022202f3e3c2f6c696e6561724772616469656e743e3c72656374207374796c653d2266696c7465723a2075726c28236631292220783d223070782220793d22307078222077696474683d22323930707822206865696768743d22353030707822202f3e3c6665496d61676520726573756c743d2270332220786c696e6b3a687265663d22646174613a696d6167652f7376672b786d6c3b6261736536342c3c67206d61736b3d2275726c2823666164652d73796d626f6c29223e3c726563742066696c6c3d226e6f6e652220783d223070782220793d22307078222077696474683d22323930707822206865696768743d22323030707822202f3e203c7465787420793d22373070782220783d2233327078222066696c6c3d2277686974652220666f6e742d66616d696c793d2227436f7572696572204e6577272c206d6f6e6f73706163652220666f6e742d7765696768743d223230302220666f6e742d73697a653d2233367078223e3c7376672077696474683d2232393022206865696768743d22353030222076696577426f783d2230203020323930203530302220786d6c6e733d22687474703a2f2f7777772e77332e6f72672f323030302f7376672270782c2030707829222063783d22307078222063793d223070782220723d22347078222066696c6c3d227768697465222f3e3c2f673e203c616e696d6174652061646469746976653d2273756d22206174747269627574654e616d653d2273746172744f6666736574222066726f6d3d2230252220746f3d22313030252220626567696e3d22307322206475723d223330732220726570656174436f756e743d22696e646566696e69746522202f3e203c2f74657874506174683e3c6d61736b2069643d22666164652d757022206d61736b436f6e74656e74556e6974733d226f626a656374426f756e64696e67426f78223e3c726563742077696474683d223122206865696768743d2231222066696c6c3d2275726c2823677261642d75702922202f3e3c2f6d61736b3e22207374726f6b653d227267626128302c302c302c302e332922207374726f6b652d77696474683d2233327078222066696c6c3d226e6f6e6522207374726f6b652d6c696e656361703d22726f756e6422202f3e203c616e696d6174652061646469746976653d2273756d22206174747269627574654e616d653d2273746172744f6666736574222066726f6d3d2230252220746f3d22313030252220626567696e3d22307322206475723d2233307322203c67207374796c653d227472616e73666f726d3a7472616e736c61746528323970782c20343434707829223e3c636972636c65207374796c653d227472616e73666f726d3a7472616e736c6174653364283c7376672077696474683d2732393027206865696768743d27353030272076696577426f783d2730203020323930203530302720786d6c6e733d27687474703a2f2f7777772e77332e6f72672f323030302f737667273e3c636972636c652063783d27203c67207374796c653d2266696c7465723a75726c2823746f702d726567696f6e2d626c7572293b207472616e73666f726d3a7363616c6528312e35293b207472616e73666f726d2d6f726967696e3a63656e74657220746f703b223e22202f3e3c6665426c656e64206d6f64653d226f7665726c61792220696e3d2270302220696e323d22703122202f3e3c6665426c656e64206d6f64653d226578636c7573696f6e2220696e323d22703222202f3e3c6665426c656e64206d6f64653d226f7665726c61792220696e323d2270332220726573756c743d22626c656e644f757422202f3e3c6665476175737369616e426c7572203c706174682069643d226d696e696d61702220643d224d3233342034343443323334203435372e393439203234322e323120343633203235332034363322202f3e3c6d61736b2069643d226e6f6e6522206d61736b436f6e74656e74556e6974733d226f626a656374426f756e64696e67426f78223e3c726563742077696474683d223122206865696768743d2231222066696c6c3d22776869746522202f3e3c2f6d61736b3e2220783d223070782220793d22307078222077696474683d22323930707822206865696768743d22353030707822202f3e203c616e696d6174652061646469746976653d2273756d22206174747269627574654e616d653d2273746172744f6666736574222066726f6d3d2230252220746f3d22313030252220626567696e3d22307322206475723d223330732220726570656174436f756e743d22696e646566696e69746522202f3e3c7465787420783d22313270782220793d22313770782220666f6e742d66616d696c793d2227436f7572696572204e6577272c206d6f6e6f73706163652220666f6e742d73697a653d2231327078222066696c6c3d227768697465223e3c747370616e2066696c6c3d2272676261283235352c3235352c3235352c302e3629223e4d696e205469636b3a203c2f747370616e3e3c74657874506174682073746172744f66667365743d222d31303025222066696c6c3d2277686974652220666f6e742d66616d696c793d2227436f7572696572204e6577272c206d6f6e6f73706163652220666f6e742d73697a653d22313070782220786c696e6b3a687265663d2223746578742d706174682d61223e3c6c696e6561724772616469656e742069643d22677261642d646f776e222078313d2230222078323d2231222079313d2230222079323d2231223e3c73746f70206f66667365743d22302e30222073746f702d636f6c6f723d227768697465222073746f702d6f7061636974793d223122202f3e3c73746f70206f66667365743d22302e39222073746f702d636f6c6f723d227768697465222073746f702d6f7061636974793d223022202f3e3c2f6c696e6561724772616469656e743e3c66696c7465722069643d226631223e3c6665496d61676520726573756c743d2270302220786c696e6b3a687265663d22646174613a696d6167652f7376672b786d6c3b6261736536342c3c7376672077696474683d2732393027206865696768743d27353030272076696577426f783d2730203020323930203530302720786d6c6e733d27687474703a2f2f7777772e77332e6f72672f323030302f737667273e3c726563742077696474683d27323930707827206865696768743d273530307078272066696c6c3d2723222f3e3c6665496d61676520726573756c743d2270322220786c696e6b3a687265663d22646174613a696d6167652f7376672b786d6c3b6261736536342c3c656c6c697073652063783d22353025222063793d22307078222072783d223138307078222072793d223132307078222066696c6c3d222330303022206f7061636974793d22302e383522202f3e3c2f673e707822206865696768743d2232367078222072783d22387078222072793d22387078222066696c6c3d227267626128302c302c302c302e362922202f3e70782220723d22347078222066696c6c3d22776869746522202f3e3c636972636c652063783d2231312e333437384c32342031324c31342e343334312031322e363532324c32322e333932332031384c31332e373831392031332e373831394c31382032322e333932334c31322e363532322031342e343334314c31322032344c31312e333437382031342e343334314c362032322e33393c726563742066696c6c3d226e6f6e652220783d223070782220793d22307078222077696474683d22323930707822206865696768743d22353030707822202f3e4142434445464748494a4b4c4d4e4f505152535455565758595a6162636465666768696a6b6c6d6e6f707172737475767778797a303132333435363738392b2f20786d6c6e733a786c696e6b3d27687474703a2f2f7777772e77332e6f72672f313939392f786c696e6b273e3c6c696e6561724772616469656e742069643d22677261642d73796d626f6c223e3c73746f70206f66667365743d22302e37222073746f702d636f6c6f723d227768697465222073746f702d6f7061636974793d223122202f3e3c73746f70206f66667365743d222e3935222073746f702d636f6c6f723d227768697465222073746f702d6f7061636974793d223022202f3e3c2f6c696e6561724772616469656e743e207374796c653d227472616e73666f726d3a7472616e736c61746528373270782c313839707829223e3c7265637420783d222d313670782220793d222d31367078222077696474683d22313830707822206865696768743d223138307078222066696c6c3d226e6f6e6522202f3e3c7061746820643d22207374796c653d227472616e73666f726d3a7472616e736c61746528373270782c313839707829223e70782220723d2232347078222066696c6c3d226e6f6e6522207374726f6b653d22776869746522202f3e3c7265637420783d222d313670782220793d222d31367078222077696474683d22313830707822206865696768743d223138307078222066696c6c3d226e6f6e6522202f3e536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f773c673e3c70617468207374796c653d227472616e73666f726d3a7472616e736c617465283670782c367078292220643d224d313220304c31322e3635323220392e35363538374c313820312e363037374c31332e373831392031302e323138314c32322e3339323320364c31342e34333431203c70617468207374726f6b652d6c696e656361703d22726f756e642220643d224d38203943382e30303030342032322e393439342031362e32303939203238203237203238222066696c6c3d226e6f6e6522207374726f6b653d22776869746522202f3e20726570656174436f756e743d22696e646566696e69746522202f3e3c2f74657874506174683e3c74657874506174682073746172744f66667365743d222d353025222066696c6c3d2277686974652220666f6e742d66616d696c793d2227436f7572696572204e6577272c206d6f6e6f73706163652220666f6e742d73697a653d22313070782220786c696e6b3a687265663d2223746578742d706174682d61223e3c6d61736b2069643d22666164652d646f776e22206d61736b436f6e74656e74556e6974733d226f626a656374426f756e64696e67426f78223e3c726563742077696474683d223122206865696768743d2231222066696c6c3d2275726c2823677261642d646f776e2922202f3e3c2f6d61736b3e22207374726f6b653d2272676261283235352c3235352c3235352c3129222066696c6c3d226e6f6e6522207374726f6b652d6c696e656361703d22726f756e6422202f3e3c2f673e696e3d22626c656e644f75742220737464446576696174696f6e3d22343222202f3e3c2f66696c7465723e203c636c6970506174682069643d22636f726e657273223e3c726563742077696474683d2232393022206865696768743d22353030222072783d223432222072793d22343222202f3e3c2f636c6970506174683e203c67207374796c653d227472616e73666f726d3a7472616e736c61746528323970782c20333834707829223e3c6c696e6561724772616469656e742069643d22677261642d7570222078313d2231222078323d2230222079313d2231222079323d2230223e3c73746f70206f66667365743d22302e30222073746f702d636f6c6f723d227768697465222073746f702d6f7061636974793d223122202f3e32334c31302e323138312031332e373831394c312e363037372031384c392e35363538372031322e363532324c302031324c392e35363538372031312e333437384c312e3630373720364c31302e323138312031302e323138314c3620312e363037374c31312e3334373820392e35363538374c313220305a222066696c6c3d22776869746522202f3e3c67207374796c653d227472616e73666f726d3a7472616e736c6174652832323670782c20333932707829223e3c726563742077696474683d223336707822206865696768743d2233367078222072783d22387078222072793d22387078222066696c6c3d226e6f6e6522207374726f6b653d2272676261283235352c3235352c3235352c302e322922202f3e3c74657874506174682073746172744f66667365743d22353025222066696c6c3d2277686974652220666f6e742d66616d696c793d2227436f7572696572204e6577272c206d6f6e6f73706163652220666f6e742d73697a653d22313070782220786c696e6b3a687265663d2223746578742d706174682d61223e3c7465787420783d22313270782220793d22313770782220666f6e742d66616d696c793d2227436f7572696572204e6577272c206d6f6e6f73706163652220666f6e742d73697a653d2231327078222066696c6c3d227768697465223e3c747370616e2066696c6c3d2272676261283235352c3235352c3235352c302e3629223e4d6178205469636b3a203c2f747370616e3e3c616e696d6174655472616e73666f726d206174747269627574654e616d653d227472616e73666f726d2220747970653d22726f74617465222066726f6d3d22302031382031382220746f3d2233363020313820313822206475723d223130732220726570656174436f756e743d22696e646566696e697465222f3e3c2f673e3c2f673e3c706174682069643d22746578742d706174682d612220643d224d34302031322048323530204132382032382030203020312032373820343020563436302041323820323820302030203120323530203438382048343020413238203238203020302031203132203436302056343020413238203238203020302031203430203132207a22202f3e222f3e3c6665496d61676520726573756c743d2270312220786c696e6b3a687265663d22646174613a696d6167652f7376672b786d6c3b6261736536342c3c6d61736b2069643d22666164652d73796d626f6c22206d61736b436f6e74656e74556e6974733d227573657253706163654f6e557365223e3c726563742077696474683d22323930707822206865696768743d223230307078222066696c6c3d2275726c2823677261642d73796d626f6c2922202f3e3c2f6d61736b3e3c2f646566733e3c7265637420783d22302220793d2230222077696474683d2232393022206865696768743d22353030222072783d223432222072793d223432222066696c6c3d227267626128302c302c302c302922207374726f6b653d2272676261283235352c3235352c3235352c302e322922202f3e3c2f673e3c66696c7465722069643d22746f702d726567696f6e2d626c7572223e3c6665476175737369616e426c757220696e3d22536f75726365477261706869632220737464446576696174696f6e3d22323422202f3e3c2f66696c7465723e3c2f74657874506174683e203c74657874506174682073746172744f66667365743d223025222066696c6c3d2277686974652220666f6e742d66616d696c793d2227436f7572696572204e6577272c206d6f6e6f73706163652220666f6e742d73697a653d22313070782220786c696e6b3a687265663d2223746578742d706174682d61223e3c7465787420746578742d72656e646572696e673d226f7074696d697a655370656564223e5369676e6564536166654d6174683a207375627472616374696f6e206f766572666c6f773c7265637420783d2231362220793d223136222077696474683d2232353822206865696768743d22343638222072783d223236222072793d223236222066696c6c3d227267626128302c302c302c302922207374726f6b653d2272676261283235352c3235352c3235352c302e322922202f3e3c7465787420783d22313270782220793d22313770782220666f6e742d66616d696c793d2227436f7572696572204e6577272c206d6f6e6f73706163652220666f6e742d73697a653d2231327078222066696c6c3d227768697465223e3c747370616e2066696c6c3d2272676261283235352c3235352c3235352c302e3629223e49443a203c2f747370616e3e3c726563742077696474683d223336707822206865696768743d2233367078222072783d22387078222072793d22387078222066696c6c3d226e6f6e6522207374726f6b653d2272676261283235352c3235352c3235352c302e322922202f3e3c2f746578743e3c7465787420793d2231313570782220783d2233327078222066696c6c3d2277686974652220666f6e742d66616d696c793d2227436f7572696572204e6577272c206d6f6e6f73706163652220666f6e742d7765696768743d223230302220666f6e742d73697a653d2233367078223e3c2f746578743e3c2f673e3c67207374796c653d227472616e73666f726d3a7472616e736c6174652832323670782c20343333707829223e203c67207374796c653d227472616e73666f726d3a7472616e736c61746528323970782c20343134707829223ea164736f6c6343000706000a","opcodes":"PUSH2 0x5FDD PUSH2 0x26 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH2 0x19 JUMPI INVALID JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x35 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xC49917D7 EQ PUSH2 0x3A JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4D PUSH2 0x48 CALLDATASIZE PUSH1 0x4 PUSH2 0x3F08 JUMP JUMPDEST PUSH2 0x63 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x5A SWAP2 SWAP1 PUSH2 0x464A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH2 0x7E DUP4 PUSH2 0x79 DUP6 PUSH2 0x180 ADD MLOAD PUSH2 0x170 JUMP JUMPDEST PUSH2 0x3D1 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0xB2 PUSH2 0x92 DUP6 PUSH1 0x60 ADD MLOAD PUSH2 0x48C JUMP JUMPDEST PUSH2 0x9F DUP7 PUSH1 0x80 ADD MLOAD PUSH2 0x48C JUMP JUMPDEST PUSH2 0xAD DUP8 PUSH2 0x1A0 ADD MLOAD PUSH2 0x644 JUMP JUMPDEST PUSH2 0x65A JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x100 PUSH2 0xC6 DUP7 PUSH1 0x0 ADD MLOAD PUSH2 0x68C JUMP JUMPDEST PUSH2 0xD3 DUP8 PUSH1 0x80 ADD MLOAD PUSH2 0x48C JUMP JUMPDEST PUSH2 0xE0 DUP9 PUSH1 0x20 ADD MLOAD PUSH2 0x644 JUMP JUMPDEST PUSH2 0xED DUP10 PUSH1 0x40 ADD MLOAD PUSH2 0x644 JUMP JUMPDEST PUSH2 0xFB DUP11 PUSH2 0x180 ADD MLOAD PUSH2 0x170 JUMP JUMPDEST PUSH2 0x767 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x115 PUSH2 0x110 DUP8 PUSH2 0x79D JUMP JUMPDEST PUSH2 0x9D8 JUMP JUMPDEST SWAP1 POP PUSH2 0x145 DUP5 DUP5 DUP5 DUP5 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x131 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x4179 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH2 0x9D8 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x155 SWAP2 SWAP1 PUSH2 0x4605 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP5 POP POP POP POP POP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH3 0xFFFFFF DUP3 AND PUSH2 0x1B6 JUMPI POP PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x2 DUP2 MSTORE PUSH32 0x3025000000000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH2 0x16B JUMP JUMPDEST DUP2 PUSH1 0x0 DUP1 JUMPDEST PUSH3 0xFFFFFF DUP4 AND ISZERO PUSH2 0x206 JUMPI PUSH1 0xFF DUP2 AND ISZERO PUSH2 0x1D7 JUMPI PUSH1 0x1 ADD PUSH2 0x1F0 JUMP JUMPDEST PUSH1 0xA PUSH3 0xFFFFFF DUP5 AND MOD PUSH3 0xFFFFFF AND PUSH1 0x0 EQ PUSH2 0x1F0 JUMPI PUSH1 0x1 ADD JUMPDEST PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 PUSH1 0xA PUSH3 0xFFFFFF DUP5 AND DIV SWAP3 POP PUSH2 0x1BB JUMP JUMPDEST PUSH2 0x20E PUSH2 0x3E02 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x5 DUP5 LT PUSH2 0x303 JUMPI PUSH1 0x0 PUSH1 0x4 PUSH2 0x229 DUP7 PUSH1 0xFF DUP8 AND PUSH2 0xB5D JUMP JUMPDEST LT ISZERO PUSH2 0x236 JUMPI PUSH1 0x1 PUSH2 0x239 JUMP JUMPDEST PUSH1 0x0 JUMPDEST PUSH1 0xFF SWAP1 DUP2 AND SWAP2 POP PUSH2 0x24D SWAP1 DUP6 AND PUSH1 0x1 PUSH2 0xB5D JUMP JUMPDEST PUSH2 0x258 DUP7 PUSH1 0x5 PUSH2 0xB5D JUMP JUMPDEST LT PUSH2 0x284 JUMPI PUSH2 0x27F PUSH2 0x26E PUSH1 0xFF DUP7 AND PUSH1 0x1 PUSH2 0xB5D JUMP JUMPDEST PUSH2 0x279 DUP8 PUSH1 0x5 PUSH2 0xB5D JUMP JUMPDEST SWAP1 PUSH2 0xB5D JUMP JUMPDEST PUSH2 0x287 JUMP JUMPDEST PUSH1 0x0 JUMPDEST PUSH1 0xFF DUP6 AND PUSH1 0x80 DUP6 ADD DUP2 SWAP1 MSTORE SWAP1 SWAP3 POP PUSH2 0x2A6 SWAP1 PUSH1 0x1 SWAP1 PUSH2 0x279 SWAP1 DUP6 PUSH2 0xBBA JUMP JUMPDEST PUSH1 0xFF SWAP1 DUP2 AND PUSH1 0xA0 DUP6 ADD MSTORE PUSH1 0x80 DUP5 ADD MLOAD PUSH2 0x2CD SWAP2 DUP4 SWAP2 PUSH2 0x2C7 SWAP2 AND PUSH1 0x1 PUSH2 0xB5D JUMP JUMPDEST SWAP1 PUSH2 0xBBA JUMP JUMPDEST PUSH1 0xFF SWAP1 DUP2 AND PUSH1 0x40 DUP6 ADD MSTORE PUSH2 0x2F5 SWAP1 DUP3 SWAP1 PUSH2 0x2C7 SWAP1 PUSH2 0x2EE SWAP1 DUP9 AND PUSH1 0x1 PUSH2 0xBBA JUMP JUMPDEST DUP6 SWAP1 PUSH2 0xBBA JUMP JUMPDEST PUSH1 0xFF AND PUSH1 0x20 DUP5 ADD MSTORE POP PUSH2 0x373 JUMP JUMPDEST PUSH2 0x30E PUSH1 0x5 DUP6 PUSH2 0xB5D JUMP JUMPDEST PUSH1 0x2 PUSH1 0x80 DUP5 ADD DUP2 SWAP1 MSTORE SWAP1 SWAP2 POP PUSH2 0x32C SWAP1 PUSH1 0x1 SWAP1 PUSH2 0x279 SWAP1 DUP5 SWAP1 PUSH2 0xBBA JUMP JUMPDEST PUSH1 0xFF SWAP1 DUP2 AND PUSH1 0xA0 DUP5 ADD MSTORE PUSH2 0x34E SWAP1 PUSH2 0x347 SWAP1 DUP6 AND PUSH1 0x2 PUSH2 0xBBA JUMP JUMPDEST DUP3 SWAP1 PUSH2 0xBBA JUMP JUMPDEST PUSH1 0xFF AND PUSH1 0x20 DUP4 ADD DUP2 SWAP1 MSTORE PUSH2 0x363 SWAP1 PUSH1 0x2 PUSH2 0xB5D JUMP JUMPDEST PUSH1 0xFF AND PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x1 PUSH1 0xC0 DUP4 ADD MSTORE JUMPDEST PUSH2 0x392 PUSH2 0x383 DUP6 PUSH1 0xFF DUP7 AND PUSH2 0xB5D JUMP JUMPDEST PUSH3 0xFFFFFF DUP10 AND SWAP1 PUSH1 0xA EXP PUSH2 0xC14 JUMP JUMPDEST DUP3 MSTORE PUSH1 0x1 PUSH1 0xE0 DUP4 ADD MSTORE PUSH1 0x4 DUP5 GT PUSH2 0x3AA JUMPI PUSH1 0x0 PUSH2 0x3B5 JUMP JUMPDEST PUSH2 0x3B5 DUP5 PUSH1 0x4 PUSH2 0xB5D JUMP JUMPDEST PUSH1 0xFF AND PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x3C6 DUP3 PUSH2 0xC7B JUMP JUMPDEST SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP2 PUSH2 0x3E1 DUP5 PUSH1 0x60 ADD MLOAD PUSH2 0x48C JUMP JUMPDEST PUSH2 0x3EE DUP6 PUSH1 0x80 ADD MLOAD PUSH2 0x48C JUMP JUMPDEST PUSH2 0x427 DUP7 PUSH1 0xE0 ADD MLOAD ISZERO PUSH2 0x406 JUMPI DUP7 PUSH2 0x120 ADD MLOAD PUSH2 0x40D JUMP JUMPDEST DUP7 PUSH2 0x100 ADD MLOAD JUMPDEST DUP8 PUSH2 0x160 ADD MLOAD DUP9 PUSH1 0xC0 ADD MLOAD DUP10 PUSH1 0xA0 ADD MLOAD DUP11 PUSH1 0xE0 ADD MLOAD PUSH2 0xEA7 JUMP JUMPDEST PUSH2 0x460 DUP8 PUSH1 0xE0 ADD MLOAD ISZERO PUSH2 0x43F JUMPI DUP8 PUSH2 0x100 ADD MLOAD PUSH2 0x446 JUMP JUMPDEST DUP8 PUSH2 0x120 ADD MLOAD JUMPDEST DUP9 PUSH2 0x160 ADD MLOAD DUP10 PUSH1 0xC0 ADD MLOAD DUP11 PUSH1 0xA0 ADD MLOAD DUP12 PUSH1 0xE0 ADD MLOAD PUSH2 0xEA7 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x474 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x42A0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x60 DUP2 PUSH1 0x0 DUP1 JUMPDEST DUP3 MLOAD DUP2 PUSH1 0xFF AND LT ISZERO PUSH2 0x4F0 JUMPI DUP3 DUP2 PUSH1 0xFF AND DUP2 MLOAD DUP2 LT PUSH2 0x4AE JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP2 ADD ADD MLOAD PUSH32 0xFF00000000000000000000000000000000000000000000000000000000000000 AND PUSH1 0x11 PUSH1 0xF9 SHL EQ ISZERO PUSH2 0x4E8 JUMPI PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 JUMPDEST PUSH1 0x1 ADD PUSH2 0x493 JUMP JUMPDEST POP PUSH1 0xFF DUP2 AND ISZERO PUSH2 0x63C JUMPI PUSH1 0x0 DUP2 PUSH1 0xFF AND DUP4 MLOAD ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP1 ISZERO PUSH2 0x519 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x544 JUMPI PUSH1 0x20 DUP3 ADD DUP2 DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP PUSH1 0x0 DUP1 JUMPDEST DUP5 MLOAD DUP2 PUSH1 0xFF AND LT ISZERO PUSH2 0x62F JUMPI DUP5 DUP2 PUSH1 0xFF AND DUP2 MLOAD DUP2 LT PUSH2 0x566 JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP2 ADD ADD MLOAD PUSH32 0xFF00000000000000000000000000000000000000000000000000000000000000 AND PUSH1 0x11 PUSH1 0xF9 SHL EQ ISZERO PUSH2 0x5E4 JUMPI PUSH32 0x5C00000000000000000000000000000000000000000000000000000000000000 DUP4 DUP4 DUP1 PUSH1 0x1 ADD SWAP5 POP DUP2 MLOAD DUP2 LT PUSH2 0x5CC JUMPI INVALID JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP JUMPDEST DUP5 DUP2 PUSH1 0xFF AND DUP2 MLOAD DUP2 LT PUSH2 0x5F3 JUMPI INVALID JUMPDEST PUSH1 0x20 ADD ADD MLOAD PUSH1 0xF8 SHR PUSH1 0xF8 SHL DUP4 DUP4 DUP1 PUSH1 0x1 ADD SWAP5 POP DUP2 MLOAD DUP2 LT PUSH2 0x610 JUMPI INVALID JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH1 0x1 ADD PUSH2 0x54B JUMP JUMPDEST POP DUP2 SWAP5 POP POP POP POP POP PUSH2 0x16B JUMP JUMPDEST POP SWAP2 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x486 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x14 PUSH2 0xFD1 JUMP JUMPDEST PUSH1 0x60 DUP4 DUP4 DUP4 DUP7 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x673 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x44B9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP2 PUSH2 0x6B1 JUMPI POP PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x1 DUP2 MSTORE PUSH1 0x3 PUSH1 0xFC SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH2 0x16B JUMP JUMPDEST DUP2 PUSH1 0x0 JUMPDEST DUP2 ISZERO PUSH2 0x6C9 JUMPI PUSH1 0x1 ADD PUSH1 0xA DUP3 DIV SWAP2 POP PUSH2 0x6B5 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP1 ISZERO PUSH2 0x6E2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x70D JUMPI PUSH1 0x20 DUP3 ADD DUP2 DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP DUP6 SWAP4 POP SWAP1 POP PUSH1 0x0 NOT DUP3 ADD JUMPDEST DUP4 ISZERO PUSH2 0x75E JUMPI PUSH1 0xA DUP5 MOD PUSH1 0x30 ADD PUSH1 0xF8 SHL DUP3 DUP3 DUP1 PUSH1 0x1 SWAP1 SUB SWAP4 POP DUP2 MLOAD DUP2 LT PUSH2 0x73C JUMPI INVALID JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH1 0xA DUP5 DIV SWAP4 POP PUSH2 0x719 JUMP JUMPDEST POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP4 DUP6 DUP5 DUP5 DUP10 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x782 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x43A1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 PUSH2 0x2A0 ADD PUSH1 0x40 MSTORE DUP1 PUSH2 0x7BA DUP6 PUSH1 0x20 ADD MLOAD PUSH2 0x644 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x7CC DUP6 PUSH1 0x40 ADD MLOAD PUSH2 0x644 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD DUP5 PUSH2 0x1A0 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP5 PUSH1 0x60 ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD DUP5 PUSH1 0x80 ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x807 DUP6 PUSH2 0x180 ADD MLOAD PUSH2 0x170 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD DUP5 PUSH2 0x100 ADD MLOAD PUSH1 0x2 SIGNEXTEND DUP2 MSTORE PUSH1 0x20 ADD DUP5 PUSH2 0x120 ADD MLOAD PUSH1 0x2 SIGNEXTEND DUP2 MSTORE PUSH1 0x20 ADD DUP5 PUSH2 0x160 ADD MLOAD PUSH1 0x2 SIGNEXTEND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x850 DUP6 PUSH2 0x100 ADD MLOAD DUP7 PUSH2 0x120 ADD MLOAD DUP8 PUSH2 0x140 ADD MLOAD PUSH2 0x1159 JUMP JUMPDEST PUSH1 0x0 SIGNEXTEND DUP2 MSTORE PUSH1 0x20 ADD DUP5 PUSH1 0x0 ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x87A DUP6 PUSH1 0x20 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x88 PUSH2 0x1190 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x897 DUP6 PUSH1 0x40 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x88 PUSH2 0x1190 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x8B4 DUP6 PUSH1 0x20 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 PUSH2 0x1190 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x8D1 DUP6 PUSH1 0x40 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 PUSH2 0x1190 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x904 PUSH2 0x8F6 DUP7 PUSH1 0x20 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x10 DUP9 PUSH1 0x0 ADD MLOAD PUSH2 0x119F JUMP JUMPDEST PUSH1 0x0 PUSH1 0xFF PUSH1 0x10 PUSH2 0x112 PUSH2 0x11BF JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x937 PUSH2 0x929 DUP7 PUSH1 0x40 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x10 DUP9 PUSH1 0x0 ADD MLOAD PUSH2 0x119F JUMP JUMPDEST PUSH1 0x0 PUSH1 0xFF PUSH1 0x64 PUSH2 0x1E4 PUSH2 0x11BF JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x95C PUSH2 0x8F6 DUP7 PUSH1 0x20 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x20 DUP9 PUSH1 0x0 ADD MLOAD PUSH2 0x119F JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x981 PUSH2 0x929 DUP7 PUSH1 0x40 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x20 DUP9 PUSH1 0x0 ADD MLOAD PUSH2 0x119F JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x9A6 PUSH2 0x8F6 DUP7 PUSH1 0x20 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x30 DUP9 PUSH1 0x0 ADD MLOAD PUSH2 0x119F JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x9CB PUSH2 0x929 DUP7 PUSH1 0x40 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x30 DUP9 PUSH1 0x0 ADD MLOAD PUSH2 0x119F JUMP JUMPDEST SWAP1 MSTORE SWAP1 POP PUSH2 0x685 DUP2 PUSH2 0x1207 JUMP JUMPDEST PUSH1 0x60 DUP2 MLOAD PUSH1 0x0 EQ ISZERO PUSH2 0x9F9 JUMPI POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP2 MSTORE PUSH2 0x16B JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x40 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x526B PUSH1 0x40 SWAP2 CODECOPY SWAP1 POP PUSH1 0x0 PUSH1 0x3 DUP5 MLOAD PUSH1 0x2 ADD DUP2 PUSH2 0xA26 JUMPI INVALID JUMPDEST DIV PUSH1 0x4 MUL SWAP1 POP PUSH1 0x0 DUP2 PUSH1 0x20 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP1 ISZERO PUSH2 0xA48 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0xA73 JUMPI PUSH1 0x20 DUP3 ADD DUP2 DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP DUP2 DUP2 MSTORE PUSH1 0x1 DUP4 ADD DUP6 DUP7 MLOAD DUP2 ADD PUSH1 0x20 DUP5 ADD JUMPDEST DUP2 DUP4 LT ISZERO PUSH2 0xAE1 JUMPI PUSH1 0x3 SWAP3 DUP4 ADD DUP1 MLOAD PUSH1 0x3F PUSH1 0x12 DUP3 SWAP1 SHR DUP2 AND DUP8 ADD MLOAD PUSH1 0xF8 SWAP1 DUP2 SHL DUP6 MSTORE PUSH1 0xC DUP4 SWAP1 SHR DUP3 AND DUP9 ADD MLOAD DUP2 SHL PUSH1 0x1 DUP7 ADD MSTORE PUSH1 0x6 DUP4 SWAP1 SHR DUP3 AND DUP9 ADD MLOAD DUP2 SHL PUSH1 0x2 DUP7 ADD MSTORE SWAP2 AND DUP7 ADD MLOAD SWAP1 SHL SWAP4 DUP3 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH1 0x4 ADD PUSH2 0xA87 JUMP JUMPDEST PUSH1 0x3 DUP10 MLOAD MOD PUSH1 0x1 DUP2 EQ PUSH2 0xAFB JUMPI PUSH1 0x2 DUP2 EQ PUSH2 0xB27 JUMPI PUSH2 0xB4F JUMP JUMPDEST PUSH32 0x3D3D000000000000000000000000000000000000000000000000000000000000 PUSH1 0x1 NOT DUP4 ADD MSTORE PUSH2 0xB4F JUMP JUMPDEST PUSH32 0x3D00000000000000000000000000000000000000000000000000000000000000 PUSH1 0x0 NOT DUP4 ADD MSTORE JUMPDEST POP SWAP4 SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 GT ISZERO PUSH2 0xBB4 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x536166654D6174683A207375627472616374696F6E206F766572666C6F770000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP SWAP1 SUB SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 ADD DUP4 DUP2 LT ISZERO PUSH2 0x685 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x536166654D6174683A206164646974696F6E206F766572666C6F770000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP3 GT PUSH2 0xC6A JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x536166654D6174683A206469766973696F6E206279207A65726F000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP2 DUP4 DUP2 PUSH2 0xC73 JUMPI INVALID JUMPDEST DIV SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP3 PUSH1 0x20 ADD MLOAD PUSH1 0xFF AND PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP1 ISZERO PUSH2 0xC9D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0xCC8 JUMPI PUSH1 0x20 DUP3 ADD DUP2 DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP DUP3 PUSH1 0xE0 ADD MLOAD ISZERO PUSH2 0xD1E JUMPI PUSH32 0x2500000000000000000000000000000000000000000000000000000000000000 DUP2 PUSH1 0x1 DUP4 MLOAD SUB DUP2 MLOAD DUP2 LT PUSH2 0xD06 JUMPI INVALID JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP JUMPDEST DUP3 PUSH1 0xC0 ADD MLOAD ISZERO PUSH2 0xD7B JUMPI PUSH1 0x3 PUSH1 0xFC SHL DUP2 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0xD3A JUMPI INVALID JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH1 0x17 PUSH1 0xF9 SHL DUP2 PUSH1 0x1 DUP2 MLOAD DUP2 LT PUSH2 0xD63 JUMPI INVALID JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP JUMPDEST PUSH1 0x80 DUP4 ADD MLOAD PUSH1 0xFF AND JUMPDEST PUSH1 0xA0 DUP5 ADD MLOAD PUSH2 0xD97 SWAP1 PUSH1 0xFF AND PUSH1 0x1 PUSH2 0xBBA JUMP JUMPDEST DUP2 LT ISZERO PUSH2 0xDCE JUMPI PUSH1 0x30 PUSH1 0xF8 SHL DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0xDAF JUMPI INVALID JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH1 0x1 ADD PUSH2 0xD84 JUMP JUMPDEST POP JUMPDEST DUP3 MLOAD ISZERO PUSH2 0x486 JUMPI PUSH1 0x0 DUP4 PUSH1 0x60 ADD MLOAD PUSH1 0xFF AND GT DUP1 ISZERO PUSH2 0xDFB JUMPI POP DUP3 PUSH1 0x60 ADD MLOAD PUSH1 0xFF AND DUP4 PUSH1 0x40 ADD MLOAD PUSH1 0xFF AND EQ JUMPDEST ISZERO PUSH2 0xE3E JUMPI PUSH1 0x40 DUP4 ADD DUP1 MLOAD PUSH1 0xFF PUSH1 0x0 NOT DUP3 ADD DUP2 AND SWAP1 SWAP3 MSTORE DUP3 MLOAD PUSH1 0x17 PUSH1 0xF9 SHL SWAP3 DUP5 SWAP3 AND SWAP1 DUP2 LT PUSH2 0xE26 JUMPI INVALID JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP JUMPDEST DUP3 MLOAD PUSH2 0xE50 SWAP1 PUSH1 0x30 SWAP1 PUSH1 0xA SWAP1 MOD PUSH2 0xBBA JUMP JUMPDEST PUSH1 0xF8 SHL DUP2 DUP5 PUSH1 0x40 ADD DUP1 MLOAD DUP1 SWAP2 SWAP1 PUSH1 0x1 SWAP1 SUB PUSH1 0xFF AND PUSH1 0xFF AND DUP2 MSTORE POP PUSH1 0xFF AND DUP2 MLOAD DUP2 LT PUSH2 0xE77 JUMPI INVALID JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH1 0xA DUP4 PUSH1 0x0 ADD DUP2 DUP2 MLOAD DUP2 PUSH2 0xE9E JUMPI INVALID JUMPDEST DIV SWAP1 MSTORE POP PUSH2 0xDD0 JUMP JUMPDEST PUSH1 0x60 DUP5 PUSH1 0x2 DUP2 SWAP1 SIGNEXTEND PUSH3 0xD89E7 NOT DUP2 PUSH2 0xEBB JUMPI INVALID JUMPDEST SDIV MUL PUSH1 0x2 SIGNEXTEND DUP7 PUSH1 0x2 SIGNEXTEND EQ ISZERO PUSH2 0xF15 JUMPI DUP2 ISZERO PUSH2 0xEF1 JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x3 DUP2 MSTORE PUSH1 0x20 ADD PUSH3 0x9A82B PUSH1 0xEB SHL DUP2 MSTORE POP PUSH2 0xF0E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x3 DUP2 MSTORE PUSH1 0x20 ADD PUSH3 0x26A4A7 PUSH1 0xE9 SHL DUP2 MSTORE POP JUMPDEST SWAP1 POP PUSH2 0x794 JUMP JUMPDEST DUP5 PUSH1 0x2 DUP2 SWAP1 SIGNEXTEND PUSH3 0xD89E8 DUP2 PUSH2 0xF26 JUMPI INVALID JUMPDEST SDIV MUL PUSH1 0x2 SIGNEXTEND DUP7 PUSH1 0x2 SIGNEXTEND EQ ISZERO PUSH2 0xF7C JUMPI DUP2 ISZERO PUSH2 0xF5C JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x3 DUP2 MSTORE PUSH1 0x20 ADD PUSH3 0x26A4A7 PUSH1 0xE9 SHL DUP2 MSTORE POP PUSH2 0xF0E JUMP JUMPDEST POP PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x3 DUP2 MSTORE PUSH3 0x9A82B PUSH1 0xEB SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH2 0x794 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xF87 DUP8 PUSH2 0x1496 JUMP JUMPDEST SWAP1 POP DUP3 ISZERO PUSH2 0xFBE JUMPI PUSH2 0xFBB PUSH25 0x1000000000000000000000000000000000000000000000000 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0xC14 JUMP JUMPDEST SWAP1 POP JUMPDEST PUSH2 0xFC9 DUP2 DUP7 DUP7 PUSH2 0x17E4 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x794 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP3 PUSH1 0x2 MUL PUSH1 0x2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP1 ISZERO PUSH2 0xFF2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x101D JUMPI PUSH1 0x20 DUP3 ADD DUP2 DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP PUSH1 0x3 PUSH1 0xFC SHL DUP2 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x1032 JUMPI INVALID JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH32 0x7800000000000000000000000000000000000000000000000000000000000000 DUP2 PUSH1 0x1 DUP2 MLOAD DUP2 LT PUSH2 0x1077 JUMPI INVALID JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH1 0x1 PUSH1 0x2 DUP5 MUL ADD JUMPDEST PUSH1 0x1 DUP2 GT ISZERO PUSH2 0x1105 JUMPI PUSH32 0x3031323334353637383961626364656600000000000000000000000000000000 DUP6 PUSH1 0xF AND PUSH1 0x10 DUP2 LT PUSH2 0x10CE JUMPI INVALID JUMPDEST BYTE PUSH1 0xF8 SHL DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x10DE JUMPI INVALID JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH1 0x4 SWAP5 SWAP1 SWAP5 SHR SWAP4 PUSH1 0x0 NOT ADD PUSH2 0x1096 JUMP JUMPDEST POP DUP4 ISZERO PUSH2 0x685 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x537472696E67733A20686578206C656E67746820696E73756666696369656E74 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP4 PUSH1 0x2 SIGNEXTEND DUP3 PUSH1 0x2 SIGNEXTEND SLT ISZERO PUSH2 0x1172 JUMPI POP PUSH1 0x0 NOT PUSH2 0x685 JUMP JUMPDEST DUP3 PUSH1 0x2 SIGNEXTEND DUP3 PUSH1 0x2 SIGNEXTEND SGT ISZERO PUSH2 0x1188 JUMPI POP PUSH1 0x1 PUSH2 0x685 JUMP JUMPDEST POP PUSH1 0x0 PUSH2 0x685 JUMP JUMPDEST PUSH1 0x60 PUSH2 0x685 DUP4 DUP4 SHR PUSH1 0x3 PUSH2 0x19B2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0xFF DUP3 PUSH2 0x11AE DUP7 DUP7 PUSH2 0x1A79 JUMP JUMPDEST MUL DUP2 PUSH2 0x11B6 JUMPI INVALID JUMPDEST MOD SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x11FD PUSH2 0x11F8 DUP5 PUSH2 0x2C7 PUSH2 0x11D5 DUP9 DUP11 PUSH2 0xB5D JUMP JUMPDEST PUSH2 0x11F2 PUSH2 0x11E2 DUP9 DUP11 PUSH2 0xB5D JUMP JUMPDEST PUSH2 0x11EC DUP14 DUP14 PUSH2 0xB5D JUMP JUMPDEST SWAP1 PUSH2 0x1A80 JUMP JUMPDEST SWAP1 PUSH2 0xC14 JUMP JUMPDEST PUSH2 0x68C JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x1212 DUP3 PUSH2 0x1AD9 JUMP JUMPDEST PUSH2 0x122E DUP4 PUSH1 0x0 ADD MLOAD DUP5 PUSH1 0x20 ADD MLOAD DUP6 PUSH1 0x60 ADD MLOAD DUP7 PUSH1 0x80 ADD MLOAD PUSH2 0x218D JUMP JUMPDEST PUSH2 0x1245 DUP5 PUSH1 0x60 ADD MLOAD DUP6 PUSH1 0x80 ADD MLOAD DUP7 PUSH1 0xA0 ADD MLOAD PUSH2 0x24B8 JUMP JUMPDEST PUSH2 0x1263 DUP6 PUSH1 0xC0 ADD MLOAD DUP7 PUSH1 0xE0 ADD MLOAD DUP8 PUSH2 0x100 ADD MLOAD DUP9 PUSH2 0x120 ADD MLOAD PUSH2 0x2608 JUMP JUMPDEST PUSH2 0x1283 PUSH2 0x1274 DUP8 PUSH2 0x140 ADD MLOAD PUSH2 0x68C JUMP JUMPDEST DUP8 PUSH1 0xC0 ADD MLOAD DUP9 PUSH1 0xE0 ADD MLOAD PUSH2 0x295B JUMP JUMPDEST PUSH2 0x1296 DUP8 PUSH2 0x140 ADD MLOAD DUP9 PUSH1 0x40 ADD MLOAD PUSH2 0x2D8C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD DUP1 DUP8 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x12C8 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x12A9 JUMP JUMPDEST MLOAD DUP2 MLOAD PUSH1 0x20 SWAP4 DUP5 SUB PUSH2 0x100 EXP PUSH1 0x0 NOT ADD DUP1 NOT SWAP1 SWAP3 AND SWAP2 AND OR SWAP1 MSTORE DUP10 MLOAD SWAP2 SWAP1 SWAP4 ADD SWAP3 DUP10 ADD SWAP2 POP DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x1310 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x12F1 JUMP JUMPDEST MLOAD DUP2 MLOAD PUSH1 0x20 SWAP4 DUP5 SUB PUSH2 0x100 EXP PUSH1 0x0 NOT ADD DUP1 NOT SWAP1 SWAP3 AND SWAP2 AND OR SWAP1 MSTORE DUP9 MLOAD SWAP2 SWAP1 SWAP4 ADD SWAP3 DUP9 ADD SWAP2 POP DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x1358 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x1339 JUMP JUMPDEST MLOAD DUP2 MLOAD PUSH1 0x20 SWAP4 DUP5 SUB PUSH2 0x100 EXP PUSH1 0x0 NOT ADD DUP1 NOT SWAP1 SWAP3 AND SWAP2 AND OR SWAP1 MSTORE DUP8 MLOAD SWAP2 SWAP1 SWAP4 ADD SWAP3 DUP8 ADD SWAP2 POP DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x13A0 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x1381 JUMP JUMPDEST MLOAD DUP2 MLOAD PUSH1 0x20 SWAP4 DUP5 SUB PUSH2 0x100 EXP PUSH1 0x0 NOT ADD DUP1 NOT SWAP1 SWAP3 AND SWAP2 AND OR SWAP1 MSTORE DUP7 MLOAD SWAP2 SWAP1 SWAP4 ADD SWAP3 DUP7 ADD SWAP2 POP DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x13E8 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x13C9 JUMP JUMPDEST MLOAD DUP2 MLOAD PUSH1 0x20 SWAP4 DUP5 SUB PUSH2 0x100 EXP PUSH1 0x0 NOT ADD DUP1 NOT SWAP1 SWAP3 AND SWAP2 AND OR SWAP1 MSTORE DUP6 MLOAD SWAP2 SWAP1 SWAP4 ADD SWAP3 DUP6 ADD SWAP2 POP DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x1430 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x1411 JUMP JUMPDEST MLOAD DUP2 MLOAD PUSH1 0x20 SWAP4 SWAP1 SWAP4 SUB PUSH2 0x100 EXP PUSH1 0x0 NOT ADD DUP1 NOT SWAP1 SWAP2 AND SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 MSTORE PUSH32 0x3C2F7376673E0000000000000000000000000000000000000000000000000000 SWAP3 ADD SWAP2 DUP3 MSTORE POP PUSH1 0x40 DUP1 MLOAD DUP1 DUP4 SUB PUSH1 0x19 NOT ADD DUP2 MSTORE PUSH1 0x6 SWAP1 SWAP3 ADD SWAP1 MSTORE SWAP10 SWAP9 POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 PUSH1 0x2 SIGNEXTEND SLT PUSH2 0x14AD JUMPI DUP3 PUSH1 0x2 SIGNEXTEND PUSH2 0x14B5 JUMP JUMPDEST DUP3 PUSH1 0x2 SIGNEXTEND PUSH1 0x0 SUB JUMPDEST SWAP1 POP PUSH3 0xD89E8 DUP2 GT ISZERO PUSH2 0x150F JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5400000000000000000000000000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x1 DUP3 AND PUSH2 0x1523 JUMPI PUSH1 0x1 PUSH1 0x80 SHL PUSH2 0x1535 JUMP JUMPDEST PUSH16 0xFFFCB933BD6FAD37AA2D162D1A594001 JUMPDEST PUSH17 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP PUSH1 0x2 DUP3 AND ISZERO PUSH2 0x1569 JUMPI PUSH16 0xFFF97272373D413259A46990580E213A MUL PUSH1 0x80 SHR JUMPDEST PUSH1 0x4 DUP3 AND ISZERO PUSH2 0x1588 JUMPI PUSH16 0xFFF2E50F5F656932EF12357CF3C7FDCC MUL PUSH1 0x80 SHR JUMPDEST PUSH1 0x8 DUP3 AND ISZERO PUSH2 0x15A7 JUMPI PUSH16 0xFFE5CACA7E10E4E61C3624EAA0941CD0 MUL PUSH1 0x80 SHR JUMPDEST PUSH1 0x10 DUP3 AND ISZERO PUSH2 0x15C6 JUMPI PUSH16 0xFFCB9843D60F6159C9DB58835C926644 MUL PUSH1 0x80 SHR JUMPDEST PUSH1 0x20 DUP3 AND ISZERO PUSH2 0x15E5 JUMPI PUSH16 0xFF973B41FA98C081472E6896DFB254C0 MUL PUSH1 0x80 SHR JUMPDEST PUSH1 0x40 DUP3 AND ISZERO PUSH2 0x1604 JUMPI PUSH16 0xFF2EA16466C96A3843EC78B326B52861 MUL PUSH1 0x80 SHR JUMPDEST PUSH1 0x80 DUP3 AND ISZERO PUSH2 0x1623 JUMPI PUSH16 0xFE5DEE046A99A2A811C461F1969C3053 MUL PUSH1 0x80 SHR JUMPDEST PUSH2 0x100 DUP3 AND ISZERO PUSH2 0x1643 JUMPI PUSH16 0xFCBE86C7900A88AEDCFFC83B479AA3A4 MUL PUSH1 0x80 SHR JUMPDEST PUSH2 0x200 DUP3 AND ISZERO PUSH2 0x1663 JUMPI PUSH16 0xF987A7253AC413176F2B074CF7815E54 MUL PUSH1 0x80 SHR JUMPDEST PUSH2 0x400 DUP3 AND ISZERO PUSH2 0x1683 JUMPI PUSH16 0xF3392B0822B70005940C7A398E4B70F3 MUL PUSH1 0x80 SHR JUMPDEST PUSH2 0x800 DUP3 AND ISZERO PUSH2 0x16A3 JUMPI PUSH16 0xE7159475A2C29B7443B29C7FA6E889D9 MUL PUSH1 0x80 SHR JUMPDEST PUSH2 0x1000 DUP3 AND ISZERO PUSH2 0x16C3 JUMPI PUSH16 0xD097F3BDFD2022B8845AD8F792AA5825 MUL PUSH1 0x80 SHR JUMPDEST PUSH2 0x2000 DUP3 AND ISZERO PUSH2 0x16E3 JUMPI PUSH16 0xA9F746462D870FDF8A65DC1F90E061E5 MUL PUSH1 0x80 SHR JUMPDEST PUSH2 0x4000 DUP3 AND ISZERO PUSH2 0x1703 JUMPI PUSH16 0x70D869A156D2A1B890BB3DF62BAF32F7 MUL PUSH1 0x80 SHR JUMPDEST PUSH2 0x8000 DUP3 AND ISZERO PUSH2 0x1723 JUMPI PUSH16 0x31BE135F97D08FD981231505542FCFA6 MUL PUSH1 0x80 SHR JUMPDEST PUSH3 0x10000 DUP3 AND ISZERO PUSH2 0x1744 JUMPI PUSH16 0x9AA508B5B7A84E1C677DE54F3E99BC9 MUL PUSH1 0x80 SHR JUMPDEST PUSH3 0x20000 DUP3 AND ISZERO PUSH2 0x1764 JUMPI PUSH15 0x5D6AF8DEDB81196699C329225EE604 MUL PUSH1 0x80 SHR JUMPDEST PUSH3 0x40000 DUP3 AND ISZERO PUSH2 0x1783 JUMPI PUSH14 0x2216E584F5FA1EA926041BEDFE98 MUL PUSH1 0x80 SHR JUMPDEST PUSH3 0x80000 DUP3 AND ISZERO PUSH2 0x17A0 JUMPI PUSH12 0x48A170391F7DC42444E8FA2 MUL PUSH1 0x80 SHR JUMPDEST PUSH1 0x0 DUP5 PUSH1 0x2 SIGNEXTEND SGT ISZERO PUSH2 0x17BB JUMPI DUP1 PUSH1 0x0 NOT DUP2 PUSH2 0x17B7 JUMPI INVALID JUMPDEST DIV SWAP1 POP JUMPDEST PUSH5 0x100000000 DUP2 MOD ISZERO PUSH2 0x17CF JUMPI PUSH1 0x1 PUSH2 0x17D2 JUMP JUMPDEST PUSH1 0x0 JUMPDEST PUSH1 0xFF AND PUSH1 0x20 DUP3 SWAP1 SHR ADD SWAP3 POP POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH2 0x17F3 DUP6 DUP6 DUP6 PUSH2 0x2E04 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x180B DUP3 DUP4 PUSH9 0x10000000000000000 PUSH2 0x2F06 JUMP JUMPDEST SWAP1 POP PUSH13 0x1000000000000000000000000 DUP3 LT DUP1 ISZERO PUSH2 0x184C JUMPI PUSH2 0x1845 DUP3 PUSH19 0x47BF19673DF52E37F2410011D100000000000 PUSH1 0x1 PUSH1 0x80 SHL PUSH2 0x2F06 JUMP JUMPDEST SWAP2 POP PUSH2 0x1861 JUMP JUMPDEST PUSH2 0x185E DUP3 PUSH3 0x186A0 PUSH1 0x1 PUSH1 0x80 SHL PUSH2 0x2F06 JUMP JUMPDEST SWAP2 POP JUMPDEST DUP2 PUSH1 0x0 JUMPDEST DUP2 ISZERO PUSH2 0x1879 JUMPI PUSH1 0x1 ADD PUSH1 0xA DUP3 DIV SWAP2 POP PUSH2 0x1865 JUMP JUMPDEST PUSH1 0x0 NOT ADD PUSH1 0x0 DUP1 PUSH2 0x188A DUP7 DUP5 PUSH2 0x2FB5 JUMP JUMPDEST SWAP2 POP SWAP2 POP DUP1 ISZERO PUSH2 0x189B JUMPI PUSH1 0x1 SWAP1 SWAP3 ADD SWAP2 JUMPDEST PUSH2 0x18A3 PUSH2 0x3E02 JUMP JUMPDEST DUP6 ISZERO PUSH2 0x1910 JUMPI PUSH2 0x18C2 PUSH2 0x18BA PUSH1 0x2B PUSH1 0xFF DUP8 AND PUSH2 0xB5D JUMP JUMPDEST PUSH1 0x7 SWAP1 PUSH2 0xBBA JUMP JUMPDEST PUSH1 0xFF SWAP1 DUP2 AND PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x2 PUSH1 0x80 DUP4 ADD MSTORE PUSH2 0x18E8 SWAP1 PUSH1 0x1 SWAP1 PUSH2 0x2C7 SWAP1 PUSH1 0x2B SWAP1 DUP9 AND PUSH2 0xB5D JUMP JUMPDEST PUSH1 0xFF SWAP1 DUP2 AND PUSH1 0xA0 DUP4 ADD MSTORE PUSH1 0x20 DUP3 ADD MLOAD PUSH2 0x1903 SWAP2 AND PUSH1 0x1 PUSH2 0xB5D JUMP JUMPDEST PUSH1 0xFF AND PUSH1 0x40 DUP3 ADD MSTORE PUSH2 0x1987 JUMP JUMPDEST PUSH1 0x9 DUP5 PUSH1 0xFF AND LT PUSH2 0x1959 JUMPI PUSH2 0x1929 PUSH1 0xFF DUP6 AND PUSH1 0x4 PUSH2 0xB5D JUMP JUMPDEST PUSH1 0xFF AND PUSH1 0x20 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x5 PUSH1 0x80 DUP4 ADD MSTORE PUSH2 0x1945 SWAP1 PUSH1 0x1 PUSH2 0xB5D JUMP JUMPDEST PUSH1 0xFF AND PUSH1 0xA0 DUP3 ADD MSTORE PUSH1 0x4 PUSH1 0x40 DUP3 ADD MSTORE PUSH2 0x1987 JUMP JUMPDEST PUSH1 0x6 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x5 PUSH1 0x40 DUP3 ADD DUP2 SWAP1 MSTORE PUSH2 0x197E SWAP1 PUSH1 0x1 SWAP1 PUSH2 0x2C7 SWAP1 PUSH1 0xFF DUP9 AND SWAP1 PUSH2 0xB5D JUMP JUMPDEST PUSH1 0xFF AND PUSH1 0x60 DUP3 ADD MSTORE JUMPDEST DUP3 DUP2 MSTORE DUP6 ISZERO ISZERO PUSH1 0xC0 DUP3 ADD MSTORE PUSH1 0x0 PUSH1 0xE0 DUP3 ADD MSTORE PUSH2 0x19A2 DUP2 PUSH2 0xC7B JUMP JUMPDEST SWAP13 SWAP12 POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP3 PUSH1 0x2 MUL PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP1 ISZERO PUSH2 0x19D0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x19FB JUMPI PUSH1 0x20 DUP3 ADD DUP2 DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP DUP1 MLOAD SWAP1 SWAP2 POP JUMPDEST DUP1 ISZERO PUSH2 0x1A71 JUMPI PUSH32 0x3031323334353637383961626364656600000000000000000000000000000000 DUP6 PUSH1 0xF AND PUSH1 0x10 DUP2 LT PUSH2 0x1A37 JUMPI INVALID JUMPDEST BYTE PUSH1 0xF8 SHL DUP3 PUSH1 0x1 DUP4 SUB DUP2 MLOAD DUP2 LT PUSH2 0x1A4A JUMPI INVALID JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH1 0x4 SWAP5 SWAP1 SWAP5 SHR SWAP4 PUSH1 0x0 NOT ADD PUSH2 0x1A02 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST SHR PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x1A8F JUMPI POP PUSH1 0x0 PUSH2 0x486 JUMP JUMPDEST DUP3 DUP3 MUL DUP3 DUP5 DUP3 DUP2 PUSH2 0x1A9C JUMPI INVALID JUMPDEST DIV EQ PUSH2 0x685 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x21 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x548A PUSH1 0x21 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x60 PUSH2 0x1B6E DUP3 PUSH2 0x160 ADD MLOAD PUSH1 0x40 MLOAD PUSH1 0x20 ADD DUP1 DUP1 PUSH2 0x5044 PUSH1 0x81 SWAP2 CODECOPY PUSH1 0x81 ADD DUP3 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x1B21 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x1B02 JUMP JUMPDEST PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP3 MLOAD AND DUP2 DUP5 MLOAD AND DUP1 DUP3 OR DUP6 MSTORE POP POP POP POP POP POP SWAP1 POP ADD DUP1 PUSH9 0x13979F1E17B9BB339F PUSH1 0xB9 SHL DUP2 MSTORE POP PUSH1 0x9 ADD SWAP2 POP POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH2 0x9D8 JUMP JUMPDEST PUSH2 0x1CDA DUP4 PUSH2 0x1E0 ADD MLOAD DUP5 PUSH2 0x200 ADD MLOAD DUP6 PUSH2 0x180 ADD MLOAD PUSH1 0x40 MLOAD PUSH1 0x20 ADD DUP1 DUP1 PUSH2 0x4B81 PUSH1 0x63 SWAP2 CODECOPY PUSH1 0x63 ADD DUP5 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x1BC0 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x1BA1 JUMP JUMPDEST MLOAD DUP2 MLOAD PUSH1 0x20 SWAP4 DUP5 SUB PUSH2 0x100 EXP PUSH1 0x0 NOT ADD DUP1 NOT SWAP1 SWAP3 AND SWAP2 AND OR SWAP1 MSTORE PUSH6 0x272063793D27 PUSH1 0xD0 SHL SWAP2 SWAP1 SWAP4 ADD SWAP1 DUP2 MSTORE DUP6 MLOAD PUSH1 0x6 SWAP1 SWAP2 ADD SWAP3 DUP7 ADD SWAP2 POP DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x1C1A JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x1BFB JUMP JUMPDEST MLOAD DUP2 MLOAD PUSH1 0x20 SWAP4 DUP5 SUB PUSH2 0x100 EXP PUSH1 0x0 NOT ADD DUP1 NOT SWAP1 SWAP3 AND SWAP2 AND OR SWAP1 MSTORE PUSH32 0x2720723D273132307078272066696C6C3D272300000000000000000000000000 SWAP2 SWAP1 SWAP4 ADD SWAP1 DUP2 MSTORE DUP5 MLOAD PUSH1 0x13 SWAP1 SWAP2 ADD SWAP3 DUP6 ADD SWAP2 POP DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x1C8B JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x1C6C JUMP JUMPDEST PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP3 MLOAD AND DUP2 DUP5 MLOAD AND DUP1 DUP3 OR DUP6 MSTORE POP POP POP POP POP POP SWAP1 POP ADD DUP1 PUSH9 0x13979F1E17B9BB339F PUSH1 0xB9 SHL DUP2 MSTORE POP PUSH1 0x9 ADD SWAP4 POP POP POP POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH2 0x9D8 JUMP JUMPDEST PUSH2 0x1D2B DUP5 PUSH2 0x220 ADD MLOAD DUP6 PUSH2 0x240 ADD MLOAD DUP7 PUSH2 0x1A0 ADD MLOAD PUSH1 0x40 MLOAD PUSH1 0x20 ADD DUP1 DUP1 PUSH2 0x4B81 PUSH1 0x63 SWAP2 CODECOPY PUSH1 0x63 ADD DUP5 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x20 DUP4 LT PUSH2 0x1BC0 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x1BA1 JUMP JUMPDEST PUSH2 0x1E4A DUP6 PUSH2 0x260 ADD MLOAD DUP7 PUSH2 0x280 ADD MLOAD DUP8 PUSH2 0x1C0 ADD MLOAD PUSH1 0x40 MLOAD PUSH1 0x20 ADD DUP1 DUP1 PUSH2 0x4B81 PUSH1 0x63 SWAP2 CODECOPY PUSH1 0x63 ADD DUP5 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x1D7D JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x1D5E JUMP JUMPDEST MLOAD DUP2 MLOAD PUSH1 0x20 SWAP4 DUP5 SUB PUSH2 0x100 EXP PUSH1 0x0 NOT ADD DUP1 NOT SWAP1 SWAP3 AND SWAP2 AND OR SWAP1 MSTORE PUSH6 0x272063793D27 PUSH1 0xD0 SHL SWAP2 SWAP1 SWAP4 ADD SWAP1 DUP2 MSTORE DUP6 MLOAD PUSH1 0x6 SWAP1 SWAP2 ADD SWAP3 DUP7 ADD SWAP2 POP DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x1DD7 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x1DB8 JUMP JUMPDEST MLOAD DUP2 MLOAD PUSH1 0x0 NOT PUSH1 0x20 SWAP5 DUP6 SUB PUSH2 0x100 EXP ADD SWAP1 DUP2 AND SWAP1 NOT SWAP2 SWAP1 SWAP2 AND OR SWAP1 MSTORE PUSH32 0x2720723D273130307078272066696C6C3D272300000000000000000000000000 SWAP4 SWAP1 SWAP2 ADD SWAP3 DUP4 MSTORE DUP5 MLOAD PUSH1 0x13 SWAP1 SWAP4 ADD SWAP3 SWAP1 DUP6 ADD SWAP2 POP DUP1 DUP4 DUP4 PUSH1 0x20 DUP4 LT PUSH2 0x1C8B JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x1C6C JUMP JUMPDEST PUSH2 0x160 DUP7 ADD MLOAD PUSH1 0x40 MLOAD PUSH1 0x20 ADD DUP1 PUSH1 0x56 PUSH2 0x48FC DUP3 CODECOPY PUSH1 0x56 ADD PUSH1 0x2C PUSH2 0x52AB DUP3 CODECOPY PUSH32 0x3C646566733E0000000000000000000000000000000000000000000000000000 PUSH1 0x2C DUP3 ADD MSTORE PUSH1 0x32 ADD PUSH1 0x4B PUSH2 0x4FF9 DUP3 CODECOPY PUSH1 0x4B ADD DUP7 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x1EC6 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x1EA7 JUMP JUMPDEST PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP3 MLOAD AND DUP2 DUP5 MLOAD AND DUP1 DUP3 OR DUP6 MSTORE POP POP POP POP POP POP SWAP1 POP ADD DUP1 PUSH2 0x5B31 PUSH1 0x3E SWAP2 CODECOPY PUSH1 0x3E ADD DUP6 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x1F1E JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x1EFF JUMP JUMPDEST PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP3 MLOAD AND DUP2 DUP5 MLOAD AND DUP1 DUP3 OR DUP6 MSTORE POP POP POP POP POP POP SWAP1 POP ADD DUP1 PUSH2 0x50C5 PUSH1 0x3E SWAP2 CODECOPY PUSH1 0x3E ADD DUP5 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x1F76 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x1F57 JUMP JUMPDEST MLOAD DUP2 MLOAD PUSH1 0x20 SWAP4 SWAP1 SWAP4 SUB PUSH2 0x100 EXP PUSH1 0x0 NOT ADD DUP1 NOT SWAP1 SWAP2 AND SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 MSTORE PUSH32 0x22202F3E00000000000000000000000000000000000000000000000000000000 SWAP3 ADD SWAP2 DUP3 MSTORE POP PUSH1 0x4 ADD PUSH1 0x3B PUSH2 0x47F4 DUP3 CODECOPY PUSH1 0x3B ADD DUP4 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x1FF3 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x1FD4 JUMP JUMPDEST PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP3 MLOAD AND DUP2 DUP5 MLOAD AND DUP1 DUP3 OR DUP6 MSTORE POP POP POP POP POP POP SWAP1 POP ADD DUP1 PUSH2 0x4C41 PUSH1 0x99 SWAP2 CODECOPY PUSH1 0x99 ADD PUSH1 0x7F PUSH2 0x56E2 DUP3 CODECOPY PUSH1 0x7F ADD PUSH1 0x88 PUSH2 0x5AA9 DUP3 CODECOPY PUSH1 0x88 ADD PUSH1 0x41 PUSH2 0x4CDA DUP3 CODECOPY PUSH1 0x41 ADD PUSH1 0x5D PUSH2 0x5C69 DUP3 CODECOPY PUSH1 0x5D ADD PUSH1 0x72 PUSH2 0x578E DUP3 CODECOPY PUSH1 0x72 ADD PUSH1 0x49 PUSH2 0x475D DUP3 CODECOPY PUSH1 0x49 ADD PUSH1 0xBE PUSH2 0x4F3B DUP3 CODECOPY PUSH1 0xBE ADD PUSH1 0x71 PUSH2 0x4A0D DUP3 CODECOPY PUSH1 0x71 ADD PUSH1 0x75 PUSH2 0x5625 DUP3 CODECOPY PUSH1 0x75 ADD PUSH1 0x66 PUSH2 0x4D1B DUP3 CODECOPY PUSH1 0x66 ADD PUSH1 0xA4 PUSH2 0x52D7 DUP3 CODECOPY PUSH1 0xA4 ADD PUSH1 0x85 PUSH2 0x5B6F DUP3 CODECOPY PUSH32 0x3C6720636C69702D706174683D2275726C2823636F726E65727329223E000000 PUSH1 0x85 DUP3 ADD MSTORE PUSH32 0x3C726563742066696C6C3D220000000000000000000000000000000000000000 PUSH1 0xA2 DUP3 ADD MSTORE DUP3 MLOAD PUSH1 0xAE SWAP1 SWAP2 ADD SWAP1 PUSH1 0x20 DUP5 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x2111 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x20F2 JUMP JUMPDEST PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP3 MLOAD AND DUP2 DUP5 MLOAD AND DUP1 DUP3 OR DUP6 MSTORE POP POP POP POP POP POP SWAP1 POP ADD DUP1 PUSH2 0x4D81 PUSH1 0x31 SWAP2 CODECOPY PUSH1 0x31 ADD PUSH1 0x4E PUSH2 0x47A6 DUP3 CODECOPY PUSH1 0x4E ADD PUSH1 0x5D PUSH2 0x4BE4 DUP3 CODECOPY PUSH1 0x5D ADD PUSH1 0x41 PUSH2 0x522A DUP3 CODECOPY PUSH1 0x41 ADD PUSH1 0x52 PUSH2 0x5103 DUP3 CODECOPY PUSH1 0x52 ADD PUSH1 0x75 PUSH2 0x5BF4 DUP3 CODECOPY PUSH1 0x75 ADD SWAP6 POP POP POP POP POP POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 DUP4 DUP3 DUP6 DUP5 DUP9 DUP8 DUP11 DUP10 PUSH1 0x40 MLOAD PUSH1 0x20 ADD DUP1 DUP1 PUSH2 0x5D4C PUSH1 0x25 SWAP2 CODECOPY PUSH1 0x25 ADD PUSH1 0x7D PUSH2 0x4EBE DUP3 CODECOPY PUSH1 0x7D ADD DUP10 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x21DE JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x21BF JUMP JUMPDEST MLOAD DUP2 MLOAD PUSH1 0x20 SWAP4 DUP5 SUB PUSH2 0x100 EXP PUSH1 0x0 NOT ADD DUP1 NOT SWAP1 SWAP3 AND SWAP2 AND OR SWAP1 MSTORE PUSH5 0x107140511 PUSH1 0xDD SHL SWAP2 SWAP1 SWAP4 ADD SWAP1 DUP2 MSTORE DUP11 MLOAD PUSH1 0x5 SWAP1 SWAP2 ADD SWAP3 DUP12 ADD SWAP2 POP DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x2237 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x2218 JUMP JUMPDEST PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP3 MLOAD AND DUP2 DUP5 MLOAD AND DUP1 DUP3 OR DUP6 MSTORE POP POP POP POP POP POP SWAP1 POP ADD DUP1 PUSH2 0x4DB2 PUSH1 0x79 SWAP2 CODECOPY PUSH1 0x79 ADD PUSH1 0x86 PUSH2 0x5CC6 DUP3 CODECOPY PUSH1 0x86 ADD DUP8 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x2299 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x227A JUMP JUMPDEST MLOAD DUP2 MLOAD PUSH1 0x20 SWAP4 DUP5 SUB PUSH2 0x100 EXP PUSH1 0x0 NOT ADD DUP1 NOT SWAP1 SWAP3 AND SWAP2 AND OR SWAP1 MSTORE PUSH5 0x107140511 PUSH1 0xDD SHL SWAP2 SWAP1 SWAP4 ADD SWAP1 DUP2 MSTORE DUP9 MLOAD PUSH1 0x5 SWAP1 SWAP2 ADD SWAP3 DUP10 ADD SWAP2 POP DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x22F2 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x22D3 JUMP JUMPDEST PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP3 MLOAD AND DUP2 DUP5 MLOAD AND DUP1 DUP3 OR DUP6 MSTORE POP POP POP POP POP POP SWAP1 POP ADD DUP1 PUSH2 0x4988 PUSH1 0x85 SWAP2 CODECOPY PUSH1 0x85 ADD PUSH1 0x7B PUSH2 0x5917 DUP3 CODECOPY PUSH1 0x7B ADD DUP6 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x2354 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x2335 JUMP JUMPDEST MLOAD DUP2 MLOAD PUSH1 0x20 SWAP4 DUP5 SUB PUSH2 0x100 EXP PUSH1 0x0 NOT ADD DUP1 NOT SWAP1 SWAP3 AND SWAP2 AND OR SWAP1 MSTORE PUSH5 0x107140511 PUSH1 0xDD SHL SWAP2 SWAP1 SWAP4 ADD SWAP1 DUP2 MSTORE DUP7 MLOAD PUSH1 0x5 SWAP1 SWAP2 ADD SWAP3 DUP8 ADD SWAP2 POP DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x23AD JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x238E JUMP JUMPDEST PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP3 MLOAD AND DUP2 DUP5 MLOAD AND DUP1 DUP3 OR DUP6 MSTORE POP POP POP POP POP POP SWAP1 POP ADD DUP1 PUSH2 0x4AD2 PUSH1 0x5D SWAP2 CODECOPY PUSH1 0x5D ADD PUSH1 0xA3 PUSH2 0x5582 DUP3 CODECOPY PUSH1 0xA3 ADD DUP4 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x240F JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x23F0 JUMP JUMPDEST MLOAD DUP2 MLOAD PUSH1 0x20 SWAP4 DUP5 SUB PUSH2 0x100 EXP PUSH1 0x0 NOT ADD DUP1 NOT SWAP1 SWAP3 AND SWAP2 AND OR SWAP1 MSTORE PUSH5 0x107140511 PUSH1 0xDD SHL SWAP2 SWAP1 SWAP4 ADD SWAP1 DUP2 MSTORE DUP5 MLOAD PUSH1 0x5 SWAP1 SWAP2 ADD SWAP3 DUP6 ADD SWAP2 POP DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x2468 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x2449 JUMP JUMPDEST PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP3 MLOAD AND DUP2 DUP5 MLOAD AND DUP1 DUP3 OR DUP6 MSTORE POP POP POP POP POP POP SWAP1 POP ADD DUP1 PUSH2 0x46D2 PUSH1 0x8B SWAP2 CODECOPY PUSH1 0x8B ADD SWAP9 POP POP POP POP POP POP POP POP POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP4 DUP4 DUP4 PUSH1 0x40 MLOAD PUSH1 0x20 ADD DUP1 DUP1 PUSH2 0x482F PUSH1 0xCD SWAP2 CODECOPY PUSH1 0xCD ADD DUP5 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x24FA JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x24DB JUMP JUMPDEST PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP3 MLOAD AND DUP2 DUP5 MLOAD AND DUP1 DUP3 OR DUP6 MSTORE POP POP POP POP POP POP SWAP1 POP ADD DUP1 PUSH1 0x2F PUSH1 0xF8 SHL DUP2 MSTORE POP PUSH1 0x1 ADD DUP4 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x2553 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x2534 JUMP JUMPDEST PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP3 MLOAD AND DUP2 DUP5 MLOAD AND DUP1 DUP3 OR DUP6 MSTORE POP POP POP POP POP POP SWAP1 POP ADD DUP1 PUSH2 0x5EF5 PUSH1 0x77 SWAP2 CODECOPY PUSH1 0x77 ADD DUP3 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x25AB JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x258C JUMP JUMPDEST MLOAD DUP2 MLOAD PUSH1 0x20 SWAP4 SWAP1 SWAP4 SUB PUSH2 0x100 EXP PUSH1 0x0 NOT ADD DUP1 NOT SWAP1 SWAP2 AND SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 MSTORE PUSH11 0x1E17BA32BC3A1F1E17B39F PUSH1 0xA9 SHL SWAP3 ADD SWAP2 DUP3 MSTORE POP PUSH1 0xB ADD PUSH1 0x73 PUSH2 0x5D95 DUP3 CODECOPY PUSH1 0x73 ADD SWAP4 POP POP POP POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP3 PUSH1 0x0 SIGNEXTEND PUSH1 0x1 EQ PUSH2 0x269A JUMPI DUP3 PUSH1 0x0 SIGNEXTEND PUSH1 0x0 NOT EQ PUSH2 0x265E JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x5 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x236E6F6E65000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP PUSH2 0x2695 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0xA DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x23666164652D646F776E00000000000000000000000000000000000000000000 DUP2 MSTORE POP JUMPDEST PUSH2 0x26D1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x8 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x23666164652D7570000000000000000000000000000000000000000000000000 DUP2 MSTORE POP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x26E0 DUP8 DUP8 DUP8 PUSH2 0x3026 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 DUP4 DUP4 PUSH2 0x26EF DUP9 PUSH2 0x3274 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD DUP1 DUP1 PUSH32 0x3C67206D61736B3D2275726C2800000000000000000000000000000000000000 DUP2 MSTORE POP PUSH1 0xD ADD DUP7 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x2749 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x272A JUMP JUMPDEST MLOAD DUP2 MLOAD PUSH1 0x20 SWAP4 SWAP1 SWAP4 SUB PUSH2 0x100 EXP PUSH1 0x0 NOT ADD DUP1 NOT SWAP1 SWAP2 AND SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 MSTORE PUSH2 0x1491 PUSH1 0xF1 SHL SWAP3 ADD SWAP2 DUP3 MSTORE POP PUSH1 0x2 ADD PUSH1 0x77 PUSH2 0x537B DUP3 CODECOPY PUSH1 0x77 ADD DUP6 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x27AB JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x278C JUMP JUMPDEST PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP3 MLOAD AND DUP2 DUP5 MLOAD AND DUP1 DUP3 OR DUP6 MSTORE POP POP POP POP POP POP SWAP1 POP ADD DUP1 PUSH2 0x4A7E PUSH1 0x54 SWAP2 CODECOPY PUSH1 0x54 ADD DUP1 PUSH32 0x3C2F673E3C67206D61736B3D2275726C28000000000000000000000000000000 DUP2 MSTORE POP PUSH1 0x11 ADD DUP5 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x282B JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x280C JUMP JUMPDEST MLOAD DUP2 MLOAD PUSH1 0x20 SWAP4 SWAP1 SWAP4 SUB PUSH2 0x100 EXP PUSH1 0x0 NOT ADD DUP1 NOT SWAP1 SWAP2 AND SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 MSTORE PUSH2 0x1491 PUSH1 0xF1 SHL SWAP3 ADD SWAP2 DUP3 MSTORE POP PUSH1 0x2 ADD PUSH1 0x29 PUSH2 0x53F2 DUP3 CODECOPY PUSH1 0x29 ADD PUSH1 0x45 PUSH2 0x5445 DUP3 CODECOPY PUSH1 0x45 ADD DUP1 PUSH32 0x3C7061746820643D220000000000000000000000000000000000000000000000 DUP2 MSTORE POP PUSH1 0x9 ADD DUP4 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x28BF JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x28A0 JUMP JUMPDEST PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP3 MLOAD AND DUP2 DUP5 MLOAD AND DUP1 DUP3 OR DUP6 MSTORE POP POP POP POP POP POP SWAP1 POP ADD DUP1 PUSH2 0x569A PUSH1 0x48 SWAP2 CODECOPY PUSH1 0x48 ADD DUP3 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x2917 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x28F8 JUMP JUMPDEST PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP3 MLOAD AND DUP2 DUP5 MLOAD AND DUP1 DUP3 OR DUP6 MSTORE POP POP POP POP POP POP SWAP1 POP ADD SWAP6 POP POP POP POP POP POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP3 POP POP POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH2 0x2968 DUP5 PUSH2 0x3748 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x2975 DUP5 PUSH2 0x3748 JUMP JUMPDEST DUP7 MLOAD DUP4 MLOAD DUP3 MLOAD SWAP3 SWAP4 POP PUSH1 0x4 SWAP1 SWAP2 ADD SWAP2 PUSH1 0xA SWAP2 DUP3 ADD SWAP2 ADD PUSH1 0x0 DUP1 PUSH2 0x2998 DUP11 DUP11 PUSH2 0x3852 JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH2 0x29AB DUP6 PUSH1 0x4 ADD PUSH1 0x7 MUL PUSH2 0x68C JUMP JUMPDEST DUP12 PUSH2 0x29BB DUP7 PUSH1 0x4 ADD PUSH1 0x7 MUL PUSH2 0x68C JUMP JUMPDEST DUP10 PUSH2 0x29CB DUP8 PUSH1 0x4 ADD PUSH1 0x7 MUL PUSH2 0x68C JUMP JUMPDEST DUP11 DUP8 DUP8 PUSH1 0x40 MLOAD PUSH1 0x20 ADD DUP1 DUP1 PUSH2 0x5761 PUSH1 0x2D SWAP2 CODECOPY PUSH1 0x2D ADD DUP1 PUSH13 0x1E3932B1BA103BB4B23A341E91 PUSH1 0x99 SHL DUP2 MSTORE POP PUSH1 0xD ADD DUP10 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x2A23 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x2A04 JUMP JUMPDEST PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP3 MLOAD AND DUP2 DUP5 MLOAD AND DUP1 DUP3 OR DUP6 MSTORE POP POP POP POP POP POP SWAP1 POP ADD DUP1 PUSH2 0x5155 PUSH1 0x3D SWAP2 CODECOPY PUSH1 0x3D ADD PUSH1 0x8D PUSH2 0x5E08 DUP3 CODECOPY PUSH1 0x8D ADD DUP9 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x2A85 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x2A66 JUMP JUMPDEST MLOAD DUP2 MLOAD PUSH1 0x20 SWAP4 SWAP1 SWAP4 SUB PUSH2 0x100 EXP PUSH1 0x0 NOT ADD DUP1 NOT SWAP1 SWAP2 AND SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 MSTORE PUSH11 0x1E17BA32BC3A1F1E17B39F PUSH1 0xA9 SHL SWAP3 ADD SWAP2 DUP3 MSTORE POP PUSH1 0xB ADD PUSH1 0x2D PUSH2 0x5FA4 DUP3 CODECOPY PUSH1 0x2D ADD DUP1 PUSH13 0x1E3932B1BA103BB4B23A341E91 PUSH1 0x99 SHL DUP2 MSTORE POP PUSH1 0xD ADD DUP8 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x2B08 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x2AE9 JUMP JUMPDEST PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP3 MLOAD AND DUP2 DUP5 MLOAD AND DUP1 DUP3 OR DUP6 MSTORE POP POP POP POP POP POP SWAP1 POP ADD DUP1 PUSH2 0x5155 PUSH1 0x3D SWAP2 CODECOPY PUSH1 0x3D ADD PUSH1 0x93 PUSH2 0x4E2B DUP3 CODECOPY PUSH1 0x93 ADD DUP7 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x2B6A JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x2B4B JUMP JUMPDEST MLOAD DUP2 MLOAD PUSH1 0x20 SWAP4 SWAP1 SWAP4 SUB PUSH2 0x100 EXP PUSH1 0x0 NOT ADD DUP1 NOT SWAP1 SWAP2 AND SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 MSTORE PUSH11 0x1E17BA32BC3A1F1E17B39F PUSH1 0xA9 SHL SWAP3 ADD SWAP2 DUP3 MSTORE POP PUSH1 0xB ADD PUSH1 0x2D PUSH2 0x4B2F DUP3 CODECOPY PUSH1 0x2D ADD DUP1 PUSH13 0x1E3932B1BA103BB4B23A341E91 PUSH1 0x99 SHL DUP2 MSTORE POP PUSH1 0xD ADD DUP6 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x2BED JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x2BCE JUMP JUMPDEST PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP3 MLOAD AND DUP2 DUP5 MLOAD AND DUP1 DUP3 OR DUP6 MSTORE POP POP POP POP POP POP SWAP1 POP ADD DUP1 PUSH2 0x5155 PUSH1 0x3D SWAP2 CODECOPY PUSH1 0x3D ADD PUSH1 0x93 PUSH2 0x5992 DUP3 CODECOPY PUSH1 0x93 ADD DUP5 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x2C4F JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x2C30 JUMP JUMPDEST PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP3 MLOAD AND DUP2 DUP5 MLOAD AND DUP1 DUP3 OR DUP6 MSTORE POP POP POP POP POP POP SWAP1 POP ADD DUP1 PUSH2 0x5F6C PUSH1 0x38 SWAP2 CODECOPY PUSH1 0x38 ADD PUSH1 0x60 PUSH2 0x5E95 DUP3 CODECOPY PUSH1 0x60 ADD PUSH1 0x64 PUSH2 0x551E DUP3 CODECOPY PUSH1 0x64 ADD PUSH1 0x25 PUSH2 0x4B5C DUP3 CODECOPY PUSH1 0x25 ADD DUP4 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x2CC5 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x2CA6 JUMP JUMPDEST MLOAD DUP2 MLOAD PUSH1 0x20 SWAP4 DUP5 SUB PUSH2 0x100 EXP PUSH1 0x0 NOT ADD DUP1 NOT SWAP1 SWAP3 AND SWAP2 AND OR SWAP1 MSTORE PUSH32 0x70782C2000000000000000000000000000000000000000000000000000000000 SWAP2 SWAP1 SWAP4 ADD SWAP1 DUP2 MSTORE DUP5 MLOAD PUSH1 0x4 SWAP1 SWAP2 ADD SWAP3 DUP6 ADD SWAP2 POP DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x2D36 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x2D17 JUMP JUMPDEST PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP3 MLOAD AND DUP2 DUP5 MLOAD AND DUP1 DUP3 OR DUP6 MSTORE POP POP POP POP POP POP SWAP1 POP ADD DUP1 PUSH2 0x4952 PUSH1 0x36 SWAP2 CODECOPY PUSH1 0x36 ADD SWAP9 POP POP POP POP POP POP POP POP POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP8 POP POP POP POP POP POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x2D98 DUP4 DUP4 PUSH2 0x3C83 JUMP JUMPDEST ISZERO PUSH2 0x2DEE JUMPI PUSH1 0x40 MLOAD PUSH1 0x20 ADD DUP1 PUSH1 0x8D PUSH2 0x588A DUP3 CODECOPY PUSH1 0x8D ADD PUSH1 0x73 PUSH2 0x54AB DUP3 CODECOPY PUSH1 0x73 ADD PUSH1 0x71 PUSH2 0x51B9 DUP3 CODECOPY PUSH1 0x71 ADD PUSH1 0x8A PUSH2 0x5800 DUP3 CODECOPY PUSH1 0x8A ADD PUSH1 0x84 PUSH2 0x5A25 DUP3 CODECOPY PUSH1 0x84 ADD SWAP1 POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP PUSH2 0x486 JUMP JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP2 MSTORE SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x2E1F PUSH2 0x2E1A PUSH1 0xFF DUP7 DUP2 AND SWAP1 DUP7 AND PUSH2 0x3CE6 JUMP JUMPDEST PUSH2 0x3D4B JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 GT DUP1 ISZERO PUSH2 0x2E32 JUMPI POP PUSH1 0x12 DUP2 GT ISZERO JUMPDEST ISZERO PUSH2 0x2EF3 JUMPI DUP3 PUSH1 0xFF AND DUP5 PUSH1 0xFF AND GT ISZERO PUSH2 0x2E9C JUMPI PUSH2 0x2E66 PUSH2 0x2E53 DUP3 PUSH1 0x2 PUSH2 0xC14 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 AND SWAP1 PUSH1 0xA EXP PUSH2 0x1A80 JUMP JUMPDEST SWAP2 POP PUSH1 0x2 DUP2 MOD PUSH1 0x1 EQ ISZERO PUSH2 0x2E97 JUMPI PUSH2 0x2E94 DUP3 PUSH17 0x3298B075B4B6A5240945790619B37FD4A PUSH1 0x1 PUSH1 0x80 SHL PUSH2 0x2F06 JUMP JUMPDEST SWAP2 POP JUMPDEST PUSH2 0x2EEE JUMP JUMPDEST PUSH2 0x2EBD PUSH2 0x2EAA DUP3 PUSH1 0x2 PUSH2 0xC14 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 AND SWAP1 PUSH1 0xA EXP PUSH2 0xC14 JUMP JUMPDEST SWAP2 POP PUSH1 0x2 DUP2 MOD PUSH1 0x1 EQ ISZERO PUSH2 0x2EEE JUMPI PUSH2 0x2EEB DUP3 PUSH1 0x1 PUSH1 0x80 SHL PUSH17 0x3298B075B4B6A5240945790619B37FD4A PUSH2 0x2F06 JUMP JUMPDEST SWAP2 POP JUMPDEST PUSH2 0x1A71 JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 PUSH1 0x0 NOT DUP6 DUP8 MULMOD DUP7 DUP7 MUL SWAP3 POP DUP3 DUP2 LT SWAP1 DUP4 SWAP1 SUB SUB SWAP1 POP DUP1 PUSH2 0x2F3C JUMPI PUSH1 0x0 DUP5 GT PUSH2 0x2F31 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP3 SWAP1 DIV SWAP1 POP PUSH2 0x685 JUMP JUMPDEST DUP1 DUP5 GT PUSH2 0x2F48 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP5 DUP7 DUP9 MULMOD PUSH1 0x0 DUP7 DUP2 SUB DUP8 AND SWAP7 DUP8 SWAP1 DIV SWAP7 PUSH1 0x2 PUSH1 0x3 DUP10 MUL DUP2 XOR DUP1 DUP11 MUL DUP3 SUB MUL DUP1 DUP11 MUL DUP3 SUB MUL DUP1 DUP11 MUL DUP3 SUB MUL DUP1 DUP11 MUL DUP3 SUB MUL DUP1 DUP11 MUL DUP3 SUB MUL DUP1 DUP11 MUL SWAP1 SWAP2 SUB MUL SWAP2 DUP2 SWAP1 SUB DUP2 SWAP1 DIV PUSH1 0x1 ADD DUP7 DUP5 GT SWAP1 SWAP6 SUB SWAP5 SWAP1 SWAP5 MUL SWAP2 SWAP1 SWAP5 SUB SWAP3 SWAP1 SWAP3 DIV SWAP2 SWAP1 SWAP2 OR SWAP2 SWAP1 SWAP2 MUL SWAP2 POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x5 DUP5 PUSH1 0xFF AND GT ISZERO PUSH2 0x2FDD JUMPI PUSH2 0x2FDA DUP6 PUSH1 0xFF PUSH1 0x4 NOT DUP8 ADD AND PUSH1 0xA EXP PUSH2 0xC14 JUMP JUMPDEST SWAP5 POP JUMPDEST PUSH1 0x0 PUSH1 0x4 PUSH1 0xA DUP8 MOD GT SWAP1 POP PUSH2 0x2FF3 DUP7 PUSH1 0xA PUSH2 0xC14 JUMP JUMPDEST SWAP6 POP DUP1 ISZERO PUSH2 0x3002 JUMPI DUP6 PUSH1 0x1 ADD SWAP6 POP JUMPDEST DUP6 PUSH3 0x186A0 EQ ISZERO PUSH2 0x3018 JUMPI PUSH1 0xA DUP7 DIV SWAP6 POP PUSH1 0x1 SWAP2 POP JUMPDEST POP DUP5 SWAP3 POP SWAP1 POP JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP3 PUSH1 0x2 SIGNEXTEND DUP6 DUP6 SUB PUSH1 0x2 SIGNEXTEND DUP2 PUSH2 0x303B JUMPI INVALID JUMPDEST SDIV SWAP1 POP PUSH1 0x4 DUP2 PUSH1 0x2 SIGNEXTEND SGT PUSH2 0x3086 JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1A DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x4D31203143343120343120313035203130352031343520313435000000000000 DUP2 MSTORE POP SWAP2 POP PUSH2 0x1A71 JUMP JUMPDEST PUSH1 0x8 DUP2 PUSH1 0x2 SIGNEXTEND SGT PUSH2 0x30CE JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x19 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x4D31203143333320343920393720313133203134352031343500000000000000 DUP2 MSTORE POP SWAP2 POP PUSH2 0x1A71 JUMP JUMPDEST PUSH1 0x10 DUP2 PUSH1 0x2 SIGNEXTEND SGT PUSH2 0x3116 JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x19 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x4D31203143333320353720383920313133203134352031343500000000000000 DUP2 MSTORE POP SWAP2 POP PUSH2 0x1A71 JUMP JUMPDEST PUSH1 0x20 DUP2 PUSH1 0x2 SIGNEXTEND SGT PUSH2 0x315E JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x19 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x4D31203143323520363520383120313231203134352031343500000000000000 DUP2 MSTORE POP SWAP2 POP PUSH2 0x1A71 JUMP JUMPDEST PUSH1 0x40 DUP2 PUSH1 0x2 SIGNEXTEND SGT PUSH2 0x31A6 JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x19 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x4D31203143313720373320373320313239203134352031343500000000000000 DUP2 MSTORE POP SWAP2 POP PUSH2 0x1A71 JUMP JUMPDEST PUSH1 0x80 DUP2 PUSH1 0x2 SIGNEXTEND SGT PUSH2 0x31EE JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x18 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x4D31203143392038312036352031333720313435203134350000000000000000 DUP2 MSTORE POP SWAP2 POP PUSH2 0x1A71 JUMP JUMPDEST PUSH2 0x100 DUP2 PUSH1 0x2 SIGNEXTEND SGT PUSH2 0x3237 JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1A DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x4D31203143312038392035372E35203134352031343520313435000000000000 DUP2 MSTORE POP SWAP2 POP PUSH2 0x1A71 JUMP JUMPDEST POP POP PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x18 DUP2 MSTORE PUSH32 0x4D31203143312039372034392031343520313435203134350000000000000000 PUSH1 0x20 DUP3 ADD MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD DUP3 MSTORE PUSH1 0x2 DUP2 MSTORE PUSH32 0x3733000000000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP1 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP3 MLOAD DUP1 DUP5 ADD DUP5 MSTORE PUSH1 0x3 DUP1 DUP3 MSTORE PUSH32 0x3139300000000000000000000000000000000000000000000000000000000000 DUP3 DUP5 ADD MSTORE DUP5 MLOAD DUP1 DUP7 ADD DUP7 MSTORE DUP2 DUP2 MSTORE PUSH32 0x3231370000000000000000000000000000000000000000000000000000000000 DUP2 DUP6 ADD MSTORE DUP6 MLOAD DUP1 DUP8 ADD SWAP1 SWAP7 MSTORE SWAP1 DUP6 MSTORE PUSH32 0x3333340000000000000000000000000000000000000000000000000000000000 SWAP3 DUP6 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x60 SWAP4 SWAP1 SWAP2 SWAP1 PUSH1 0x1 PUSH1 0x0 DUP8 SWAP1 SIGNEXTEND EQ DUP1 PUSH2 0x335B JUMPI POP DUP6 PUSH1 0x0 SIGNEXTEND PUSH1 0x0 NOT EQ JUMPDEST ISZERO PUSH2 0x3552 JUMPI DUP6 PUSH1 0x0 SIGNEXTEND PUSH1 0x0 NOT EQ PUSH2 0x3372 JUMPI DUP2 PUSH2 0x3374 JUMP JUMPDEST DUP4 JUMPDEST DUP7 PUSH1 0x0 SIGNEXTEND PUSH1 0x0 NOT EQ PUSH2 0x3386 JUMPI DUP2 PUSH2 0x3388 JUMP JUMPDEST DUP4 JUMPDEST DUP8 PUSH1 0x0 SIGNEXTEND PUSH1 0x0 NOT EQ PUSH2 0x339A JUMPI DUP4 PUSH2 0x339C JUMP JUMPDEST DUP6 JUMPDEST DUP9 PUSH1 0x0 SIGNEXTEND PUSH1 0x0 NOT EQ PUSH2 0x33AE JUMPI DUP4 PUSH2 0x33B0 JUMP JUMPDEST DUP6 JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD DUP1 DUP1 PUSH12 0x1E31B4B931B6329031BC1E91 PUSH1 0xA1 SHL DUP2 MSTORE POP PUSH1 0xC ADD DUP6 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x33F9 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x33DA JUMP JUMPDEST MLOAD DUP2 MLOAD PUSH1 0x20 SWAP4 DUP5 SUB PUSH2 0x100 EXP PUSH1 0x0 NOT ADD DUP1 NOT SWAP1 SWAP3 AND SWAP2 AND OR SWAP1 MSTORE PUSH8 0x383C111031BC9E91 PUSH1 0xC1 SHL SWAP2 SWAP1 SWAP4 ADD SWAP1 DUP2 MSTORE DUP7 MLOAD PUSH1 0x8 SWAP1 SWAP2 ADD SWAP3 DUP8 ADD SWAP2 POP DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x3455 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x3436 JUMP JUMPDEST PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP3 MLOAD AND DUP2 DUP5 MLOAD AND DUP1 DUP3 OR DUP6 MSTORE POP POP POP POP POP POP SWAP1 POP ADD DUP1 PUSH2 0x5192 PUSH1 0x27 SWAP2 CODECOPY PUSH1 0x27 ADD DUP4 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x34AD JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x348E JUMP JUMPDEST MLOAD DUP2 MLOAD PUSH1 0x20 SWAP4 DUP5 SUB PUSH2 0x100 EXP PUSH1 0x0 NOT ADD DUP1 NOT SWAP1 SWAP3 AND SWAP2 AND OR SWAP1 MSTORE PUSH8 0x383C111031BC9E91 PUSH1 0xC1 SHL SWAP2 SWAP1 SWAP4 ADD SWAP1 DUP2 MSTORE DUP5 MLOAD PUSH1 0x8 SWAP1 SWAP2 ADD SWAP3 DUP6 ADD SWAP2 POP DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x3509 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x34EA JUMP JUMPDEST PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP3 MLOAD AND DUP2 DUP5 MLOAD AND DUP1 DUP3 OR DUP6 MSTORE POP POP POP POP POP POP SWAP1 POP ADD DUP1 PUSH2 0x541B PUSH1 0x2A SWAP2 CODECOPY PUSH1 0x2A ADD SWAP5 POP POP POP POP POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP5 POP PUSH2 0x373F JUMP JUMPDEST DUP4 DUP4 DUP4 DUP4 PUSH1 0x40 MLOAD PUSH1 0x20 ADD DUP1 DUP1 PUSH12 0x1E31B4B931B6329031BC1E91 PUSH1 0xA1 SHL DUP2 MSTORE POP PUSH1 0xC ADD DUP6 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x359F JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x3580 JUMP JUMPDEST MLOAD DUP2 MLOAD PUSH1 0x20 SWAP4 DUP5 SUB PUSH2 0x100 EXP PUSH1 0x0 NOT ADD DUP1 NOT SWAP1 SWAP3 AND SWAP2 AND OR SWAP1 MSTORE PUSH8 0x383C111031BC9E91 PUSH1 0xC1 SHL SWAP2 SWAP1 SWAP4 ADD SWAP1 DUP2 MSTORE DUP7 MLOAD PUSH1 0x8 SWAP1 SWAP2 ADD SWAP3 DUP8 ADD SWAP2 POP DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x35FB JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x35DC JUMP JUMPDEST MLOAD DUP2 MLOAD PUSH1 0x20 SWAP4 DUP5 SUB PUSH2 0x100 EXP PUSH1 0x0 NOT ADD DUP1 NOT SWAP1 SWAP3 AND SWAP2 AND OR SWAP1 MSTORE PUSH32 0x70782220723D22347078222066696C6C3D22776869746522202F3E0000000000 SWAP2 SWAP1 SWAP4 ADD SWAP1 DUP2 MSTORE PUSH12 0x1E31B4B931B6329031BC1E91 PUSH1 0xA1 SHL PUSH1 0x1B DUP3 ADD MSTORE DUP6 MLOAD PUSH1 0x27 SWAP1 SWAP2 ADD SWAP3 DUP7 ADD SWAP2 POP DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x3681 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x3662 JUMP JUMPDEST MLOAD DUP2 MLOAD PUSH1 0x20 SWAP4 DUP5 SUB PUSH2 0x100 EXP PUSH1 0x0 NOT ADD DUP1 NOT SWAP1 SWAP3 AND SWAP2 AND OR SWAP1 MSTORE PUSH8 0x383C111031BC9E91 PUSH1 0xC1 SHL SWAP2 SWAP1 SWAP4 ADD SWAP1 DUP2 MSTORE DUP5 MLOAD PUSH1 0x8 SWAP1 SWAP2 ADD SWAP3 DUP6 ADD SWAP2 POP DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x36DD JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x36BE JUMP JUMPDEST PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP3 MLOAD AND DUP2 DUP5 MLOAD AND DUP1 DUP3 OR DUP6 MSTORE POP POP POP POP POP POP SWAP1 POP ADD DUP1 PUSH32 0x70782220723D22347078222066696C6C3D22776869746522202F3E0000000000 DUP2 MSTORE POP PUSH1 0x1B ADD SWAP5 POP POP POP POP POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP5 POP JUMPDEST POP POP POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP SWAP1 POP PUSH1 0x0 DUP4 PUSH1 0x2 SIGNEXTEND SLT ISZERO PUSH2 0x378E JUMPI DUP3 PUSH1 0x0 NOT MUL SWAP3 POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x2D PUSH1 0xF8 SHL DUP2 MSTORE POP SWAP1 POP JUMPDEST DUP1 PUSH2 0x379B DUP5 PUSH1 0x2 SIGNEXTEND PUSH2 0x68C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD DUP1 DUP4 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x37CD JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x37AE JUMP JUMPDEST MLOAD DUP2 MLOAD PUSH1 0x20 SWAP4 DUP5 SUB PUSH2 0x100 EXP PUSH1 0x0 NOT ADD DUP1 NOT SWAP1 SWAP3 AND SWAP2 AND OR SWAP1 MSTORE DUP6 MLOAD SWAP2 SWAP1 SWAP4 ADD SWAP3 DUP6 ADD SWAP2 POP DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x3815 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x37F6 JUMP JUMPDEST PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP3 MLOAD AND DUP2 DUP5 MLOAD AND DUP1 DUP3 OR DUP6 MSTORE POP POP POP POP POP POP SWAP1 POP ADD SWAP3 POP POP POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 DUP1 PUSH1 0x0 PUSH1 0x2 DUP6 DUP6 ADD DUP2 SIGNEXTEND SDIV SWAP1 POP PUSH3 0x1E847 NOT DUP2 PUSH1 0x2 SIGNEXTEND SLT ISZERO PUSH2 0x38CA JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x7 PUSH1 0xFB SHL DUP2 MSTORE POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x3700000000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP SWAP3 POP SWAP3 POP POP PUSH2 0x301F JUMP JUMPDEST PUSH3 0x124F7 NOT DUP2 PUSH1 0x2 SIGNEXTEND SLT ISZERO PUSH2 0x3933 JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x7 PUSH1 0xFB SHL DUP2 MSTORE POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x4 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x31302E3500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP SWAP3 POP SWAP3 POP POP PUSH2 0x301F JUMP JUMPDEST PUSH2 0x61A7 NOT DUP2 PUSH1 0x2 SIGNEXTEND SLT ISZERO PUSH2 0x399B JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x7 PUSH1 0xFB SHL DUP2 MSTORE POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x5 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x31342E3235000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP SWAP3 POP SWAP3 POP POP PUSH2 0x301F JUMP JUMPDEST PUSH2 0x1387 NOT DUP2 PUSH1 0x2 SIGNEXTEND SLT ISZERO PUSH2 0x3A04 JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x2 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x3130000000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x2 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x627 PUSH1 0xF3 SHL DUP2 MSTORE POP SWAP3 POP SWAP3 POP POP PUSH2 0x301F JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x2 SIGNEXTEND SLT ISZERO PUSH2 0x3A6B JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x2 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x3131000000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x2 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x3231 PUSH1 0xF0 SHL DUP2 MSTORE POP SWAP3 POP SWAP3 POP POP PUSH2 0x301F JUMP JUMPDEST PUSH2 0x1388 DUP2 PUSH1 0x2 SIGNEXTEND SLT ISZERO PUSH2 0x3AEE JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x2 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x3133000000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x2 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x3233000000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP SWAP3 POP SWAP3 POP POP PUSH2 0x301F JUMP JUMPDEST PUSH2 0x61A8 DUP2 PUSH1 0x2 SIGNEXTEND SLT ISZERO PUSH2 0x3B71 JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x2 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x3135000000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x2 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x3235000000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP SWAP3 POP SWAP3 POP POP PUSH2 0x301F JUMP JUMPDEST PUSH3 0x124F8 DUP2 PUSH1 0x2 SIGNEXTEND SLT ISZERO PUSH2 0x3BDA JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x2 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x627 PUSH1 0xF3 SHL DUP2 MSTORE POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x2 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x3236000000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP SWAP3 POP SWAP3 POP POP PUSH2 0x301F JUMP JUMPDEST PUSH3 0x1E848 DUP2 PUSH1 0x2 SIGNEXTEND SLT ISZERO PUSH2 0x3C28 JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x2 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x3231 PUSH1 0xF0 SHL DUP2 MSTORE POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x2 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x3237 PUSH1 0xF0 SHL DUP2 MSTORE POP SWAP3 POP SWAP3 POP POP PUSH2 0x301F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x2 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x3234000000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x2 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x3237 PUSH1 0xF0 SHL DUP2 MSTORE POP SWAP3 POP SWAP3 POP POP PUSH2 0x301F JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP1 DUP3 ADD DUP6 SWAP1 MSTORE PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF NOT PUSH1 0x60 DUP6 SWAP1 SHL AND DUP3 DUP5 ADD MSTORE DUP3 MLOAD PUSH1 0x34 DUP2 DUP5 SUB ADD DUP2 MSTORE PUSH1 0x54 SWAP1 SWAP3 ADD SWAP1 SWAP3 MSTORE DUP1 MLOAD SWAP2 ADD KECCAK256 PUSH1 0x0 SWAP1 PUSH2 0x3CCA DUP5 PUSH2 0x3D62 JUMP JUMPDEST PUSH1 0x2 MUL PUSH1 0x1 ADD PUSH1 0xFF AND PUSH1 0x0 NOT DUP2 PUSH2 0x3CDD JUMPI INVALID JUMPDEST DIV GT SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 SUB DUP2 DUP4 SLT DUP1 ISZERO SWAP1 PUSH2 0x3CFB JUMPI POP DUP4 DUP2 SGT ISZERO JUMPDEST DUP1 PUSH2 0x3D10 JUMPI POP PUSH1 0x0 DUP4 SLT DUP1 ISZERO PUSH2 0x3D10 JUMPI POP DUP4 DUP2 SGT JUMPDEST PUSH2 0x685 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x24 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x5D71 PUSH1 0x24 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP3 SLT ISZERO PUSH2 0x3D5E JUMPI DUP2 PUSH1 0x0 SUB PUSH2 0x486 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 GT PUSH2 0x3D70 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x80 SHL DUP3 LT PUSH2 0x3D83 JUMPI PUSH1 0x80 SWAP2 DUP3 SHR SWAP2 ADD JUMPDEST PUSH9 0x10000000000000000 DUP3 LT PUSH2 0x3D9B JUMPI PUSH1 0x40 SWAP2 DUP3 SHR SWAP2 ADD JUMPDEST PUSH5 0x100000000 DUP3 LT PUSH2 0x3DAF JUMPI PUSH1 0x20 SWAP2 DUP3 SHR SWAP2 ADD JUMPDEST PUSH3 0x10000 DUP3 LT PUSH2 0x3DC1 JUMPI PUSH1 0x10 SWAP2 DUP3 SHR SWAP2 ADD JUMPDEST PUSH2 0x100 DUP3 LT PUSH2 0x3DD2 JUMPI PUSH1 0x8 SWAP2 DUP3 SHR SWAP2 ADD JUMPDEST PUSH1 0x10 DUP3 LT PUSH2 0x3DE2 JUMPI PUSH1 0x4 SWAP2 DUP3 SHR SWAP2 ADD JUMPDEST PUSH1 0x4 DUP3 LT PUSH2 0x3DF2 JUMPI PUSH1 0x2 SWAP2 DUP3 SHR SWAP2 ADD JUMPDEST PUSH1 0x2 DUP3 LT PUSH2 0x16B JUMPI PUSH1 0x1 ADD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH2 0x100 DUP2 ADD DUP3 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP2 SWAP1 MSTORE SWAP2 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x60 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x80 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0xA0 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0xC0 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0xE0 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP1 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x16B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x16B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH1 0x2 DUP2 SWAP1 SIGNEXTEND DUP2 EQ PUSH2 0x16B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x3E8F JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3EA3 JUMPI INVALID JUMPDEST PUSH2 0x3EB6 PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD PUSH2 0x467D JUMP JUMPDEST DUP2 DUP2 MSTORE DUP5 PUSH1 0x20 DUP4 DUP7 ADD ADD GT ISZERO PUSH2 0x3ECA JUMPI DUP3 DUP4 REVERT JUMPDEST DUP2 PUSH1 0x20 DUP6 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY SWAP1 DUP2 ADD PUSH1 0x20 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH3 0xFFFFFF DUP2 AND DUP2 EQ PUSH2 0x16B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH1 0xFF DUP2 AND DUP2 EQ PUSH2 0x16B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3F19 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x3F30 JUMPI DUP3 DUP4 REVERT JUMPDEST DUP2 DUP5 ADD SWAP2 POP PUSH2 0x1C0 DUP1 DUP4 DUP8 SUB SLT ISZERO PUSH2 0x3F46 JUMPI DUP4 DUP5 REVERT JUMPDEST PUSH2 0x3F4F DUP2 PUSH2 0x467D JUMP JUMPDEST SWAP1 POP DUP3 CALLDATALOAD DUP2 MSTORE PUSH2 0x3F61 PUSH1 0x20 DUP5 ADD PUSH2 0x3E46 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD MSTORE PUSH2 0x3F72 PUSH1 0x40 DUP5 ADD PUSH2 0x3E46 JUMP JUMPDEST PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 DUP4 ADD CALLDATALOAD DUP3 DUP2 GT ISZERO PUSH2 0x3F88 JUMPI DUP5 DUP6 REVERT JUMPDEST PUSH2 0x3F94 DUP8 DUP3 DUP7 ADD PUSH2 0x3E7F JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP PUSH1 0x80 DUP4 ADD CALLDATALOAD DUP3 DUP2 GT ISZERO PUSH2 0x3FAB JUMPI DUP5 DUP6 REVERT JUMPDEST PUSH2 0x3FB7 DUP8 DUP3 DUP7 ADD PUSH2 0x3E7F JUMP JUMPDEST PUSH1 0x80 DUP4 ADD MSTORE POP PUSH2 0x3FC9 PUSH1 0xA0 DUP5 ADD PUSH2 0x3EF7 JUMP JUMPDEST PUSH1 0xA0 DUP3 ADD MSTORE PUSH2 0x3FDA PUSH1 0xC0 DUP5 ADD PUSH2 0x3EF7 JUMP JUMPDEST PUSH1 0xC0 DUP3 ADD MSTORE PUSH2 0x3FEB PUSH1 0xE0 DUP5 ADD PUSH2 0x3E5D JUMP JUMPDEST PUSH1 0xE0 DUP3 ADD MSTORE PUSH2 0x100 SWAP2 POP PUSH2 0x4000 DUP3 DUP5 ADD PUSH2 0x3E6D JUMP JUMPDEST DUP3 DUP3 ADD MSTORE PUSH2 0x120 SWAP2 POP PUSH2 0x4014 DUP3 DUP5 ADD PUSH2 0x3E6D JUMP JUMPDEST DUP3 DUP3 ADD MSTORE PUSH2 0x140 SWAP2 POP PUSH2 0x4028 DUP3 DUP5 ADD PUSH2 0x3E6D JUMP JUMPDEST DUP3 DUP3 ADD MSTORE PUSH2 0x160 SWAP2 POP PUSH2 0x403C DUP3 DUP5 ADD PUSH2 0x3E6D JUMP JUMPDEST DUP3 DUP3 ADD MSTORE PUSH2 0x180 SWAP2 POP PUSH2 0x4050 DUP3 DUP5 ADD PUSH2 0x3EE4 JUMP JUMPDEST DUP3 DUP3 ADD MSTORE PUSH2 0x1A0 SWAP2 POP PUSH2 0x4064 DUP3 DUP5 ADD PUSH2 0x3E46 JUMP JUMPDEST SWAP2 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD PUSH2 0x4085 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x46A1 JUMP JUMPDEST SWAP3 SWAP1 SWAP3 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0xE29AA0EFB88F20444953434C41494D45523A204475652064696C6967656E6365 DUP2 MSTORE PUSH32 0x20697320696D7065726174697665207768656E20617373657373696E67207468 PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x6973204E46542E204D616B65207375726520746F6B656E206164647265737365 PUSH1 0x40 DUP3 ADD MSTORE PUSH32 0x73206D617463682074686520657870656374656420746F6B656E732C20617320 PUSH1 0x60 DUP3 ADD MSTORE PUSH32 0x746F6B656E2073796D626F6C73206D617920626520696D6974617465642E0000 PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0x9E ADD SWAP1 JUMP JUMPDEST PUSH32 0x5C6E5C6E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH32 0x7B226E616D65223A220000000000000000000000000000000000000000000000 DUP3 MSTORE DUP6 MLOAD PUSH2 0x41B1 DUP2 PUSH1 0x9 DUP6 ADD PUSH1 0x20 DUP11 ADD PUSH2 0x46A1 JUMP JUMPDEST PUSH32 0x222C20226465736372697074696F6E223A220000000000000000000000000000 PUSH1 0x9 SWAP2 DUP5 ADD SWAP2 DUP3 ADD MSTORE DUP6 MLOAD PUSH2 0x41EE DUP2 PUSH1 0x1B DUP5 ADD PUSH1 0x20 DUP11 ADD PUSH2 0x46A1 JUMP JUMPDEST DUP6 MLOAD SWAP2 ADD SWAP1 PUSH2 0x4204 DUP2 PUSH1 0x1B DUP5 ADD PUSH1 0x20 DUP10 ADD PUSH2 0x46A1 JUMP JUMPDEST PUSH32 0x222C2022696D616765223A202200000000000000000000000000000000000000 PUSH1 0x1B SWAP3 SWAP1 SWAP2 ADD SWAP2 DUP3 ADD MSTORE PUSH32 0x646174613A696D6167652F7376672B786D6C3B6261736536342C000000000000 PUSH1 0x28 DUP3 ADD MSTORE DUP4 MLOAD PUSH2 0x4268 DUP2 PUSH1 0x42 DUP5 ADD PUSH1 0x20 DUP9 ADD PUSH2 0x46A1 JUMP JUMPDEST PUSH32 0x227D000000000000000000000000000000000000000000000000000000000000 PUSH1 0x42 SWAP3 SWAP1 SWAP2 ADD SWAP2 DUP3 ADD MSTORE PUSH1 0x44 ADD SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH32 0x4173747261202D20000000000000000000000000000000000000000000000000 DUP3 MSTORE DUP7 MLOAD PUSH2 0x42D8 DUP2 PUSH1 0x8 DUP6 ADD PUSH1 0x20 DUP12 ADD PUSH2 0x46A1 JUMP JUMPDEST DUP1 DUP4 ADD SWAP1 POP PUSH32 0x202D200000000000000000000000000000000000000000000000000000000000 DUP1 PUSH1 0x8 DUP4 ADD MSTORE DUP8 MLOAD PUSH2 0x4317 DUP2 PUSH1 0xB DUP6 ADD PUSH1 0x20 DUP13 ADD PUSH2 0x46A1 JUMP JUMPDEST PUSH1 0x2F PUSH1 0xF8 SHL PUSH1 0xB SWAP4 SWAP1 SWAP2 ADD SWAP3 DUP4 ADD MSTORE DUP7 MLOAD PUSH2 0x4339 DUP2 PUSH1 0xC DUP6 ADD PUSH1 0x20 DUP12 ADD PUSH2 0x46A1 JUMP JUMPDEST PUSH1 0xC SWAP3 ADD SWAP2 DUP3 ADD MSTORE DUP5 MLOAD PUSH2 0x4354 DUP2 PUSH1 0xF DUP5 ADD PUSH1 0x20 DUP10 ADD PUSH2 0x46A1 JUMP JUMPDEST PUSH32 0x3C3E000000000000000000000000000000000000000000000000000000000000 PUSH1 0xF SWAP3 SWAP1 SWAP2 ADD SWAP2 DUP3 ADD MSTORE DUP4 MLOAD PUSH2 0x4392 DUP2 PUSH1 0x11 DUP5 ADD PUSH1 0x20 DUP9 ADD PUSH2 0x46A1 JUMP JUMPDEST ADD PUSH1 0x11 ADD SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH32 0x20416464726573733A2000000000000000000000000000000000000000000000 DUP1 DUP4 MSTORE DUP8 MLOAD PUSH2 0x43DA DUP2 PUSH1 0xA DUP7 ADD PUSH1 0x20 DUP13 ADD PUSH2 0x46A1 JUMP JUMPDEST PUSH2 0x2E37 PUSH1 0xF1 SHL PUSH1 0xA SWAP2 DUP6 ADD SWAP2 DUP3 ADD MSTORE DUP8 MLOAD PUSH2 0x43FC DUP2 PUSH1 0xC DUP5 ADD PUSH1 0x20 DUP13 ADD PUSH2 0x46A1 JUMP JUMPDEST ADD PUSH1 0xC DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP6 MLOAD SWAP1 PUSH2 0x4419 DUP3 PUSH1 0x16 DUP4 ADD PUSH1 0x20 DUP11 ADD PUSH2 0x46A1 JUMP JUMPDEST DUP2 DUP2 ADD SWAP2 POP POP PUSH32 0x5C6E46656520546965723A200000000000000000000000000000000000000000 PUSH1 0x16 DUP3 ADD MSTORE DUP5 MLOAD PUSH2 0x4458 DUP2 PUSH1 0x22 DUP5 ADD PUSH1 0x20 DUP10 ADD PUSH2 0x46A1 JUMP JUMPDEST PUSH32 0x5C6E546F6B656E2049443A200000000000000000000000000000000000000000 PUSH1 0x22 SWAP3 SWAP1 SWAP2 ADD SWAP2 DUP3 ADD MSTORE DUP4 MLOAD PUSH2 0x4496 DUP2 PUSH1 0x2E DUP5 ADD PUSH1 0x20 DUP9 ADD PUSH2 0x46A1 JUMP JUMPDEST PUSH2 0x44AC PUSH2 0x44A7 PUSH1 0x2E DUP4 DUP6 ADD ADD PUSH2 0x4150 JUMP JUMPDEST PUSH2 0x408F JUMP JUMPDEST SWAP10 SWAP9 POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH32 0x54686973204E465420726570726573656E74732061206C697175696469747920 DUP3 MSTORE PUSH32 0x706F736974696F6E20696E206120417374726144455820434C20000000000000 PUSH1 0x20 DUP4 ADD MSTORE DUP6 MLOAD PUSH2 0x4517 DUP2 PUSH1 0x3A DUP6 ADD PUSH1 0x20 DUP11 ADD PUSH2 0x46A1 JUMP JUMPDEST PUSH1 0x2D PUSH1 0xF8 SHL PUSH1 0x3A SWAP2 DUP5 ADD SWAP2 DUP3 ADD MSTORE DUP6 MLOAD PUSH2 0x4538 DUP2 PUSH1 0x3B DUP5 ADD PUSH1 0x20 DUP11 ADD PUSH2 0x46A1 JUMP JUMPDEST PUSH32 0x20706F6F6C2E2000000000000000000000000000000000000000000000000000 PUSH1 0x3B SWAP3 SWAP1 SWAP2 ADD SWAP2 DUP3 ADD MSTORE PUSH32 0x546865206F776E6572206F662074686973204E46542063616E206D6F64696679 PUSH1 0x42 DUP3 ADD MSTORE PUSH32 0x206F722072656465656D2074686520706F736974696F6E2E5C6E000000000000 PUSH1 0x62 DUP3 ADD MSTORE PUSH32 0x5C6E506F6F6C20416464726573733A2000000000000000000000000000000000 PUSH1 0x7C DUP3 ADD MSTORE DUP5 MLOAD PUSH2 0x45E8 DUP2 PUSH1 0x8C DUP5 ADD PUSH1 0x20 DUP10 ADD PUSH2 0x46A1 JUMP JUMPDEST PUSH2 0x2E37 PUSH1 0xF1 SHL PUSH1 0x8C SWAP3 SWAP1 SWAP2 ADD SWAP2 DUP3 ADD MSTORE PUSH2 0x3C6 PUSH1 0x8E DUP3 ADD DUP6 PUSH2 0x4073 JUMP JUMPDEST PUSH1 0x0 PUSH32 0x646174613A6170706C69636174696F6E2F6A736F6E3B6261736536342C000000 DUP3 MSTORE DUP3 MLOAD PUSH2 0x463D DUP2 PUSH1 0x1D DUP6 ADD PUSH1 0x20 DUP8 ADD PUSH2 0x46A1 JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD PUSH1 0x1D ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 MSTORE DUP3 MLOAD DUP1 PUSH1 0x20 DUP5 ADD MSTORE PUSH2 0x4669 DUP2 PUSH1 0x40 DUP6 ADD PUSH1 0x20 DUP8 ADD PUSH2 0x46A1 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP2 SWAP1 SWAP2 ADD PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD DUP2 DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x4699 JUMPI INVALID JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x46BC JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x46A4 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x46CB JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP INVALID KECCAK256 EXTCODECOPY PUSH2 0x6E69 PUSH14 0x6174652061646469746976653D22 PUSH20 0x756D22206174747269627574654E616D653D2273 PUSH21 0x6172744F6666736574222066726F6D3D2230252220 PUSH21 0x6F3D22313030252220626567696E3D223073222064 PUSH22 0x723D223330732220726570656174436F756E743D2269 PUSH15 0x646566696E69746522202F3E3C2F74 PUSH6 0x787450617468 RETURNDATACOPY EXTCODECOPY 0x2F PUSH21 0x6578743E3C73746F70206F66667365743D222E3922 KECCAK256 PUSH20 0x746F702D636F6C6F723D22776869746522207374 PUSH16 0x702D6F7061636974793D223022202F3E EXTCODECOPY 0x2F PUSH13 0x696E6561724772616469656E74 RETURNDATACOPY EXTCODECOPY PUSH19 0x656374207374796C653D2266696C7465723A20 PUSH22 0x726C28236631292220783D223070782220793D223070 PUSH25 0x222077696474683D22323930707822206865696768743D2235 ADDRESS ADDRESS PUSH17 0x7822202F3E3C6665496D61676520726573 PUSH22 0x6C743D2270332220786C696E6B3A687265663D226461 PUSH21 0x613A696D6167652F7376672B786D6C3B6261736536 CALLVALUE 0x2C EXTCODECOPY PUSH8 0x206D61736B3D2275 PUSH19 0x6C2823666164652D73796D626F6C29223E3C72 PUSH6 0x63742066696C PUSH13 0x3D226E6F6E652220783D223070 PUSH25 0x2220793D22307078222077696474683D223239307078222068 PUSH6 0x696768743D22 ORIGIN ADDRESS ADDRESS PUSH17 0x7822202F3E203C7465787420793D223730 PUSH17 0x782220783D2233327078222066696C6C3D 0x22 PUSH24 0x686974652220666F6E742D66616D696C793D2227436F7572 PUSH10 0x6572204E6577272C206D PUSH16 0x6E6F73706163652220666F6E742D7765 PUSH10 0x6768743D223230302220 PUSH7 0x6F6E742D73697A PUSH6 0x3D2233367078 0x22 RETURNDATACOPY EXTCODECOPY PUSH20 0x76672077696474683D2232393022206865696768 PUSH21 0x3D22353030222076696577426F783D223020302032 CODECOPY ADDRESS KECCAK256 CALLDATALOAD ADDRESS ADDRESS 0x22 KECCAK256 PUSH25 0x6D6C6E733D22687474703A2F2F7777772E77332E6F72672F32 ADDRESS ADDRESS ADDRESS 0x2F PUSH20 0x76672270782C2030707829222063783D22307078 0x22 KECCAK256 PUSH4 0x793D2230 PUSH17 0x782220723D22347078222066696C6C3D22 PUSH24 0x68697465222F3E3C2F673E203C616E696D61746520616464 PUSH10 0x746976653D2273756D22 KECCAK256 PUSH2 0x7474 PUSH19 0x69627574654E616D653D2273746172744F6666 PUSH20 0x6574222066726F6D3D2230252220746F3D223130 ADDRESS 0x25 0x22 KECCAK256 PUSH3 0x656769 PUSH15 0x3D22307322206475723D2233307322 KECCAK256 PUSH19 0x6570656174436F756E743D22696E646566696E PUSH10 0x746522202F3E203C2F74 PUSH6 0x787450617468 RETURNDATACOPY EXTCODECOPY PUSH14 0x61736B2069643D22666164652D75 PUSH17 0x22206D61736B436F6E74656E74556E6974 PUSH20 0x3D226F626A656374426F756E64696E67426F7822 RETURNDATACOPY EXTCODECOPY PUSH19 0x6563742077696474683D223122206865696768 PUSH21 0x3D2231222066696C6C3D2275726C2823677261642D PUSH22 0x702922202F3E3C2F6D61736B3E22207374726F6B653D 0x22 PUSH19 0x67626128302C302C302C302E33292220737472 PUSH16 0x6B652D77696474683D22333270782220 PUSH7 0x696C6C3D226E6F PUSH15 0x6522207374726F6B652D6C696E6563 PUSH2 0x703D 0x22 PUSH19 0x6F756E6422202F3E203C616E696D6174652061 PUSH5 0x6469746976 PUSH6 0x3D2273756D22 KECCAK256 PUSH2 0x7474 PUSH19 0x69627574654E616D653D2273746172744F6666 PUSH20 0x6574222066726F6D3D2230252220746F3D223130 ADDRESS 0x25 0x22 KECCAK256 PUSH3 0x656769 PUSH15 0x3D22307322206475723D2233307322 KECCAK256 EXTCODECOPY PUSH8 0x207374796C653D22 PUSH21 0x72616E73666F726D3A7472616E736C617465283239 PUSH17 0x782C20343434707829223E3C636972636C PUSH6 0x207374796C65 RETURNDATASIZE 0x22 PUSH21 0x72616E73666F726D3A7472616E736C617465336428 EXTCODECOPY PUSH20 0x76672077696474683D2732393027206865696768 PUSH21 0x3D27353030272076696577426F783D273020302032 CODECOPY ADDRESS KECCAK256 CALLDATALOAD ADDRESS ADDRESS 0x27 KECCAK256 PUSH25 0x6D6C6E733D27687474703A2F2F7777772E77332E6F72672F32 ADDRESS ADDRESS ADDRESS 0x2F PUSH20 0x7667273E3C636972636C652063783D27203C6720 PUSH20 0x74796C653D2266696C7465723A75726C2823746F PUSH17 0x2D726567696F6E2D626C7572293B207472 PUSH2 0x6E73 PUSH7 0x6F726D3A736361 PUSH13 0x6528312E35293B207472616E73 PUSH7 0x6F726D2D6F7269 PUSH8 0x696E3A63656E7465 PUSH19 0x20746F703B223E22202F3E3C6665426C656E64 KECCAK256 PUSH14 0x6F64653D226F7665726C61792220 PUSH10 0x6E3D2270302220696E32 RETURNDATASIZE 0x22 PUSH17 0x3122202F3E3C6665426C656E64206D6F64 PUSH6 0x3D226578636C PUSH22 0x73696F6E2220696E323D22703222202F3E3C6665426C PUSH6 0x6E64206D6F64 PUSH6 0x3D226F766572 PUSH13 0x61792220696E323D2270332220 PUSH19 0x6573756C743D22626C656E644F757422202F3E EXTCODECOPY PUSH7 0x65476175737369 PUSH2 0x6E42 PUSH13 0x7572203C706174682069643D22 PUSH14 0x696E696D61702220643D224D3233 CALLVALUE KECCAK256 CALLVALUE CALLVALUE CALLVALUE NUMBER ORIGIN CALLER CALLVALUE KECCAK256 CALLVALUE CALLDATALOAD CALLDATACOPY 0x2E CODECOPY CALLVALUE CODECOPY KECCAK256 ORIGIN CALLVALUE ORIGIN 0x2E ORIGIN BALANCE KECCAK256 CALLVALUE CALLDATASIZE CALLER KECCAK256 ORIGIN CALLDATALOAD CALLER KECCAK256 CALLVALUE CALLDATASIZE CALLER 0x22 KECCAK256 0x2F RETURNDATACOPY EXTCODECOPY PUSH14 0x61736B2069643D226E6F6E652220 PUSH14 0x61736B436F6E74656E74556E6974 PUSH20 0x3D226F626A656374426F756E64696E67426F7822 RETURNDATACOPY EXTCODECOPY PUSH19 0x6563742077696474683D223122206865696768 PUSH21 0x3D2231222066696C6C3D22776869746522202F3E3C 0x2F PUSH14 0x61736B3E2220783D223070782220 PUSH26 0x3D22307078222077696474683D22323930707822206865696768 PUSH21 0x3D22353030707822202F3E203C616E696D61746520 PUSH2 0x6464 PUSH10 0x746976653D2273756D22 KECCAK256 PUSH2 0x7474 PUSH19 0x69627574654E616D653D2273746172744F6666 PUSH20 0x6574222066726F6D3D2230252220746F3D223130 ADDRESS 0x25 0x22 KECCAK256 PUSH3 0x656769 PUSH15 0x3D22307322206475723D2233307322 KECCAK256 PUSH19 0x6570656174436F756E743D22696E646566696E PUSH10 0x746522202F3E3C746578 PUSH21 0x20783D22313270782220793D22313770782220666F PUSH15 0x742D66616D696C793D2227436F7572 PUSH10 0x6572204E6577272C206D PUSH16 0x6E6F73706163652220666F6E742D7369 PUSH27 0x653D2231327078222066696C6C3D227768697465223E3C74737061 PUSH15 0x2066696C6C3D227267626128323535 0x2C ORIGIN CALLDATALOAD CALLDATALOAD 0x2C ORIGIN CALLDATALOAD CALLDATALOAD 0x2C ADDRESS 0x2E CALLDATASIZE 0x29 0x22 RETURNDATACOPY 0x4D PUSH10 0x6E205469636B3A203C2F PUSH21 0x7370616E3E3C74657874506174682073746172744F PUSH7 0x667365743D222D BALANCE ADDRESS ADDRESS 0x25 0x22 KECCAK256 PUSH7 0x696C6C3D227768 PUSH10 0x74652220666F6E742D66 PUSH2 0x6D69 PUSH13 0x793D2227436F7572696572204E PUSH6 0x77272C206D6F PUSH15 0x6F73706163652220666F6E742D7369 PUSH27 0x653D22313070782220786C696E6B3A687265663D2223746578742D PUSH17 0x6174682D61223E3C6C696E656172477261 PUSH5 0x69656E7420 PUSH10 0x643D22677261642D646F PUSH24 0x6E222078313D2230222078323D2231222079313D22302220 PUSH26 0x323D2231223E3C73746F70206F66667365743D22302E30222073 PUSH21 0x6F702D636F6C6F723D227768697465222073746F70 0x2D PUSH16 0x7061636974793D223122202F3E3C7374 PUSH16 0x70206F66667365743D22302E39222073 PUSH21 0x6F702D636F6C6F723D227768697465222073746F70 0x2D PUSH16 0x7061636974793D223022202F3E3C2F6C PUSH10 0x6E656172477261646965 PUSH15 0x743E3C66696C7465722069643D2266 BALANCE 0x22 RETURNDATACOPY EXTCODECOPY PUSH7 0x65496D61676520 PUSH19 0x6573756C743D2270302220786C696E6B3A6872 PUSH6 0x663D22646174 PUSH2 0x3A69 PUSH14 0x6167652F7376672B786D6C3B6261 PUSH20 0x6536342C3C7376672077696474683D2732393027 KECCAK256 PUSH9 0x65696768743D273530 ADDRESS 0x27 KECCAK256 PUSH23 0x696577426F783D2730203020323930203530302720786D PUSH13 0x6E733D27687474703A2F2F7777 PUSH24 0x2E77332E6F72672F323030302F737667273E3C7265637420 PUSH24 0x696474683D27323930707827206865696768743D27353030 PUSH17 0x78272066696C6C3D2723222F3E3C666549 PUSH14 0x61676520726573756C743D227032 0x22 KECCAK256 PUSH25 0x6C696E6B3A687265663D22646174613A696D6167652F737667 0x2B PUSH25 0x6D6C3B6261736536342C3C656C6C697073652063783D223530 0x25 0x22 KECCAK256 PUSH4 0x793D2230 PUSH17 0x78222072783D223138307078222072793D 0x22 BALANCE ORIGIN ADDRESS PUSH17 0x78222066696C6C3D222330303022206F70 PUSH2 0x6369 PUSH21 0x793D22302E383522202F3E3C2F673E707822206865 PUSH10 0x6768743D223236707822 KECCAK256 PUSH19 0x783D22387078222072793D2238707822206669 PUSH13 0x6C3D227267626128302C302C30 0x2C ADDRESS 0x2E CALLDATASIZE 0x29 0x22 KECCAK256 0x2F RETURNDATACOPY PUSH17 0x782220723D22347078222066696C6C3D22 PUSH24 0x6869746522202F3E3C636972636C652063783D2231312E33 CALLVALUE CALLDATACOPY CODESIZE 0x4C ORIGIN CALLVALUE KECCAK256 BALANCE ORIGIN 0x4C BALANCE CALLVALUE 0x2E CALLVALUE CALLER CALLVALUE BALANCE KECCAK256 BALANCE ORIGIN 0x2E CALLDATASIZE CALLDATALOAD ORIGIN ORIGIN 0x4C ORIGIN ORIGIN 0x2E CALLER CODECOPY ORIGIN CALLER KECCAK256 BALANCE CODESIZE 0x4C BALANCE CALLER 0x2E CALLDATACOPY CODESIZE BALANCE CODECOPY KECCAK256 BALANCE CALLER 0x2E CALLDATACOPY CODESIZE BALANCE CODECOPY 0x4C BALANCE CODESIZE KECCAK256 ORIGIN ORIGIN 0x2E CALLER CODECOPY ORIGIN CALLER 0x4C BALANCE ORIGIN 0x2E CALLDATASIZE CALLDATALOAD ORIGIN ORIGIN KECCAK256 BALANCE CALLVALUE 0x2E CALLVALUE CALLER CALLVALUE BALANCE 0x4C BALANCE ORIGIN KECCAK256 ORIGIN CALLVALUE 0x4C BALANCE BALANCE 0x2E CALLER CALLVALUE CALLDATACOPY CODESIZE KECCAK256 BALANCE CALLVALUE 0x2E CALLVALUE CALLER CALLVALUE BALANCE 0x4C CALLDATASIZE KECCAK256 ORIGIN ORIGIN 0x2E CALLER CODECOPY EXTCODECOPY PUSH19 0x6563742066696C6C3D226E6F6E652220783D22 ADDRESS PUSH17 0x782220793D22307078222077696474683D 0x22 ORIGIN CODECOPY ADDRESS PUSH17 0x7822206865696768743D22353030707822 KECCAK256 0x2F RETURNDATACOPY COINBASE TIMESTAMP NUMBER DIFFICULTY GASLIMIT CHAINID SELFBALANCE 0x48 0x49 0x4A 0x4B 0x4C 0x4D 0x4E 0x4F POP MLOAD MSTORE MSTORE8 SLOAD SSTORE JUMP JUMPI PC MSIZE GAS PUSH2 0x6263 PUSH5 0x6566676869 PUSH11 0x6B6C6D6E6F707172737475 PUSH23 0x7778797A303132333435363738392B2F20786D6C6E733A PUSH25 0x6C696E6B3D27687474703A2F2F7777772E77332E6F72672F31 CODECOPY CODECOPY CODECOPY 0x2F PUSH25 0x6C696E6B273E3C6C696E6561724772616469656E742069643D 0x22 PUSH8 0x7261642D73796D62 PUSH16 0x6C223E3C73746F70206F66667365743D 0x22 ADDRESS 0x2E CALLDATACOPY 0x22 KECCAK256 PUSH20 0x746F702D636F6C6F723D22776869746522207374 PUSH16 0x702D6F7061636974793D223122202F3E EXTCODECOPY PUSH20 0x746F70206F66667365743D222E3935222073746F PUSH17 0x2D636F6C6F723D22776869746522207374 PUSH16 0x702D6F7061636974793D223022202F3E EXTCODECOPY 0x2F PUSH13 0x696E6561724772616469656E74 RETURNDATACOPY KECCAK256 PUSH20 0x74796C653D227472616E73666F726D3A7472616E PUSH20 0x6C61746528373270782C313839707829223E3C72 PUSH6 0x637420783D22 0x2D BALANCE CALLDATASIZE PUSH17 0x782220793D222D31367078222077696474 PUSH9 0x3D2231383070782220 PUSH9 0x65696768743D223138 ADDRESS PUSH17 0x78222066696C6C3D226E6F6E6522202F3E EXTCODECOPY PUSH17 0x61746820643D22207374796C653D227472 PUSH2 0x6E73 PUSH7 0x6F726D3A747261 PUSH15 0x736C61746528373270782C31383970 PUSH25 0x29223E70782220723D2232347078222066696C6C3D226E6F6E PUSH6 0x22207374726F PUSH12 0x653D22776869746522202F3E EXTCODECOPY PUSH19 0x65637420783D222D313670782220793D222D31 CALLDATASIZE PUSH17 0x78222077696474683D2231383070782220 PUSH9 0x65696768743D223138 ADDRESS PUSH17 0x78222066696C6C3D226E6F6E6522202F3E MSTORE8 PUSH2 0x6665 0x4D PUSH2 0x7468 GASPRICE KECCAK256 PUSH14 0x756C7469706C69636174696F6E20 PUSH16 0x766572666C6F773C673E3C7061746820 PUSH20 0x74796C653D227472616E73666F726D3A7472616E PUSH20 0x6C617465283670782C367078292220643D224D31 ORIGIN KECCAK256 ADDRESS 0x4C BALANCE ORIGIN 0x2E CALLDATASIZE CALLDATALOAD ORIGIN ORIGIN KECCAK256 CODECOPY 0x2E CALLDATALOAD CALLDATASIZE CALLDATALOAD CODESIZE CALLDATACOPY 0x4C BALANCE CODESIZE KECCAK256 BALANCE 0x2E CALLDATASIZE ADDRESS CALLDATACOPY CALLDATACOPY 0x4C BALANCE CALLER 0x2E CALLDATACOPY CODESIZE BALANCE CODECOPY KECCAK256 BALANCE ADDRESS 0x2E ORIGIN BALANCE CODESIZE BALANCE 0x4C ORIGIN ORIGIN 0x2E CALLER CODECOPY ORIGIN CALLER KECCAK256 CALLDATASIZE 0x4C BALANCE CALLVALUE 0x2E CALLVALUE CALLER CALLVALUE BALANCE KECCAK256 EXTCODECOPY PUSH17 0x617468207374726F6B652D6C696E656361 PUSH17 0x3D22726F756E642220643D224D38203943 CODESIZE 0x2E ADDRESS ADDRESS ADDRESS ADDRESS CALLVALUE KECCAK256 ORIGIN ORIGIN 0x2E CODECOPY CALLVALUE CODECOPY CALLVALUE KECCAK256 BALANCE CALLDATASIZE 0x2E ORIGIN ADDRESS CODECOPY CODECOPY KECCAK256 ORIGIN CODESIZE KECCAK256 ORIGIN CALLDATACOPY KECCAK256 ORIGIN CODESIZE 0x22 KECCAK256 PUSH7 0x696C6C3D226E6F PUSH15 0x6522207374726F6B653D2277686974 PUSH6 0x22202F3E2072 PUSH6 0x70656174436F PUSH22 0x6E743D22696E646566696E69746522202F3E3C2F7465 PUSH25 0x74506174683E3C74657874506174682073746172744F666673 PUSH6 0x743D222D3530 0x25 0x22 KECCAK256 PUSH7 0x696C6C3D227768 PUSH10 0x74652220666F6E742D66 PUSH2 0x6D69 PUSH13 0x793D2227436F7572696572204E PUSH6 0x77272C206D6F PUSH15 0x6F73706163652220666F6E742D7369 PUSH27 0x653D22313070782220786C696E6B3A687265663D2223746578742D PUSH17 0x6174682D61223E3C6D61736B2069643D22 PUSH7 0x6164652D646F77 PUSH15 0x22206D61736B436F6E74656E74556E PUSH10 0x74733D226F626A656374 TIMESTAMP PUSH16 0x756E64696E67426F78223E3C72656374 KECCAK256 PUSH24 0x696474683D223122206865696768743D2231222066696C6C RETURNDATASIZE 0x22 PUSH22 0x726C2823677261642D646F776E2922202F3E3C2F6D61 PUSH20 0x6B3E22207374726F6B653D227267626128323535 0x2C ORIGIN CALLDATALOAD CALLDATALOAD 0x2C ORIGIN CALLDATALOAD CALLDATALOAD 0x2C BALANCE 0x29 0x22 KECCAK256 PUSH7 0x696C6C3D226E6F PUSH15 0x6522207374726F6B652D6C696E6563 PUSH2 0x703D 0x22 PUSH19 0x6F756E6422202F3E3C2F673E696E3D22626C65 PUSH15 0x644F75742220737464446576696174 PUSH10 0x6F6E3D22343222202F3E EXTCODECOPY 0x2F PUSH7 0x696C7465723E20 EXTCODECOPY PUSH4 0x6C697050 PUSH2 0x7468 KECCAK256 PUSH10 0x643D22636F726E657273 0x22 RETURNDATACOPY EXTCODECOPY PUSH19 0x6563742077696474683D223239302220686569 PUSH8 0x68743D2235303022 KECCAK256 PUSH19 0x783D223432222072793D22343222202F3E3C2F PUSH4 0x6C697050 PUSH2 0x7468 RETURNDATACOPY KECCAK256 EXTCODECOPY PUSH8 0x207374796C653D22 PUSH21 0x72616E73666F726D3A7472616E736C617465283239 PUSH17 0x782C20333834707829223E3C6C696E6561 PUSH19 0x4772616469656E742069643D22677261642D75 PUSH17 0x222078313D2231222078323D2230222079 BALANCE RETURNDATASIZE 0x22 BALANCE 0x22 KECCAK256 PUSH26 0x323D2230223E3C73746F70206F66667365743D22302E30222073 PUSH21 0x6F702D636F6C6F723D227768697465222073746F70 0x2D PUSH16 0x7061636974793D223122202F3E32334C BALANCE ADDRESS 0x2E ORIGIN BALANCE CODESIZE BALANCE KECCAK256 BALANCE CALLER 0x2E CALLDATACOPY CODESIZE BALANCE CODECOPY 0x4C BALANCE 0x2E CALLDATASIZE ADDRESS CALLDATACOPY CALLDATACOPY KECCAK256 BALANCE CODESIZE 0x4C CODECOPY 0x2E CALLDATALOAD CALLDATASIZE CALLDATALOAD CODESIZE CALLDATACOPY KECCAK256 BALANCE ORIGIN 0x2E CALLDATASIZE CALLDATALOAD ORIGIN ORIGIN 0x4C ADDRESS KECCAK256 BALANCE ORIGIN 0x4C CODECOPY 0x2E CALLDATALOAD CALLDATASIZE CALLDATALOAD CODESIZE CALLDATACOPY KECCAK256 BALANCE BALANCE 0x2E CALLER CALLVALUE CALLDATACOPY CODESIZE 0x4C BALANCE 0x2E CALLDATASIZE ADDRESS CALLDATACOPY CALLDATACOPY KECCAK256 CALLDATASIZE 0x4C BALANCE ADDRESS 0x2E ORIGIN BALANCE CODESIZE BALANCE KECCAK256 BALANCE ADDRESS 0x2E ORIGIN BALANCE CODESIZE BALANCE 0x4C CALLDATASIZE KECCAK256 BALANCE 0x2E CALLDATASIZE ADDRESS CALLDATACOPY CALLDATACOPY 0x4C BALANCE BALANCE 0x2E CALLER CALLVALUE CALLDATACOPY CODESIZE KECCAK256 CODECOPY 0x2E CALLDATALOAD CALLDATASIZE CALLDATALOAD CODESIZE CALLDATACOPY 0x4C BALANCE ORIGIN KECCAK256 ADDRESS GAS 0x22 KECCAK256 PUSH7 0x696C6C3D227768 PUSH10 0x746522202F3E3C672073 PUSH21 0x796C653D227472616E73666F726D3A7472616E736C PUSH2 0x7465 0x28 ORIGIN ORIGIN CALLDATASIZE PUSH17 0x782C20333932707829223E3C7265637420 PUSH24 0x696474683D223336707822206865696768743D2233367078 0x22 KECCAK256 PUSH19 0x783D22387078222072793D2238707822206669 PUSH13 0x6C3D226E6F6E6522207374726F PUSH12 0x653D2272676261283235352C ORIGIN CALLDATALOAD CALLDATALOAD 0x2C ORIGIN CALLDATALOAD CALLDATALOAD 0x2C ADDRESS 0x2E ORIGIN 0x29 0x22 KECCAK256 0x2F RETURNDATACOPY EXTCODECOPY PUSH21 0x657874506174682073746172744F66667365743D22 CALLDATALOAD ADDRESS 0x25 0x22 KECCAK256 PUSH7 0x696C6C3D227768 PUSH10 0x74652220666F6E742D66 PUSH2 0x6D69 PUSH13 0x793D2227436F7572696572204E PUSH6 0x77272C206D6F PUSH15 0x6F73706163652220666F6E742D7369 PUSH27 0x653D22313070782220786C696E6B3A687265663D2223746578742D PUSH17 0x6174682D61223E3C7465787420783D2231 ORIGIN PUSH17 0x782220793D22313770782220666F6E742D PUSH7 0x616D696C793D22 0x27 NUMBER PUSH16 0x7572696572204E6577272C206D6F6E6F PUSH20 0x706163652220666F6E742D73697A653D22313270 PUSH25 0x222066696C6C3D227768697465223E3C747370616E2066696C PUSH13 0x3D2272676261283235352C3235 CALLDATALOAD 0x2C ORIGIN CALLDATALOAD CALLDATALOAD 0x2C ADDRESS 0x2E CALLDATASIZE 0x29 0x22 RETURNDATACOPY 0x4D PUSH2 0x7820 SLOAD PUSH10 0x636B3A203C2F74737061 PUSH15 0x3E3C616E696D6174655472616E7366 PUSH16 0x726D206174747269627574654E616D65 RETURNDATASIZE 0x22 PUSH21 0x72616E73666F726D2220747970653D22726F746174 PUSH6 0x222066726F6D RETURNDATASIZE 0x22 ADDRESS KECCAK256 BALANCE CODESIZE KECCAK256 BALANCE CODESIZE 0x22 KECCAK256 PUSH21 0x6F3D2233363020313820313822206475723D223130 PUSH20 0x2220726570656174436F756E743D22696E646566 PUSH10 0x6E697465222F3E3C2F67 RETURNDATACOPY EXTCODECOPY 0x2F PUSH8 0x3E3C706174682069 PUSH5 0x3D22746578 PUSH21 0x2D706174682D612220643D224D3430203132204832 CALLDATALOAD ADDRESS KECCAK256 COINBASE ORIGIN CODESIZE KECCAK256 ORIGIN CODESIZE KECCAK256 ADDRESS KECCAK256 ADDRESS KECCAK256 BALANCE KECCAK256 ORIGIN CALLDATACOPY CODESIZE KECCAK256 CALLVALUE ADDRESS KECCAK256 JUMP CALLVALUE CALLDATASIZE ADDRESS KECCAK256 COINBASE ORIGIN CODESIZE KECCAK256 ORIGIN CODESIZE KECCAK256 ADDRESS KECCAK256 ADDRESS KECCAK256 BALANCE KECCAK256 ORIGIN CALLDATALOAD ADDRESS KECCAK256 CALLVALUE CODESIZE CODESIZE KECCAK256 0x48 CALLVALUE ADDRESS KECCAK256 COINBASE ORIGIN CODESIZE KECCAK256 ORIGIN CODESIZE KECCAK256 ADDRESS KECCAK256 ADDRESS KECCAK256 BALANCE KECCAK256 BALANCE ORIGIN KECCAK256 CALLVALUE CALLDATASIZE ADDRESS KECCAK256 JUMP CALLVALUE ADDRESS KECCAK256 COINBASE ORIGIN CODESIZE KECCAK256 ORIGIN CODESIZE KECCAK256 ADDRESS KECCAK256 ADDRESS KECCAK256 BALANCE KECCAK256 CALLVALUE ADDRESS KECCAK256 BALANCE ORIGIN KECCAK256 PUSH27 0x22202F3E222F3E3C6665496D61676520726573756C743D22703122 KECCAK256 PUSH25 0x6C696E6B3A687265663D22646174613A696D6167652F737667 0x2B PUSH25 0x6D6C3B6261736536342C3C6D61736B2069643D22666164652D PUSH20 0x796D626F6C22206D61736B436F6E74656E74556E PUSH10 0x74733D22757365725370 PUSH2 0x6365 0x4F PUSH15 0x557365223E3C726563742077696474 PUSH9 0x3D2232393070782220 PUSH9 0x65696768743D223230 ADDRESS PUSH17 0x78222066696C6C3D2275726C2823677261 PUSH5 0x2D73796D62 PUSH16 0x6C2922202F3E3C2F6D61736B3E3C2F64 PUSH6 0x66733E3C7265 PUSH4 0x7420783D 0x22 ADDRESS 0x22 KECCAK256 PUSH26 0x3D2230222077696474683D2232393022206865696768743D2235 ADDRESS ADDRESS 0x22 KECCAK256 PUSH19 0x783D223432222072793D223432222066696C6C RETURNDATASIZE 0x22 PUSH19 0x67626128302C302C302C302922207374726F6B PUSH6 0x3D2272676261 0x28 ORIGIN CALLDATALOAD CALLDATALOAD 0x2C ORIGIN CALLDATALOAD CALLDATALOAD 0x2C ORIGIN CALLDATALOAD CALLDATALOAD 0x2C ADDRESS 0x2E ORIGIN 0x29 0x22 KECCAK256 0x2F RETURNDATACOPY EXTCODECOPY 0x2F PUSH8 0x3E3C66696C746572 KECCAK256 PUSH10 0x643D22746F702D726567 PUSH10 0x6F6E2D626C7572223E3C PUSH7 0x65476175737369 PUSH2 0x6E42 PUSH13 0x757220696E3D22536F75726365 SELFBALANCE PUSH19 0x61706869632220737464446576696174696F6E RETURNDATASIZE 0x22 ORIGIN CALLVALUE 0x22 KECCAK256 0x2F RETURNDATACOPY EXTCODECOPY 0x2F PUSH7 0x696C7465723E3C 0x2F PUSH21 0x657874506174683E203C7465787450617468207374 PUSH2 0x7274 0x4F PUSH7 0x667365743D2230 0x25 0x22 KECCAK256 PUSH7 0x696C6C3D227768 PUSH10 0x74652220666F6E742D66 PUSH2 0x6D69 PUSH13 0x793D2227436F7572696572204E PUSH6 0x77272C206D6F PUSH15 0x6F73706163652220666F6E742D7369 PUSH27 0x653D22313070782220786C696E6B3A687265663D2223746578742D PUSH17 0x6174682D61223E3C746578742074657874 0x2D PUSH19 0x656E646572696E673D226F7074696D697A6553 PUSH17 0x656564223E5369676E6564536166654D61 PUSH21 0x683A207375627472616374696F6E206F766572666C PUSH16 0x773C7265637420783D2231362220793D 0x22 BALANCE CALLDATASIZE 0x22 KECCAK256 PUSH24 0x696474683D2232353822206865696768743D223436382220 PUSH19 0x783D223236222072793D223236222066696C6C RETURNDATASIZE 0x22 PUSH19 0x67626128302C302C302C302922207374726F6B PUSH6 0x3D2272676261 0x28 ORIGIN CALLDATALOAD CALLDATALOAD 0x2C ORIGIN CALLDATALOAD CALLDATALOAD 0x2C ORIGIN CALLDATALOAD CALLDATALOAD 0x2C ADDRESS 0x2E ORIGIN 0x29 0x22 KECCAK256 0x2F RETURNDATACOPY EXTCODECOPY PUSH21 0x65787420783D22313270782220793D223137707822 KECCAK256 PUSH7 0x6F6E742D66616D PUSH10 0x6C793D2227436F757269 PUSH6 0x72204E657727 0x2C KECCAK256 PUSH14 0x6F6E6F73706163652220666F6E74 0x2D PUSH20 0x697A653D2231327078222066696C6C3D22776869 PUSH21 0x65223E3C747370616E2066696C6C3D227267626128 ORIGIN CALLDATALOAD CALLDATALOAD 0x2C ORIGIN CALLDATALOAD CALLDATALOAD 0x2C ORIGIN CALLDATALOAD CALLDATALOAD 0x2C ADDRESS 0x2E CALLDATASIZE 0x29 0x22 RETURNDATACOPY 0x49 DIFFICULTY GASPRICE KECCAK256 EXTCODECOPY 0x2F PUSH21 0x7370616E3E3C726563742077696474683D22333670 PUSH25 0x22206865696768743D2233367078222072783D223870782220 PUSH19 0x793D22387078222066696C6C3D226E6F6E6522 KECCAK256 PUSH20 0x74726F6B653D2272676261283235352C3235352C ORIGIN CALLDATALOAD CALLDATALOAD 0x2C ADDRESS 0x2E ORIGIN 0x29 0x22 KECCAK256 0x2F RETURNDATACOPY EXTCODECOPY 0x2F PUSH21 0x6578743E3C7465787420793D223131357078222078 RETURNDATASIZE 0x22 CALLER ORIGIN PUSH17 0x78222066696C6C3D227768697465222066 PUSH16 0x6E742D66616D696C793D2227436F7572 PUSH10 0x6572204E6577272C206D PUSH16 0x6E6F73706163652220666F6E742D7765 PUSH10 0x6768743D223230302220 PUSH7 0x6F6E742D73697A PUSH6 0x3D2233367078 0x22 RETURNDATACOPY EXTCODECOPY 0x2F PUSH21 0x6578743E3C2F673E3C67207374796C653D22747261 PUSH15 0x73666F726D3A7472616E736C617465 0x28 ORIGIN ORIGIN CALLDATASIZE PUSH17 0x782C20343333707829223E203C67207374 PUSH26 0x6C653D227472616E73666F726D3A7472616E736C617465283239 PUSH17 0x782C20343134707829223EA164736F6C63 NUMBER STOP SMOD MOD STOP EXP ","sourceMap":"812:17538:15:-:0;;;;;;;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:12780:18","statements":[{"nodeType":"YulBlock","src":"6:3:18","statements":[]},{"body":{"nodeType":"YulBlock","src":"65:147:18","statements":[{"nodeType":"YulAssignment","src":"75:29:18","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"97:6:18"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"84:12:18"},"nodeType":"YulFunctionCall","src":"84:20:18"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"75:5:18"}]},{"body":{"nodeType":"YulBlock","src":"190:16:18","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"199:1:18","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"202:1:18","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"192:6:18"},"nodeType":"YulFunctionCall","src":"192:12:18"},"nodeType":"YulExpressionStatement","src":"192:12:18"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"126:5:18"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"137:5:18"},{"kind":"number","nodeType":"YulLiteral","src":"144:42:18","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"133:3:18"},"nodeType":"YulFunctionCall","src":"133:54:18"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"123:2:18"},"nodeType":"YulFunctionCall","src":"123:65:18"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"116:6:18"},"nodeType":"YulFunctionCall","src":"116:73:18"},"nodeType":"YulIf","src":"113:2:18"}]},"name":"abi_decode_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"44:6:18","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"55:5:18","type":""}],"src":"14:198:18"},{"body":{"nodeType":"YulBlock","src":"265:114:18","statements":[{"nodeType":"YulAssignment","src":"275:29:18","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"297:6:18"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"284:12:18"},"nodeType":"YulFunctionCall","src":"284:20:18"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"275:5:18"}]},{"body":{"nodeType":"YulBlock","src":"357:16:18","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"366:1:18","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"369:1:18","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"359:6:18"},"nodeType":"YulFunctionCall","src":"359:12:18"},"nodeType":"YulExpressionStatement","src":"359:12:18"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"326:5:18"},{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"347:5:18"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"340:6:18"},"nodeType":"YulFunctionCall","src":"340:13:18"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"333:6:18"},"nodeType":"YulFunctionCall","src":"333:21:18"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"323:2:18"},"nodeType":"YulFunctionCall","src":"323:32:18"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"316:6:18"},"nodeType":"YulFunctionCall","src":"316:40:18"},"nodeType":"YulIf","src":"313:2:18"}]},"name":"abi_decode_t_bool","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"244:6:18","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"255:5:18","type":""}],"src":"217:162:18"},{"body":{"nodeType":"YulBlock","src":"433:113:18","statements":[{"nodeType":"YulAssignment","src":"443:29:18","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"465:6:18"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"452:12:18"},"nodeType":"YulFunctionCall","src":"452:20:18"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"443:5:18"}]},{"body":{"nodeType":"YulBlock","src":"524:16:18","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"533:1:18","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"536:1:18","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"526:6:18"},"nodeType":"YulFunctionCall","src":"526:12:18"},"nodeType":"YulExpressionStatement","src":"526:12:18"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"494:5:18"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"512:1:18","type":"","value":"2"},{"name":"value","nodeType":"YulIdentifier","src":"515:5:18"}],"functionName":{"name":"signextend","nodeType":"YulIdentifier","src":"501:10:18"},"nodeType":"YulFunctionCall","src":"501:20:18"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"491:2:18"},"nodeType":"YulFunctionCall","src":"491:31:18"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"484:6:18"},"nodeType":"YulFunctionCall","src":"484:39:18"},"nodeType":"YulIf","src":"481:2:18"}]},"name":"abi_decode_t_int24","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"412:6:18","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"423:5:18","type":""}],"src":"384:162:18"},{"body":{"nodeType":"YulBlock","src":"606:488:18","statements":[{"body":{"nodeType":"YulBlock","src":"655:24:18","statements":[{"expression":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"664:5:18"},{"name":"array","nodeType":"YulIdentifier","src":"671:5:18"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"657:6:18"},"nodeType":"YulFunctionCall","src":"657:20:18"},"nodeType":"YulExpressionStatement","src":"657:20:18"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"634:6:18"},{"kind":"number","nodeType":"YulLiteral","src":"642:4:18","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"630:3:18"},"nodeType":"YulFunctionCall","src":"630:17:18"},{"name":"end","nodeType":"YulIdentifier","src":"649:3:18"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"626:3:18"},"nodeType":"YulFunctionCall","src":"626:27:18"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"619:6:18"},"nodeType":"YulFunctionCall","src":"619:35:18"},"nodeType":"YulIf","src":"616:2:18"},{"nodeType":"YulVariableDeclaration","src":"688:30:18","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"711:6:18"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"698:12:18"},"nodeType":"YulFunctionCall","src":"698:20:18"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"692:2:18","type":""}]},{"body":{"nodeType":"YulBlock","src":"757:13:18","statements":[{"expression":{"arguments":[],"functionName":{"name":"invalid","nodeType":"YulIdentifier","src":"759:7:18"},"nodeType":"YulFunctionCall","src":"759:9:18"},"nodeType":"YulExpressionStatement","src":"759:9:18"}]},"condition":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"733:2:18"},{"kind":"number","nodeType":"YulLiteral","src":"737:18:18","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"730:2:18"},"nodeType":"YulFunctionCall","src":"730:26:18"},"nodeType":"YulIf","src":"727:2:18"},{"nodeType":"YulVariableDeclaration","src":"779:69:18","value":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"821:2:18"},{"kind":"number","nodeType":"YulLiteral","src":"825:4:18","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"817:3:18"},"nodeType":"YulFunctionCall","src":"817:13:18"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"836:2:18","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"832:3:18"},"nodeType":"YulFunctionCall","src":"832:7:18"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"813:3:18"},"nodeType":"YulFunctionCall","src":"813:27:18"},{"kind":"number","nodeType":"YulLiteral","src":"842:4:18","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"809:3:18"},"nodeType":"YulFunctionCall","src":"809:38:18"}],"functionName":{"name":"allocateMemory","nodeType":"YulIdentifier","src":"794:14:18"},"nodeType":"YulFunctionCall","src":"794:54:18"},"variables":[{"name":"array_1","nodeType":"YulTypedName","src":"783:7:18","type":""}]},{"expression":{"arguments":[{"name":"array_1","nodeType":"YulIdentifier","src":"864:7:18"},{"name":"_1","nodeType":"YulIdentifier","src":"873:2:18"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"857:6:18"},"nodeType":"YulFunctionCall","src":"857:19:18"},"nodeType":"YulExpressionStatement","src":"857:19:18"},{"body":{"nodeType":"YulBlock","src":"924:24:18","statements":[{"expression":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"933:5:18"},{"name":"array","nodeType":"YulIdentifier","src":"940:5:18"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"926:6:18"},"nodeType":"YulFunctionCall","src":"926:20:18"},"nodeType":"YulExpressionStatement","src":"926:20:18"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"899:6:18"},{"name":"_1","nodeType":"YulIdentifier","src":"907:2:18"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"895:3:18"},"nodeType":"YulFunctionCall","src":"895:15:18"},{"kind":"number","nodeType":"YulLiteral","src":"912:4:18","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"891:3:18"},"nodeType":"YulFunctionCall","src":"891:26:18"},{"name":"end","nodeType":"YulIdentifier","src":"919:3:18"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"888:2:18"},"nodeType":"YulFunctionCall","src":"888:35:18"},"nodeType":"YulIf","src":"885:2:18"},{"expression":{"arguments":[{"arguments":[{"name":"array_1","nodeType":"YulIdentifier","src":"974:7:18"},{"kind":"number","nodeType":"YulLiteral","src":"983:4:18","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"970:3:18"},"nodeType":"YulFunctionCall","src":"970:18:18"},{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"994:6:18"},{"kind":"number","nodeType":"YulLiteral","src":"1002:4:18","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"990:3:18"},"nodeType":"YulFunctionCall","src":"990:17:18"},{"name":"_1","nodeType":"YulIdentifier","src":"1009:2:18"}],"functionName":{"name":"calldatacopy","nodeType":"YulIdentifier","src":"957:12:18"},"nodeType":"YulFunctionCall","src":"957:55:18"},"nodeType":"YulExpressionStatement","src":"957:55:18"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"array_1","nodeType":"YulIdentifier","src":"1036:7:18"},{"name":"_1","nodeType":"YulIdentifier","src":"1045:2:18"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1032:3:18"},"nodeType":"YulFunctionCall","src":"1032:16:18"},{"kind":"number","nodeType":"YulLiteral","src":"1050:4:18","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1028:3:18"},"nodeType":"YulFunctionCall","src":"1028:27:18"},{"name":"array","nodeType":"YulIdentifier","src":"1057:5:18"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1021:6:18"},"nodeType":"YulFunctionCall","src":"1021:42:18"},"nodeType":"YulExpressionStatement","src":"1021:42:18"},{"nodeType":"YulAssignment","src":"1072:16:18","value":{"name":"array_1","nodeType":"YulIdentifier","src":"1081:7:18"},"variableNames":[{"name":"array","nodeType":"YulIdentifier","src":"1072:5:18"}]}]},"name":"abi_decode_t_string","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"580:6:18","type":""},{"name":"end","nodeType":"YulTypedName","src":"588:3:18","type":""}],"returnVariables":[{"name":"array","nodeType":"YulTypedName","src":"596:5:18","type":""}],"src":"551:543:18"},{"body":{"nodeType":"YulBlock","src":"1149:113:18","statements":[{"nodeType":"YulAssignment","src":"1159:29:18","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1181:6:18"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1168:12:18"},"nodeType":"YulFunctionCall","src":"1168:20:18"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"1159:5:18"}]},{"body":{"nodeType":"YulBlock","src":"1240:16:18","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1249:1:18","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1252:1:18","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1242:6:18"},"nodeType":"YulFunctionCall","src":"1242:12:18"},"nodeType":"YulExpressionStatement","src":"1242:12:18"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1210:5:18"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1221:5:18"},{"kind":"number","nodeType":"YulLiteral","src":"1228:8:18","type":"","value":"0xffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1217:3:18"},"nodeType":"YulFunctionCall","src":"1217:20:18"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"1207:2:18"},"nodeType":"YulFunctionCall","src":"1207:31:18"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1200:6:18"},"nodeType":"YulFunctionCall","src":"1200:39:18"},"nodeType":"YulIf","src":"1197:2:18"}]},"name":"abi_decode_t_uint24","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"1128:6:18","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"1139:5:18","type":""}],"src":"1099:163:18"},{"body":{"nodeType":"YulBlock","src":"1316:109:18","statements":[{"nodeType":"YulAssignment","src":"1326:29:18","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1348:6:18"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1335:12:18"},"nodeType":"YulFunctionCall","src":"1335:20:18"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"1326:5:18"}]},{"body":{"nodeType":"YulBlock","src":"1403:16:18","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1412:1:18","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1415:1:18","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1405:6:18"},"nodeType":"YulFunctionCall","src":"1405:12:18"},"nodeType":"YulExpressionStatement","src":"1405:12:18"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1377:5:18"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1388:5:18"},{"kind":"number","nodeType":"YulLiteral","src":"1395:4:18","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1384:3:18"},"nodeType":"YulFunctionCall","src":"1384:16:18"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"1374:2:18"},"nodeType":"YulFunctionCall","src":"1374:27:18"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1367:6:18"},"nodeType":"YulFunctionCall","src":"1367:35:18"},"nodeType":"YulIf","src":"1364:2:18"}]},"name":"abi_decode_t_uint8","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"1295:6:18","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"1306:5:18","type":""}],"src":"1267:158:18"},{"body":{"nodeType":"YulBlock","src":"1541:1668:18","statements":[{"body":{"nodeType":"YulBlock","src":"1587:26:18","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1596:6:18"},{"name":"value0","nodeType":"YulIdentifier","src":"1604:6:18"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1589:6:18"},"nodeType":"YulFunctionCall","src":"1589:22:18"},"nodeType":"YulExpressionStatement","src":"1589:22:18"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1562:7:18"},{"name":"headStart","nodeType":"YulIdentifier","src":"1571:9:18"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1558:3:18"},"nodeType":"YulFunctionCall","src":"1558:23:18"},{"kind":"number","nodeType":"YulLiteral","src":"1583:2:18","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1554:3:18"},"nodeType":"YulFunctionCall","src":"1554:32:18"},"nodeType":"YulIf","src":"1551:2:18"},{"nodeType":"YulVariableDeclaration","src":"1622:37:18","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1649:9:18"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1636:12:18"},"nodeType":"YulFunctionCall","src":"1636:23:18"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"1626:6:18","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1668:28:18","value":{"kind":"number","nodeType":"YulLiteral","src":"1678:18:18","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"1672:2:18","type":""}]},{"body":{"nodeType":"YulBlock","src":"1723:26:18","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1732:6:18"},{"name":"value0","nodeType":"YulIdentifier","src":"1740:6:18"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1725:6:18"},"nodeType":"YulFunctionCall","src":"1725:22:18"},"nodeType":"YulExpressionStatement","src":"1725:22:18"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1711:6:18"},{"name":"_1","nodeType":"YulIdentifier","src":"1719:2:18"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1708:2:18"},"nodeType":"YulFunctionCall","src":"1708:14:18"},"nodeType":"YulIf","src":"1705:2:18"},{"nodeType":"YulVariableDeclaration","src":"1758:32:18","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1772:9:18"},{"name":"offset","nodeType":"YulIdentifier","src":"1783:6:18"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1768:3:18"},"nodeType":"YulFunctionCall","src":"1768:22:18"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"1762:2:18","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1799:16:18","value":{"kind":"number","nodeType":"YulLiteral","src":"1809:6:18","type":"","value":"0x01c0"},"variables":[{"name":"_3","nodeType":"YulTypedName","src":"1803:2:18","type":""}]},{"body":{"nodeType":"YulBlock","src":"1853:26:18","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1862:6:18"},{"name":"value0","nodeType":"YulIdentifier","src":"1870:6:18"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1855:6:18"},"nodeType":"YulFunctionCall","src":"1855:22:18"},"nodeType":"YulExpressionStatement","src":"1855:22:18"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1835:7:18"},{"name":"_2","nodeType":"YulIdentifier","src":"1844:2:18"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1831:3:18"},"nodeType":"YulFunctionCall","src":"1831:16:18"},{"name":"_3","nodeType":"YulIdentifier","src":"1849:2:18"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1827:3:18"},"nodeType":"YulFunctionCall","src":"1827:25:18"},"nodeType":"YulIf","src":"1824:2:18"},{"nodeType":"YulVariableDeclaration","src":"1888:31:18","value":{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"1916:2:18"}],"functionName":{"name":"allocateMemory","nodeType":"YulIdentifier","src":"1901:14:18"},"nodeType":"YulFunctionCall","src":"1901:18:18"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"1892:5:18","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1935:5:18"},{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"1955:2:18"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1942:12:18"},"nodeType":"YulFunctionCall","src":"1942:16:18"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1928:6:18"},"nodeType":"YulFunctionCall","src":"1928:31:18"},"nodeType":"YulExpressionStatement","src":"1928:31:18"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1979:5:18"},{"kind":"number","nodeType":"YulLiteral","src":"1986:2:18","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1975:3:18"},"nodeType":"YulFunctionCall","src":"1975:14:18"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"2016:2:18"},{"kind":"number","nodeType":"YulLiteral","src":"2020:2:18","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2012:3:18"},"nodeType":"YulFunctionCall","src":"2012:11:18"}],"functionName":{"name":"abi_decode_t_address","nodeType":"YulIdentifier","src":"1991:20:18"},"nodeType":"YulFunctionCall","src":"1991:33:18"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1968:6:18"},"nodeType":"YulFunctionCall","src":"1968:57:18"},"nodeType":"YulExpressionStatement","src":"1968:57:18"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2045:5:18"},{"kind":"number","nodeType":"YulLiteral","src":"2052:2:18","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2041:3:18"},"nodeType":"YulFunctionCall","src":"2041:14:18"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"2082:2:18"},{"kind":"number","nodeType":"YulLiteral","src":"2086:2:18","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2078:3:18"},"nodeType":"YulFunctionCall","src":"2078:11:18"}],"functionName":{"name":"abi_decode_t_address","nodeType":"YulIdentifier","src":"2057:20:18"},"nodeType":"YulFunctionCall","src":"2057:33:18"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2034:6:18"},"nodeType":"YulFunctionCall","src":"2034:57:18"},"nodeType":"YulExpressionStatement","src":"2034:57:18"},{"nodeType":"YulVariableDeclaration","src":"2100:41:18","value":{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"2133:2:18"},{"kind":"number","nodeType":"YulLiteral","src":"2137:2:18","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2129:3:18"},"nodeType":"YulFunctionCall","src":"2129:11:18"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2116:12:18"},"nodeType":"YulFunctionCall","src":"2116:25:18"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"2104:8:18","type":""}]},{"body":{"nodeType":"YulBlock","src":"2170:26:18","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2179:6:18"},{"name":"value0","nodeType":"YulIdentifier","src":"2187:6:18"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2172:6:18"},"nodeType":"YulFunctionCall","src":"2172:22:18"},"nodeType":"YulExpressionStatement","src":"2172:22:18"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"2156:8:18"},{"name":"_1","nodeType":"YulIdentifier","src":"2166:2:18"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2153:2:18"},"nodeType":"YulFunctionCall","src":"2153:16:18"},"nodeType":"YulIf","src":"2150:2:18"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2216:5:18"},{"kind":"number","nodeType":"YulLiteral","src":"2223:2:18","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2212:3:18"},"nodeType":"YulFunctionCall","src":"2212:14:18"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"2252:2:18"},{"name":"offset_1","nodeType":"YulIdentifier","src":"2256:8:18"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2248:3:18"},"nodeType":"YulFunctionCall","src":"2248:17:18"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"2267:7:18"}],"functionName":{"name":"abi_decode_t_string","nodeType":"YulIdentifier","src":"2228:19:18"},"nodeType":"YulFunctionCall","src":"2228:47:18"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2205:6:18"},"nodeType":"YulFunctionCall","src":"2205:71:18"},"nodeType":"YulExpressionStatement","src":"2205:71:18"},{"nodeType":"YulVariableDeclaration","src":"2285:42:18","value":{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"2318:2:18"},{"kind":"number","nodeType":"YulLiteral","src":"2322:3:18","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2314:3:18"},"nodeType":"YulFunctionCall","src":"2314:12:18"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2301:12:18"},"nodeType":"YulFunctionCall","src":"2301:26:18"},"variables":[{"name":"offset_2","nodeType":"YulTypedName","src":"2289:8:18","type":""}]},{"body":{"nodeType":"YulBlock","src":"2356:26:18","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2365:6:18"},{"name":"value0","nodeType":"YulIdentifier","src":"2373:6:18"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2358:6:18"},"nodeType":"YulFunctionCall","src":"2358:22:18"},"nodeType":"YulExpressionStatement","src":"2358:22:18"}]},"condition":{"arguments":[{"name":"offset_2","nodeType":"YulIdentifier","src":"2342:8:18"},{"name":"_1","nodeType":"YulIdentifier","src":"2352:2:18"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2339:2:18"},"nodeType":"YulFunctionCall","src":"2339:16:18"},"nodeType":"YulIf","src":"2336:2:18"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2402:5:18"},{"kind":"number","nodeType":"YulLiteral","src":"2409:3:18","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2398:3:18"},"nodeType":"YulFunctionCall","src":"2398:15:18"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"2439:2:18"},{"name":"offset_2","nodeType":"YulIdentifier","src":"2443:8:18"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2435:3:18"},"nodeType":"YulFunctionCall","src":"2435:17:18"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"2454:7:18"}],"functionName":{"name":"abi_decode_t_string","nodeType":"YulIdentifier","src":"2415:19:18"},"nodeType":"YulFunctionCall","src":"2415:47:18"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2391:6:18"},"nodeType":"YulFunctionCall","src":"2391:72:18"},"nodeType":"YulExpressionStatement","src":"2391:72:18"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2483:5:18"},{"kind":"number","nodeType":"YulLiteral","src":"2490:3:18","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2479:3:18"},"nodeType":"YulFunctionCall","src":"2479:15:18"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"2519:2:18"},{"kind":"number","nodeType":"YulLiteral","src":"2523:3:18","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2515:3:18"},"nodeType":"YulFunctionCall","src":"2515:12:18"}],"functionName":{"name":"abi_decode_t_uint8","nodeType":"YulIdentifier","src":"2496:18:18"},"nodeType":"YulFunctionCall","src":"2496:32:18"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2472:6:18"},"nodeType":"YulFunctionCall","src":"2472:57:18"},"nodeType":"YulExpressionStatement","src":"2472:57:18"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2549:5:18"},{"kind":"number","nodeType":"YulLiteral","src":"2556:3:18","type":"","value":"192"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2545:3:18"},"nodeType":"YulFunctionCall","src":"2545:15:18"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"2585:2:18"},{"kind":"number","nodeType":"YulLiteral","src":"2589:3:18","type":"","value":"192"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2581:3:18"},"nodeType":"YulFunctionCall","src":"2581:12:18"}],"functionName":{"name":"abi_decode_t_uint8","nodeType":"YulIdentifier","src":"2562:18:18"},"nodeType":"YulFunctionCall","src":"2562:32:18"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2538:6:18"},"nodeType":"YulFunctionCall","src":"2538:57:18"},"nodeType":"YulExpressionStatement","src":"2538:57:18"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2615:5:18"},{"kind":"number","nodeType":"YulLiteral","src":"2622:3:18","type":"","value":"224"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2611:3:18"},"nodeType":"YulFunctionCall","src":"2611:15:18"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"2650:2:18"},{"kind":"number","nodeType":"YulLiteral","src":"2654:3:18","type":"","value":"224"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2646:3:18"},"nodeType":"YulFunctionCall","src":"2646:12:18"}],"functionName":{"name":"abi_decode_t_bool","nodeType":"YulIdentifier","src":"2628:17:18"},"nodeType":"YulFunctionCall","src":"2628:31:18"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2604:6:18"},"nodeType":"YulFunctionCall","src":"2604:56:18"},"nodeType":"YulExpressionStatement","src":"2604:56:18"},{"nodeType":"YulVariableDeclaration","src":"2669:13:18","value":{"kind":"number","nodeType":"YulLiteral","src":"2679:3:18","type":"","value":"256"},"variables":[{"name":"_4","nodeType":"YulTypedName","src":"2673:2:18","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2702:5:18"},{"name":"_4","nodeType":"YulIdentifier","src":"2709:2:18"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2698:3:18"},"nodeType":"YulFunctionCall","src":"2698:14:18"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"2737:2:18"},{"name":"_4","nodeType":"YulIdentifier","src":"2741:2:18"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2733:3:18"},"nodeType":"YulFunctionCall","src":"2733:11:18"}],"functionName":{"name":"abi_decode_t_int24","nodeType":"YulIdentifier","src":"2714:18:18"},"nodeType":"YulFunctionCall","src":"2714:31:18"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2691:6:18"},"nodeType":"YulFunctionCall","src":"2691:55:18"},"nodeType":"YulExpressionStatement","src":"2691:55:18"},{"nodeType":"YulVariableDeclaration","src":"2755:13:18","value":{"kind":"number","nodeType":"YulLiteral","src":"2765:3:18","type":"","value":"288"},"variables":[{"name":"_5","nodeType":"YulTypedName","src":"2759:2:18","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2788:5:18"},{"name":"_5","nodeType":"YulIdentifier","src":"2795:2:18"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2784:3:18"},"nodeType":"YulFunctionCall","src":"2784:14:18"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"2823:2:18"},{"name":"_5","nodeType":"YulIdentifier","src":"2827:2:18"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2819:3:18"},"nodeType":"YulFunctionCall","src":"2819:11:18"}],"functionName":{"name":"abi_decode_t_int24","nodeType":"YulIdentifier","src":"2800:18:18"},"nodeType":"YulFunctionCall","src":"2800:31:18"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2777:6:18"},"nodeType":"YulFunctionCall","src":"2777:55:18"},"nodeType":"YulExpressionStatement","src":"2777:55:18"},{"nodeType":"YulVariableDeclaration","src":"2841:13:18","value":{"kind":"number","nodeType":"YulLiteral","src":"2851:3:18","type":"","value":"320"},"variables":[{"name":"_6","nodeType":"YulTypedName","src":"2845:2:18","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2874:5:18"},{"name":"_6","nodeType":"YulIdentifier","src":"2881:2:18"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2870:3:18"},"nodeType":"YulFunctionCall","src":"2870:14:18"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"2909:2:18"},{"name":"_6","nodeType":"YulIdentifier","src":"2913:2:18"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2905:3:18"},"nodeType":"YulFunctionCall","src":"2905:11:18"}],"functionName":{"name":"abi_decode_t_int24","nodeType":"YulIdentifier","src":"2886:18:18"},"nodeType":"YulFunctionCall","src":"2886:31:18"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2863:6:18"},"nodeType":"YulFunctionCall","src":"2863:55:18"},"nodeType":"YulExpressionStatement","src":"2863:55:18"},{"nodeType":"YulVariableDeclaration","src":"2927:13:18","value":{"kind":"number","nodeType":"YulLiteral","src":"2937:3:18","type":"","value":"352"},"variables":[{"name":"_7","nodeType":"YulTypedName","src":"2931:2:18","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2960:5:18"},{"name":"_7","nodeType":"YulIdentifier","src":"2967:2:18"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2956:3:18"},"nodeType":"YulFunctionCall","src":"2956:14:18"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"2995:2:18"},{"name":"_7","nodeType":"YulIdentifier","src":"2999:2:18"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2991:3:18"},"nodeType":"YulFunctionCall","src":"2991:11:18"}],"functionName":{"name":"abi_decode_t_int24","nodeType":"YulIdentifier","src":"2972:18:18"},"nodeType":"YulFunctionCall","src":"2972:31:18"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2949:6:18"},"nodeType":"YulFunctionCall","src":"2949:55:18"},"nodeType":"YulExpressionStatement","src":"2949:55:18"},{"nodeType":"YulVariableDeclaration","src":"3013:13:18","value":{"kind":"number","nodeType":"YulLiteral","src":"3023:3:18","type":"","value":"384"},"variables":[{"name":"_8","nodeType":"YulTypedName","src":"3017:2:18","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3046:5:18"},{"name":"_8","nodeType":"YulIdentifier","src":"3053:2:18"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3042:3:18"},"nodeType":"YulFunctionCall","src":"3042:14:18"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"3082:2:18"},{"name":"_8","nodeType":"YulIdentifier","src":"3086:2:18"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3078:3:18"},"nodeType":"YulFunctionCall","src":"3078:11:18"}],"functionName":{"name":"abi_decode_t_uint24","nodeType":"YulIdentifier","src":"3058:19:18"},"nodeType":"YulFunctionCall","src":"3058:32:18"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3035:6:18"},"nodeType":"YulFunctionCall","src":"3035:56:18"},"nodeType":"YulExpressionStatement","src":"3035:56:18"},{"nodeType":"YulVariableDeclaration","src":"3100:13:18","value":{"kind":"number","nodeType":"YulLiteral","src":"3110:3:18","type":"","value":"416"},"variables":[{"name":"_9","nodeType":"YulTypedName","src":"3104:2:18","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3133:5:18"},{"name":"_9","nodeType":"YulIdentifier","src":"3140:2:18"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3129:3:18"},"nodeType":"YulFunctionCall","src":"3129:14:18"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"3170:2:18"},{"name":"_9","nodeType":"YulIdentifier","src":"3174:2:18"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3166:3:18"},"nodeType":"YulFunctionCall","src":"3166:11:18"}],"functionName":{"name":"abi_decode_t_address","nodeType":"YulIdentifier","src":"3145:20:18"},"nodeType":"YulFunctionCall","src":"3145:33:18"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3122:6:18"},"nodeType":"YulFunctionCall","src":"3122:57:18"},"nodeType":"YulExpressionStatement","src":"3122:57:18"},{"nodeType":"YulAssignment","src":"3188:15:18","value":{"name":"value","nodeType":"YulIdentifier","src":"3198:5:18"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3188:6:18"}]}]},"name":"abi_decode_tuple_t_struct$_ConstructTokenURIParams_$2306_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1507:9:18","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1518:7:18","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1530:6:18","type":""}],"src":"1430:1779:18"},{"body":{"nodeType":"YulBlock","src":"3266:135:18","statements":[{"nodeType":"YulVariableDeclaration","src":"3276:26:18","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3296:5:18"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3290:5:18"},"nodeType":"YulFunctionCall","src":"3290:12:18"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"3280:6:18","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3337:5:18"},{"kind":"number","nodeType":"YulLiteral","src":"3344:4:18","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3333:3:18"},"nodeType":"YulFunctionCall","src":"3333:16:18"},{"name":"pos","nodeType":"YulIdentifier","src":"3351:3:18"},{"name":"length","nodeType":"YulIdentifier","src":"3356:6:18"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"3311:21:18"},"nodeType":"YulFunctionCall","src":"3311:52:18"},"nodeType":"YulExpressionStatement","src":"3311:52:18"},{"nodeType":"YulAssignment","src":"3372:23:18","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"3383:3:18"},{"name":"length","nodeType":"YulIdentifier","src":"3388:6:18"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3379:3:18"},"nodeType":"YulFunctionCall","src":"3379:16:18"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"3372:3:18"}]}]},"name":"abi_encode_t_string","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"3243:5:18","type":""},{"name":"pos","nodeType":"YulTypedName","src":"3250:3:18","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"3258:3:18","type":""}],"src":"3214:187:18"},{"body":{"nodeType":"YulBlock","src":"3463:383:18","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"3480:3:18"},{"kind":"number","nodeType":"YulLiteral","src":"3485:66:18","type":"","value":"0xe29aa0efb88f20444953434c41494d45523a204475652064696c6967656e6365"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3473:6:18"},"nodeType":"YulFunctionCall","src":"3473:79:18"},"nodeType":"YulExpressionStatement","src":"3473:79:18"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"3572:3:18"},{"kind":"number","nodeType":"YulLiteral","src":"3577:2:18","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3568:3:18"},"nodeType":"YulFunctionCall","src":"3568:12:18"},{"kind":"string","nodeType":"YulLiteral","src":"3582:34:18","type":"","value":" is imperative when assessing th"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3561:6:18"},"nodeType":"YulFunctionCall","src":"3561:56:18"},"nodeType":"YulExpressionStatement","src":"3561:56:18"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"3637:3:18"},{"kind":"number","nodeType":"YulLiteral","src":"3642:2:18","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3633:3:18"},"nodeType":"YulFunctionCall","src":"3633:12:18"},{"kind":"string","nodeType":"YulLiteral","src":"3647:34:18","type":"","value":"is NFT. Make sure token addresse"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3626:6:18"},"nodeType":"YulFunctionCall","src":"3626:56:18"},"nodeType":"YulExpressionStatement","src":"3626:56:18"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"3702:3:18"},{"kind":"number","nodeType":"YulLiteral","src":"3707:2:18","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3698:3:18"},"nodeType":"YulFunctionCall","src":"3698:12:18"},{"kind":"string","nodeType":"YulLiteral","src":"3712:34:18","type":"","value":"s match the expected tokens, as "}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3691:6:18"},"nodeType":"YulFunctionCall","src":"3691:56:18"},"nodeType":"YulExpressionStatement","src":"3691:56:18"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"3767:3:18"},{"kind":"number","nodeType":"YulLiteral","src":"3772:3:18","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3763:3:18"},"nodeType":"YulFunctionCall","src":"3763:13:18"},{"kind":"string","nodeType":"YulLiteral","src":"3778:32:18","type":"","value":"token symbols may be imitated."}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3756:6:18"},"nodeType":"YulFunctionCall","src":"3756:55:18"},"nodeType":"YulExpressionStatement","src":"3756:55:18"},{"nodeType":"YulAssignment","src":"3820:20:18","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"3831:3:18"},{"kind":"number","nodeType":"YulLiteral","src":"3836:3:18","type":"","value":"158"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3827:3:18"},"nodeType":"YulFunctionCall","src":"3827:13:18"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"3820:3:18"}]}]},"name":"abi_encode_t_stringliteral_3378","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"3447:3:18","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"3455:3:18","type":""}],"src":"3406:440:18"},{"body":{"nodeType":"YulBlock","src":"3908:64:18","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"3925:3:18"},{"kind":"string","nodeType":"YulLiteral","src":"3930:8:18","type":"","value":"\\n\\n"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3918:6:18"},"nodeType":"YulFunctionCall","src":"3918:21:18"},"nodeType":"YulExpressionStatement","src":"3918:21:18"},{"nodeType":"YulAssignment","src":"3948:18:18","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"3959:3:18"},{"kind":"number","nodeType":"YulLiteral","src":"3964:1:18","type":"","value":"4"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3955:3:18"},"nodeType":"YulFunctionCall","src":"3955:11:18"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"3948:3:18"}]}]},"name":"abi_encode_t_stringliteral_c619","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"3892:3:18","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"3900:3:18","type":""}],"src":"3851:121:18"},{"body":{"nodeType":"YulBlock","src":"4765:1046:18","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"4782:3:18"},{"kind":"number","nodeType":"YulLiteral","src":"4787:66:18","type":"","value":"0x7b226e616d65223a220000000000000000000000000000000000000000000000"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4775:6:18"},"nodeType":"YulFunctionCall","src":"4775:79:18"},"nodeType":"YulExpressionStatement","src":"4775:79:18"},{"nodeType":"YulVariableDeclaration","src":"4863:27:18","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4883:6:18"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4877:5:18"},"nodeType":"YulFunctionCall","src":"4877:13:18"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"4867:6:18","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4925:6:18"},{"kind":"number","nodeType":"YulLiteral","src":"4933:4:18","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4921:3:18"},"nodeType":"YulFunctionCall","src":"4921:17:18"},{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"4944:3:18"},{"kind":"number","nodeType":"YulLiteral","src":"4949:1:18","type":"","value":"9"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4940:3:18"},"nodeType":"YulFunctionCall","src":"4940:11:18"},{"name":"length","nodeType":"YulIdentifier","src":"4953:6:18"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"4899:21:18"},"nodeType":"YulFunctionCall","src":"4899:61:18"},"nodeType":"YulExpressionStatement","src":"4899:61:18"},{"nodeType":"YulVariableDeclaration","src":"4969:26:18","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"4983:3:18"},{"name":"length","nodeType":"YulIdentifier","src":"4988:6:18"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4979:3:18"},"nodeType":"YulFunctionCall","src":"4979:16:18"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"4973:2:18","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"5015:2:18"},{"kind":"number","nodeType":"YulLiteral","src":"5019:1:18","type":"","value":"9"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5011:3:18"},"nodeType":"YulFunctionCall","src":"5011:10:18"},{"kind":"number","nodeType":"YulLiteral","src":"5023:66:18","type":"","value":"0x222c20226465736372697074696f6e223a220000000000000000000000000000"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5004:6:18"},"nodeType":"YulFunctionCall","src":"5004:86:18"},"nodeType":"YulExpressionStatement","src":"5004:86:18"},{"nodeType":"YulVariableDeclaration","src":"5099:29:18","value":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"5121:6:18"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5115:5:18"},"nodeType":"YulFunctionCall","src":"5115:13:18"},"variables":[{"name":"length_1","nodeType":"YulTypedName","src":"5103:8:18","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"5163:6:18"},{"kind":"number","nodeType":"YulLiteral","src":"5171:4:18","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5159:3:18"},"nodeType":"YulFunctionCall","src":"5159:17:18"},{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"5182:2:18"},{"kind":"number","nodeType":"YulLiteral","src":"5186:2:18","type":"","value":"27"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5178:3:18"},"nodeType":"YulFunctionCall","src":"5178:11:18"},{"name":"length_1","nodeType":"YulIdentifier","src":"5191:8:18"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"5137:21:18"},"nodeType":"YulFunctionCall","src":"5137:63:18"},"nodeType":"YulExpressionStatement","src":"5137:63:18"},{"nodeType":"YulVariableDeclaration","src":"5209:27:18","value":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"5223:2:18"},{"name":"length_1","nodeType":"YulIdentifier","src":"5227:8:18"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5219:3:18"},"nodeType":"YulFunctionCall","src":"5219:17:18"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"5213:2:18","type":""}]},{"nodeType":"YulVariableDeclaration","src":"5245:29:18","value":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"5267:6:18"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5261:5:18"},"nodeType":"YulFunctionCall","src":"5261:13:18"},"variables":[{"name":"length_2","nodeType":"YulTypedName","src":"5249:8:18","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"5309:6:18"},{"kind":"number","nodeType":"YulLiteral","src":"5317:4:18","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5305:3:18"},"nodeType":"YulFunctionCall","src":"5305:17:18"},{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"5328:2:18"},{"kind":"number","nodeType":"YulLiteral","src":"5332:2:18","type":"","value":"27"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5324:3:18"},"nodeType":"YulFunctionCall","src":"5324:11:18"},{"name":"length_2","nodeType":"YulIdentifier","src":"5337:8:18"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"5283:21:18"},"nodeType":"YulFunctionCall","src":"5283:63:18"},"nodeType":"YulExpressionStatement","src":"5283:63:18"},{"nodeType":"YulVariableDeclaration","src":"5355:27:18","value":{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"5369:2:18"},{"name":"length_2","nodeType":"YulIdentifier","src":"5373:8:18"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5365:3:18"},"nodeType":"YulFunctionCall","src":"5365:17:18"},"variables":[{"name":"_3","nodeType":"YulTypedName","src":"5359:2:18","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"5402:2:18"},{"kind":"number","nodeType":"YulLiteral","src":"5406:2:18","type":"","value":"27"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5398:3:18"},"nodeType":"YulFunctionCall","src":"5398:11:18"},{"kind":"number","nodeType":"YulLiteral","src":"5411:66:18","type":"","value":"0x222c2022696d616765223a202200000000000000000000000000000000000000"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5391:6:18"},"nodeType":"YulFunctionCall","src":"5391:87:18"},"nodeType":"YulExpressionStatement","src":"5391:87:18"},{"expression":{"arguments":[{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"5498:2:18"},{"kind":"number","nodeType":"YulLiteral","src":"5502:2:18","type":"","value":"40"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5494:3:18"},"nodeType":"YulFunctionCall","src":"5494:11:18"},{"kind":"string","nodeType":"YulLiteral","src":"5507:28:18","type":"","value":"data:image/svg+xml;base64,"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5487:6:18"},"nodeType":"YulFunctionCall","src":"5487:49:18"},"nodeType":"YulExpressionStatement","src":"5487:49:18"},{"nodeType":"YulVariableDeclaration","src":"5545:29:18","value":{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"5567:6:18"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5561:5:18"},"nodeType":"YulFunctionCall","src":"5561:13:18"},"variables":[{"name":"length_3","nodeType":"YulTypedName","src":"5549:8:18","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"5609:6:18"},{"kind":"number","nodeType":"YulLiteral","src":"5617:4:18","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5605:3:18"},"nodeType":"YulFunctionCall","src":"5605:17:18"},{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"5628:2:18"},{"kind":"number","nodeType":"YulLiteral","src":"5632:2:18","type":"","value":"66"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5624:3:18"},"nodeType":"YulFunctionCall","src":"5624:11:18"},{"name":"length_3","nodeType":"YulIdentifier","src":"5637:8:18"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"5583:21:18"},"nodeType":"YulFunctionCall","src":"5583:63:18"},"nodeType":"YulExpressionStatement","src":"5583:63:18"},{"nodeType":"YulVariableDeclaration","src":"5655:27:18","value":{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"5669:2:18"},{"name":"length_3","nodeType":"YulIdentifier","src":"5673:8:18"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5665:3:18"},"nodeType":"YulFunctionCall","src":"5665:17:18"},"variables":[{"name":"_4","nodeType":"YulTypedName","src":"5659:2:18","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"_4","nodeType":"YulIdentifier","src":"5702:2:18"},{"kind":"number","nodeType":"YulLiteral","src":"5706:2:18","type":"","value":"66"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5698:3:18"},"nodeType":"YulFunctionCall","src":"5698:11:18"},{"kind":"number","nodeType":"YulLiteral","src":"5711:66:18","type":"","value":"0x227d000000000000000000000000000000000000000000000000000000000000"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5691:6:18"},"nodeType":"YulFunctionCall","src":"5691:87:18"},"nodeType":"YulExpressionStatement","src":"5691:87:18"},{"nodeType":"YulAssignment","src":"5787:18:18","value":{"arguments":[{"name":"_4","nodeType":"YulIdentifier","src":"5798:2:18"},{"kind":"number","nodeType":"YulLiteral","src":"5802:2:18","type":"","value":"68"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5794:3:18"},"nodeType":"YulFunctionCall","src":"5794:11:18"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"5787:3:18"}]}]},"name":"abi_encode_tuple_packed_t_stringliteral_14271abadab347880c45d45d3abf3dce36bb4aa23c658e4207d08ac9b3f38832_t_string_memory_ptr_t_stringliteral_9780691b4087a1893a28b24020f5f6d0c7583060bd6cfeb54b8284a5bf55f11f_t_string_memory_ptr_t_string_memory_ptr_t_stringliteral_8d0de490dde571af103e878aa265925a94dd83b4f74e62b617db5ad43a4f76af_t_stringliteral_f90ae014c41cb48231e1f02c314087ff9c479133697911d25c5fe231e237dd14_t_string_memory_ptr_t_stringliteral_835b459273672627bbafc3a2eded65187a632f4128bdc79e126c7ef579a27475__to_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"4717:3:18","type":""},{"name":"value3","nodeType":"YulTypedName","src":"4722:6:18","type":""},{"name":"value2","nodeType":"YulTypedName","src":"4730:6:18","type":""},{"name":"value1","nodeType":"YulTypedName","src":"4738:6:18","type":""},{"name":"value0","nodeType":"YulTypedName","src":"4746:6:18","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"4757:3:18","type":""}],"src":"3977:1834:18"},{"body":{"nodeType":"YulBlock","src":"6652:924:18","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"6669:3:18"},{"kind":"string","nodeType":"YulLiteral","src":"6674:10:18","type":"","value":"Astra - "}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6662:6:18"},"nodeType":"YulFunctionCall","src":"6662:23:18"},"nodeType":"YulExpressionStatement","src":"6662:23:18"},{"nodeType":"YulVariableDeclaration","src":"6694:27:18","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"6714:6:18"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"6708:5:18"},"nodeType":"YulFunctionCall","src":"6708:13:18"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"6698:6:18","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"6756:6:18"},{"kind":"number","nodeType":"YulLiteral","src":"6764:4:18","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6752:3:18"},"nodeType":"YulFunctionCall","src":"6752:17:18"},{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"6775:3:18"},{"kind":"number","nodeType":"YulLiteral","src":"6780:1:18","type":"","value":"8"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6771:3:18"},"nodeType":"YulFunctionCall","src":"6771:11:18"},{"name":"length","nodeType":"YulIdentifier","src":"6784:6:18"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"6730:21:18"},"nodeType":"YulFunctionCall","src":"6730:61:18"},"nodeType":"YulExpressionStatement","src":"6730:61:18"},{"nodeType":"YulVariableDeclaration","src":"6800:26:18","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"6814:3:18"},{"name":"length","nodeType":"YulIdentifier","src":"6819:6:18"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6810:3:18"},"nodeType":"YulFunctionCall","src":"6810:16:18"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"6804:2:18","type":""}]},{"nodeType":"YulVariableDeclaration","src":"6835:15:18","value":{"kind":"string","nodeType":"YulLiteral","src":"6845:5:18","type":"","value":" - "},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"6839:2:18","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"6870:2:18"},{"kind":"number","nodeType":"YulLiteral","src":"6874:1:18","type":"","value":"8"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6866:3:18"},"nodeType":"YulFunctionCall","src":"6866:10:18"},{"name":"_2","nodeType":"YulIdentifier","src":"6878:2:18"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6859:6:18"},"nodeType":"YulFunctionCall","src":"6859:22:18"},"nodeType":"YulExpressionStatement","src":"6859:22:18"},{"nodeType":"YulVariableDeclaration","src":"6890:29:18","value":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"6912:6:18"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"6906:5:18"},"nodeType":"YulFunctionCall","src":"6906:13:18"},"variables":[{"name":"length_1","nodeType":"YulTypedName","src":"6894:8:18","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"6954:6:18"},{"kind":"number","nodeType":"YulLiteral","src":"6962:4:18","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6950:3:18"},"nodeType":"YulFunctionCall","src":"6950:17:18"},{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"6973:2:18"},{"kind":"number","nodeType":"YulLiteral","src":"6977:2:18","type":"","value":"11"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6969:3:18"},"nodeType":"YulFunctionCall","src":"6969:11:18"},{"name":"length_1","nodeType":"YulIdentifier","src":"6982:8:18"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"6928:21:18"},"nodeType":"YulFunctionCall","src":"6928:63:18"},"nodeType":"YulExpressionStatement","src":"6928:63:18"},{"nodeType":"YulVariableDeclaration","src":"7000:27:18","value":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"7014:2:18"},{"name":"length_1","nodeType":"YulIdentifier","src":"7018:8:18"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7010:3:18"},"nodeType":"YulFunctionCall","src":"7010:17:18"},"variables":[{"name":"_3","nodeType":"YulTypedName","src":"7004:2:18","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"7047:2:18"},{"kind":"number","nodeType":"YulLiteral","src":"7051:2:18","type":"","value":"11"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7043:3:18"},"nodeType":"YulFunctionCall","src":"7043:11:18"},{"kind":"string","nodeType":"YulLiteral","src":"7056:3:18","type":"","value":"/"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7036:6:18"},"nodeType":"YulFunctionCall","src":"7036:24:18"},"nodeType":"YulExpressionStatement","src":"7036:24:18"},{"nodeType":"YulVariableDeclaration","src":"7069:29:18","value":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"7091:6:18"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"7085:5:18"},"nodeType":"YulFunctionCall","src":"7085:13:18"},"variables":[{"name":"length_2","nodeType":"YulTypedName","src":"7073:8:18","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"7133:6:18"},{"kind":"number","nodeType":"YulLiteral","src":"7141:4:18","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7129:3:18"},"nodeType":"YulFunctionCall","src":"7129:17:18"},{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"7152:2:18"},{"kind":"number","nodeType":"YulLiteral","src":"7156:2:18","type":"","value":"12"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7148:3:18"},"nodeType":"YulFunctionCall","src":"7148:11:18"},{"name":"length_2","nodeType":"YulIdentifier","src":"7161:8:18"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"7107:21:18"},"nodeType":"YulFunctionCall","src":"7107:63:18"},"nodeType":"YulExpressionStatement","src":"7107:63:18"},{"nodeType":"YulVariableDeclaration","src":"7179:27:18","value":{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"7193:2:18"},{"name":"length_2","nodeType":"YulIdentifier","src":"7197:8:18"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7189:3:18"},"nodeType":"YulFunctionCall","src":"7189:17:18"},"variables":[{"name":"_4","nodeType":"YulTypedName","src":"7183:2:18","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"_4","nodeType":"YulIdentifier","src":"7226:2:18"},{"kind":"number","nodeType":"YulLiteral","src":"7230:2:18","type":"","value":"12"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7222:3:18"},"nodeType":"YulFunctionCall","src":"7222:11:18"},{"name":"_2","nodeType":"YulIdentifier","src":"7235:2:18"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7215:6:18"},"nodeType":"YulFunctionCall","src":"7215:23:18"},"nodeType":"YulExpressionStatement","src":"7215:23:18"},{"nodeType":"YulVariableDeclaration","src":"7247:29:18","value":{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"7269:6:18"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"7263:5:18"},"nodeType":"YulFunctionCall","src":"7263:13:18"},"variables":[{"name":"length_3","nodeType":"YulTypedName","src":"7251:8:18","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"7311:6:18"},{"kind":"number","nodeType":"YulLiteral","src":"7319:4:18","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7307:3:18"},"nodeType":"YulFunctionCall","src":"7307:17:18"},{"arguments":[{"name":"_4","nodeType":"YulIdentifier","src":"7330:2:18"},{"kind":"number","nodeType":"YulLiteral","src":"7334:2:18","type":"","value":"15"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7326:3:18"},"nodeType":"YulFunctionCall","src":"7326:11:18"},{"name":"length_3","nodeType":"YulIdentifier","src":"7339:8:18"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"7285:21:18"},"nodeType":"YulFunctionCall","src":"7285:63:18"},"nodeType":"YulExpressionStatement","src":"7285:63:18"},{"nodeType":"YulVariableDeclaration","src":"7357:27:18","value":{"arguments":[{"name":"_4","nodeType":"YulIdentifier","src":"7371:2:18"},{"name":"length_3","nodeType":"YulIdentifier","src":"7375:8:18"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7367:3:18"},"nodeType":"YulFunctionCall","src":"7367:17:18"},"variables":[{"name":"_5","nodeType":"YulTypedName","src":"7361:2:18","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"_5","nodeType":"YulIdentifier","src":"7404:2:18"},{"kind":"number","nodeType":"YulLiteral","src":"7408:2:18","type":"","value":"15"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7400:3:18"},"nodeType":"YulFunctionCall","src":"7400:11:18"},{"kind":"string","nodeType":"YulLiteral","src":"7413:4:18","type":"","value":"<>"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7393:6:18"},"nodeType":"YulFunctionCall","src":"7393:25:18"},"nodeType":"YulExpressionStatement","src":"7393:25:18"},{"nodeType":"YulVariableDeclaration","src":"7427:29:18","value":{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"7449:6:18"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"7443:5:18"},"nodeType":"YulFunctionCall","src":"7443:13:18"},"variables":[{"name":"length_4","nodeType":"YulTypedName","src":"7431:8:18","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"7491:6:18"},{"kind":"number","nodeType":"YulLiteral","src":"7499:4:18","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7487:3:18"},"nodeType":"YulFunctionCall","src":"7487:17:18"},{"arguments":[{"name":"_5","nodeType":"YulIdentifier","src":"7510:2:18"},{"kind":"number","nodeType":"YulLiteral","src":"7514:2:18","type":"","value":"17"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7506:3:18"},"nodeType":"YulFunctionCall","src":"7506:11:18"},{"name":"length_4","nodeType":"YulIdentifier","src":"7519:8:18"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"7465:21:18"},"nodeType":"YulFunctionCall","src":"7465:63:18"},"nodeType":"YulExpressionStatement","src":"7465:63:18"},{"nodeType":"YulAssignment","src":"7537:33:18","value":{"arguments":[{"arguments":[{"name":"_5","nodeType":"YulIdentifier","src":"7552:2:18"},{"name":"length_4","nodeType":"YulIdentifier","src":"7556:8:18"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7548:3:18"},"nodeType":"YulFunctionCall","src":"7548:17:18"},{"kind":"number","nodeType":"YulLiteral","src":"7567:2:18","type":"","value":"17"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7544:3:18"},"nodeType":"YulFunctionCall","src":"7544:26:18"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"7537:3:18"}]}]},"name":"abi_encode_tuple_packed_t_stringliteral_5d81801f3faf5b53217aacfdd27e1c65119f316a8cce08f40ea147b9baf4752a_t_string_memory_ptr_t_stringliteral_9e7b109ea8329776b4d3d2e2c2bf39b3f7e02ce64c66994d3a0db4ff2e229f54_t_string_memory_ptr_t_stringliteral_fba9715e477e68952d3f1df7a185b3708aadad50ec10cc793973864023868527_t_string_memory_ptr_t_stringliteral_9e7b109ea8329776b4d3d2e2c2bf39b3f7e02ce64c66994d3a0db4ff2e229f54_t_string_memory_ptr_t_stringliteral_63ddde264cc2685372ed87a1dd423ce643b51225262aecd1e20b2c3e7a1c2462_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"6596:3:18","type":""},{"name":"value4","nodeType":"YulTypedName","src":"6601:6:18","type":""},{"name":"value3","nodeType":"YulTypedName","src":"6609:6:18","type":""},{"name":"value2","nodeType":"YulTypedName","src":"6617:6:18","type":""},{"name":"value1","nodeType":"YulTypedName","src":"6625:6:18","type":""},{"name":"value0","nodeType":"YulTypedName","src":"6633:6:18","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"6644:3:18","type":""}],"src":"5816:1760:18"},{"body":{"nodeType":"YulBlock","src":"8619:1017:18","statements":[{"nodeType":"YulVariableDeclaration","src":"8629:22:18","value":{"kind":"string","nodeType":"YulLiteral","src":"8639:12:18","type":"","value":" Address: "},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"8633:2:18","type":""}]},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"8667:3:18"},{"name":"_1","nodeType":"YulIdentifier","src":"8672:2:18"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8660:6:18"},"nodeType":"YulFunctionCall","src":"8660:15:18"},"nodeType":"YulExpressionStatement","src":"8660:15:18"},{"nodeType":"YulVariableDeclaration","src":"8684:27:18","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"8704:6:18"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"8698:5:18"},"nodeType":"YulFunctionCall","src":"8698:13:18"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"8688:6:18","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"8746:6:18"},{"kind":"number","nodeType":"YulLiteral","src":"8754:4:18","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8742:3:18"},"nodeType":"YulFunctionCall","src":"8742:17:18"},{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"8765:3:18"},{"kind":"number","nodeType":"YulLiteral","src":"8770:2:18","type":"","value":"10"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8761:3:18"},"nodeType":"YulFunctionCall","src":"8761:12:18"},{"name":"length","nodeType":"YulIdentifier","src":"8775:6:18"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"8720:21:18"},"nodeType":"YulFunctionCall","src":"8720:62:18"},"nodeType":"YulExpressionStatement","src":"8720:62:18"},{"nodeType":"YulVariableDeclaration","src":"8791:26:18","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"8805:3:18"},{"name":"length","nodeType":"YulIdentifier","src":"8810:6:18"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8801:3:18"},"nodeType":"YulFunctionCall","src":"8801:16:18"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"8795:2:18","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"8837:2:18"},{"kind":"number","nodeType":"YulLiteral","src":"8841:2:18","type":"","value":"10"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8833:3:18"},"nodeType":"YulFunctionCall","src":"8833:11:18"},{"kind":"string","nodeType":"YulLiteral","src":"8846:5:18","type":"","value":"\\n"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8826:6:18"},"nodeType":"YulFunctionCall","src":"8826:26:18"},"nodeType":"YulExpressionStatement","src":"8826:26:18"},{"nodeType":"YulVariableDeclaration","src":"8861:29:18","value":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"8883:6:18"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"8877:5:18"},"nodeType":"YulFunctionCall","src":"8877:13:18"},"variables":[{"name":"length_1","nodeType":"YulTypedName","src":"8865:8:18","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"8925:6:18"},{"kind":"number","nodeType":"YulLiteral","src":"8933:4:18","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8921:3:18"},"nodeType":"YulFunctionCall","src":"8921:17:18"},{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"8944:2:18"},{"kind":"number","nodeType":"YulLiteral","src":"8948:2:18","type":"","value":"12"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8940:3:18"},"nodeType":"YulFunctionCall","src":"8940:11:18"},{"name":"length_1","nodeType":"YulIdentifier","src":"8953:8:18"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"8899:21:18"},"nodeType":"YulFunctionCall","src":"8899:63:18"},"nodeType":"YulExpressionStatement","src":"8899:63:18"},{"nodeType":"YulVariableDeclaration","src":"8971:27:18","value":{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"8985:2:18"},{"name":"length_1","nodeType":"YulIdentifier","src":"8989:8:18"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8981:3:18"},"nodeType":"YulFunctionCall","src":"8981:17:18"},"variables":[{"name":"_3","nodeType":"YulTypedName","src":"8975:2:18","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"9018:2:18"},{"kind":"number","nodeType":"YulLiteral","src":"9022:2:18","type":"","value":"12"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9014:3:18"},"nodeType":"YulFunctionCall","src":"9014:11:18"},{"name":"_1","nodeType":"YulIdentifier","src":"9027:2:18"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9007:6:18"},"nodeType":"YulFunctionCall","src":"9007:23:18"},"nodeType":"YulExpressionStatement","src":"9007:23:18"},{"nodeType":"YulVariableDeclaration","src":"9039:29:18","value":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"9061:6:18"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"9055:5:18"},"nodeType":"YulFunctionCall","src":"9055:13:18"},"variables":[{"name":"length_2","nodeType":"YulTypedName","src":"9043:8:18","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"9103:6:18"},{"kind":"number","nodeType":"YulLiteral","src":"9111:4:18","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9099:3:18"},"nodeType":"YulFunctionCall","src":"9099:17:18"},{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"9122:2:18"},{"kind":"number","nodeType":"YulLiteral","src":"9126:2:18","type":"","value":"22"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9118:3:18"},"nodeType":"YulFunctionCall","src":"9118:11:18"},{"name":"length_2","nodeType":"YulIdentifier","src":"9131:8:18"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"9077:21:18"},"nodeType":"YulFunctionCall","src":"9077:63:18"},"nodeType":"YulExpressionStatement","src":"9077:63:18"},{"nodeType":"YulVariableDeclaration","src":"9149:27:18","value":{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"9163:2:18"},{"name":"length_2","nodeType":"YulIdentifier","src":"9167:8:18"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9159:3:18"},"nodeType":"YulFunctionCall","src":"9159:17:18"},"variables":[{"name":"_4","nodeType":"YulTypedName","src":"9153:2:18","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"_4","nodeType":"YulIdentifier","src":"9196:2:18"},{"kind":"number","nodeType":"YulLiteral","src":"9200:2:18","type":"","value":"22"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9192:3:18"},"nodeType":"YulFunctionCall","src":"9192:11:18"},{"kind":"string","nodeType":"YulLiteral","src":"9205:15:18","type":"","value":"\\nFee Tier: "}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9185:6:18"},"nodeType":"YulFunctionCall","src":"9185:36:18"},"nodeType":"YulExpressionStatement","src":"9185:36:18"},{"nodeType":"YulVariableDeclaration","src":"9230:29:18","value":{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"9252:6:18"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"9246:5:18"},"nodeType":"YulFunctionCall","src":"9246:13:18"},"variables":[{"name":"length_3","nodeType":"YulTypedName","src":"9234:8:18","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"9294:6:18"},{"kind":"number","nodeType":"YulLiteral","src":"9302:4:18","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9290:3:18"},"nodeType":"YulFunctionCall","src":"9290:17:18"},{"arguments":[{"name":"_4","nodeType":"YulIdentifier","src":"9313:2:18"},{"kind":"number","nodeType":"YulLiteral","src":"9317:2:18","type":"","value":"34"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9309:3:18"},"nodeType":"YulFunctionCall","src":"9309:11:18"},{"name":"length_3","nodeType":"YulIdentifier","src":"9322:8:18"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"9268:21:18"},"nodeType":"YulFunctionCall","src":"9268:63:18"},"nodeType":"YulExpressionStatement","src":"9268:63:18"},{"nodeType":"YulVariableDeclaration","src":"9340:27:18","value":{"arguments":[{"name":"_4","nodeType":"YulIdentifier","src":"9354:2:18"},{"name":"length_3","nodeType":"YulIdentifier","src":"9358:8:18"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9350:3:18"},"nodeType":"YulFunctionCall","src":"9350:17:18"},"variables":[{"name":"_5","nodeType":"YulTypedName","src":"9344:2:18","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"_5","nodeType":"YulIdentifier","src":"9387:2:18"},{"kind":"number","nodeType":"YulLiteral","src":"9391:2:18","type":"","value":"34"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9383:3:18"},"nodeType":"YulFunctionCall","src":"9383:11:18"},{"kind":"string","nodeType":"YulLiteral","src":"9396:15:18","type":"","value":"\\nToken ID: "}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9376:6:18"},"nodeType":"YulFunctionCall","src":"9376:36:18"},"nodeType":"YulExpressionStatement","src":"9376:36:18"},{"nodeType":"YulVariableDeclaration","src":"9421:29:18","value":{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"9443:6:18"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"9437:5:18"},"nodeType":"YulFunctionCall","src":"9437:13:18"},"variables":[{"name":"length_4","nodeType":"YulTypedName","src":"9425:8:18","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"9485:6:18"},{"kind":"number","nodeType":"YulLiteral","src":"9493:4:18","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9481:3:18"},"nodeType":"YulFunctionCall","src":"9481:17:18"},{"arguments":[{"name":"_5","nodeType":"YulIdentifier","src":"9504:2:18"},{"kind":"number","nodeType":"YulLiteral","src":"9508:2:18","type":"","value":"46"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9500:3:18"},"nodeType":"YulFunctionCall","src":"9500:11:18"},{"name":"length_4","nodeType":"YulIdentifier","src":"9513:8:18"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"9459:21:18"},"nodeType":"YulFunctionCall","src":"9459:63:18"},"nodeType":"YulExpressionStatement","src":"9459:63:18"},{"nodeType":"YulAssignment","src":"9531:99:18","value":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"name":"_5","nodeType":"YulIdentifier","src":"9610:2:18"},{"name":"length_4","nodeType":"YulIdentifier","src":"9614:8:18"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9606:3:18"},"nodeType":"YulFunctionCall","src":"9606:17:18"},{"kind":"number","nodeType":"YulLiteral","src":"9625:2:18","type":"","value":"46"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9602:3:18"},"nodeType":"YulFunctionCall","src":"9602:26:18"}],"functionName":{"name":"abi_encode_t_stringliteral_c619","nodeType":"YulIdentifier","src":"9570:31:18"},"nodeType":"YulFunctionCall","src":"9570:59:18"}],"functionName":{"name":"abi_encode_t_stringliteral_3378","nodeType":"YulIdentifier","src":"9538:31:18"},"nodeType":"YulFunctionCall","src":"9538:92:18"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"9531:3:18"}]}]},"name":"abi_encode_tuple_packed_t_stringliteral_7aa660bcf8ae0b7203360b6321d9d065d9e5aa33ec33d36eb947d624b5c3b3b0_t_string_memory_ptr_t_stringliteral_90249a63b806acad050a60c81f8cc82fb6e7ebc3575d78119a9b4c5568b02cd2_t_string_memory_ptr_t_stringliteral_7aa660bcf8ae0b7203360b6321d9d065d9e5aa33ec33d36eb947d624b5c3b3b0_t_string_memory_ptr_t_stringliteral_aded885378cc6538f3bd3ce068731b0abae76fa7bf8dbda35e1058e85aa79ab2_t_string_memory_ptr_t_stringliteral_a2bfa4136760740c1452b04d79f8a1bc2d4b66a227d5106d32849e904d06aff9_t_string_memory_ptr_t_stringliteral_c61933a8d2be5d811f4efe562efc05b21b97e6174fab5f4c4a9e0d70fcc60e1b_t_stringliteral_3378df0222f0793f0de1d8213e14093d5e40c9a86dac387a423dca1fb6175d77__to_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"8563:3:18","type":""},{"name":"value4","nodeType":"YulTypedName","src":"8568:6:18","type":""},{"name":"value3","nodeType":"YulTypedName","src":"8576:6:18","type":""},{"name":"value2","nodeType":"YulTypedName","src":"8584:6:18","type":""},{"name":"value1","nodeType":"YulTypedName","src":"8592:6:18","type":""},{"name":"value0","nodeType":"YulTypedName","src":"8600:6:18","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"8611:3:18","type":""}],"src":"7581:2055:18"},{"body":{"nodeType":"YulBlock","src":"10530:889:18","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"10547:3:18"},{"kind":"string","nodeType":"YulLiteral","src":"10552:34:18","type":"","value":"This NFT represents a liquidity "}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10540:6:18"},"nodeType":"YulFunctionCall","src":"10540:47:18"},"nodeType":"YulExpressionStatement","src":"10540:47:18"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"10607:3:18"},{"kind":"number","nodeType":"YulLiteral","src":"10612:2:18","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10603:3:18"},"nodeType":"YulFunctionCall","src":"10603:12:18"},{"kind":"string","nodeType":"YulLiteral","src":"10617:28:18","type":"","value":"position in a AstraDEX CL "}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10596:6:18"},"nodeType":"YulFunctionCall","src":"10596:50:18"},"nodeType":"YulExpressionStatement","src":"10596:50:18"},{"nodeType":"YulVariableDeclaration","src":"10655:27:18","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"10675:6:18"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"10669:5:18"},"nodeType":"YulFunctionCall","src":"10669:13:18"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"10659:6:18","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"10717:6:18"},{"kind":"number","nodeType":"YulLiteral","src":"10725:2:18","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10713:3:18"},"nodeType":"YulFunctionCall","src":"10713:15:18"},{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"10734:3:18"},{"kind":"number","nodeType":"YulLiteral","src":"10739:2:18","type":"","value":"58"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10730:3:18"},"nodeType":"YulFunctionCall","src":"10730:12:18"},{"name":"length","nodeType":"YulIdentifier","src":"10744:6:18"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"10691:21:18"},"nodeType":"YulFunctionCall","src":"10691:60:18"},"nodeType":"YulExpressionStatement","src":"10691:60:18"},{"nodeType":"YulVariableDeclaration","src":"10760:26:18","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"10774:3:18"},{"name":"length","nodeType":"YulIdentifier","src":"10779:6:18"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10770:3:18"},"nodeType":"YulFunctionCall","src":"10770:16:18"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"10764:2:18","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"10806:2:18"},{"kind":"number","nodeType":"YulLiteral","src":"10810:2:18","type":"","value":"58"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10802:3:18"},"nodeType":"YulFunctionCall","src":"10802:11:18"},{"kind":"string","nodeType":"YulLiteral","src":"10815:3:18","type":"","value":"-"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10795:6:18"},"nodeType":"YulFunctionCall","src":"10795:24:18"},"nodeType":"YulExpressionStatement","src":"10795:24:18"},{"nodeType":"YulVariableDeclaration","src":"10828:29:18","value":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"10850:6:18"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"10844:5:18"},"nodeType":"YulFunctionCall","src":"10844:13:18"},"variables":[{"name":"length_1","nodeType":"YulTypedName","src":"10832:8:18","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"10892:6:18"},{"kind":"number","nodeType":"YulLiteral","src":"10900:2:18","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10888:3:18"},"nodeType":"YulFunctionCall","src":"10888:15:18"},{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"10909:2:18"},{"kind":"number","nodeType":"YulLiteral","src":"10913:2:18","type":"","value":"59"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10905:3:18"},"nodeType":"YulFunctionCall","src":"10905:11:18"},{"name":"length_1","nodeType":"YulIdentifier","src":"10918:8:18"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"10866:21:18"},"nodeType":"YulFunctionCall","src":"10866:61:18"},"nodeType":"YulExpressionStatement","src":"10866:61:18"},{"nodeType":"YulVariableDeclaration","src":"10936:27:18","value":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"10950:2:18"},{"name":"length_1","nodeType":"YulIdentifier","src":"10954:8:18"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10946:3:18"},"nodeType":"YulFunctionCall","src":"10946:17:18"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"10940:2:18","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"10983:2:18"},{"kind":"number","nodeType":"YulLiteral","src":"10987:2:18","type":"","value":"59"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10979:3:18"},"nodeType":"YulFunctionCall","src":"10979:11:18"},{"kind":"string","nodeType":"YulLiteral","src":"10992:9:18","type":"","value":" pool. "}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10972:6:18"},"nodeType":"YulFunctionCall","src":"10972:30:18"},"nodeType":"YulExpressionStatement","src":"10972:30:18"},{"expression":{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"11022:2:18"},{"kind":"number","nodeType":"YulLiteral","src":"11026:2:18","type":"","value":"66"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11018:3:18"},"nodeType":"YulFunctionCall","src":"11018:11:18"},{"kind":"string","nodeType":"YulLiteral","src":"11031:34:18","type":"","value":"The owner of this NFT can modify"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11011:6:18"},"nodeType":"YulFunctionCall","src":"11011:55:18"},"nodeType":"YulExpressionStatement","src":"11011:55:18"},{"expression":{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"11086:2:18"},{"kind":"number","nodeType":"YulLiteral","src":"11090:2:18","type":"","value":"98"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11082:3:18"},"nodeType":"YulFunctionCall","src":"11082:11:18"},{"kind":"string","nodeType":"YulLiteral","src":"11095:29:18","type":"","value":" or redeem the position.\\n"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11075:6:18"},"nodeType":"YulFunctionCall","src":"11075:50:18"},"nodeType":"YulExpressionStatement","src":"11075:50:18"},{"expression":{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"11145:2:18"},{"kind":"number","nodeType":"YulLiteral","src":"11149:3:18","type":"","value":"124"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11141:3:18"},"nodeType":"YulFunctionCall","src":"11141:12:18"},{"kind":"string","nodeType":"YulLiteral","src":"11155:19:18","type":"","value":"\\nPool Address: "}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11134:6:18"},"nodeType":"YulFunctionCall","src":"11134:41:18"},"nodeType":"YulExpressionStatement","src":"11134:41:18"},{"nodeType":"YulVariableDeclaration","src":"11184:29:18","value":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"11206:6:18"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"11200:5:18"},"nodeType":"YulFunctionCall","src":"11200:13:18"},"variables":[{"name":"length_2","nodeType":"YulTypedName","src":"11188:8:18","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"11248:6:18"},{"kind":"number","nodeType":"YulLiteral","src":"11256:2:18","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11244:3:18"},"nodeType":"YulFunctionCall","src":"11244:15:18"},{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"11265:2:18"},{"kind":"number","nodeType":"YulLiteral","src":"11269:3:18","type":"","value":"140"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11261:3:18"},"nodeType":"YulFunctionCall","src":"11261:12:18"},{"name":"length_2","nodeType":"YulIdentifier","src":"11275:8:18"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"11222:21:18"},"nodeType":"YulFunctionCall","src":"11222:62:18"},"nodeType":"YulExpressionStatement","src":"11222:62:18"},{"nodeType":"YulVariableDeclaration","src":"11293:27:18","value":{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"11307:2:18"},{"name":"length_2","nodeType":"YulIdentifier","src":"11311:8:18"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11303:3:18"},"nodeType":"YulFunctionCall","src":"11303:17:18"},"variables":[{"name":"_3","nodeType":"YulTypedName","src":"11297:2:18","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"11340:2:18"},{"kind":"number","nodeType":"YulLiteral","src":"11344:3:18","type":"","value":"140"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11336:3:18"},"nodeType":"YulFunctionCall","src":"11336:12:18"},{"kind":"string","nodeType":"YulLiteral","src":"11350:5:18","type":"","value":"\\n"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11329:6:18"},"nodeType":"YulFunctionCall","src":"11329:27:18"},"nodeType":"YulExpressionStatement","src":"11329:27:18"},{"nodeType":"YulAssignment","src":"11365:48:18","value":{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"11392:6:18"},{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"11404:2:18"},{"kind":"number","nodeType":"YulLiteral","src":"11408:3:18","type":"","value":"142"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11400:3:18"},"nodeType":"YulFunctionCall","src":"11400:12:18"}],"functionName":{"name":"abi_encode_t_string","nodeType":"YulIdentifier","src":"11372:19:18"},"nodeType":"YulFunctionCall","src":"11372:41:18"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"11365:3:18"}]}]},"name":"abi_encode_tuple_packed_t_stringliteral_a5e36cfb8d1baee257d7c52959ea9d09b81589d687d56c5cf5480de85319d26b_t_string_memory_ptr_t_stringliteral_d3b8281179950f98149eefdb158d0e1acb56f56e8e343aa9fefafa7e36959561_t_string_memory_ptr_t_stringliteral_653c56b4082275492c676e2e8a392152fd3797ddaf9258db7bb55df6f1109f07_t_stringliteral_9013e84e1527194f2724f9cc76ecfb22d8c29795e059cbfa4956303bf5e4e20a_t_stringliteral_4517a570da75b0bbae4ccef80790cc987c9b97b99c62e75a69fa04f38ace8fc6_t_string_memory_ptr_t_stringliteral_90249a63b806acad050a60c81f8cc82fb6e7ebc3575d78119a9b4c5568b02cd2_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"10482:3:18","type":""},{"name":"value3","nodeType":"YulTypedName","src":"10487:6:18","type":""},{"name":"value2","nodeType":"YulTypedName","src":"10495:6:18","type":""},{"name":"value1","nodeType":"YulTypedName","src":"10503:6:18","type":""},{"name":"value0","nodeType":"YulTypedName","src":"10511:6:18","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"10522:3:18","type":""}],"src":"9641:1778:18"},{"body":{"nodeType":"YulBlock","src":"11664:208:18","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"11681:3:18"},{"kind":"string","nodeType":"YulLiteral","src":"11686:31:18","type":"","value":"data:application/json;base64,"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11674:6:18"},"nodeType":"YulFunctionCall","src":"11674:44:18"},"nodeType":"YulExpressionStatement","src":"11674:44:18"},{"nodeType":"YulVariableDeclaration","src":"11727:27:18","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"11747:6:18"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"11741:5:18"},"nodeType":"YulFunctionCall","src":"11741:13:18"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"11731:6:18","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"11789:6:18"},{"kind":"number","nodeType":"YulLiteral","src":"11797:4:18","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11785:3:18"},"nodeType":"YulFunctionCall","src":"11785:17:18"},{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"11808:3:18"},{"kind":"number","nodeType":"YulLiteral","src":"11813:2:18","type":"","value":"29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11804:3:18"},"nodeType":"YulFunctionCall","src":"11804:12:18"},{"name":"length","nodeType":"YulIdentifier","src":"11818:6:18"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"11763:21:18"},"nodeType":"YulFunctionCall","src":"11763:62:18"},"nodeType":"YulExpressionStatement","src":"11763:62:18"},{"nodeType":"YulAssignment","src":"11834:32:18","value":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"11849:3:18"},{"name":"length","nodeType":"YulIdentifier","src":"11854:6:18"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11845:3:18"},"nodeType":"YulFunctionCall","src":"11845:16:18"},{"kind":"number","nodeType":"YulLiteral","src":"11863:2:18","type":"","value":"29"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11841:3:18"},"nodeType":"YulFunctionCall","src":"11841:25:18"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"11834:3:18"}]}]},"name":"abi_encode_tuple_packed_t_stringliteral_bccab2d885f86fda81bfd84dd4248d31f8073b473d187111d36536db073076fa_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"11640:3:18","type":""},{"name":"value0","nodeType":"YulTypedName","src":"11645:6:18","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"11656:3:18","type":""}],"src":"11424:448:18"},{"body":{"nodeType":"YulBlock","src":"12006:262:18","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12023:9:18"},{"kind":"number","nodeType":"YulLiteral","src":"12034:2:18","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12016:6:18"},"nodeType":"YulFunctionCall","src":"12016:21:18"},"nodeType":"YulExpressionStatement","src":"12016:21:18"},{"nodeType":"YulVariableDeclaration","src":"12046:27:18","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"12066:6:18"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"12060:5:18"},"nodeType":"YulFunctionCall","src":"12060:13:18"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"12050:6:18","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12093:9:18"},{"kind":"number","nodeType":"YulLiteral","src":"12104:2:18","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12089:3:18"},"nodeType":"YulFunctionCall","src":"12089:18:18"},{"name":"length","nodeType":"YulIdentifier","src":"12109:6:18"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12082:6:18"},"nodeType":"YulFunctionCall","src":"12082:34:18"},"nodeType":"YulExpressionStatement","src":"12082:34:18"},{"expression":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"12151:6:18"},{"kind":"number","nodeType":"YulLiteral","src":"12159:2:18","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12147:3:18"},"nodeType":"YulFunctionCall","src":"12147:15:18"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12168:9:18"},{"kind":"number","nodeType":"YulLiteral","src":"12179:2:18","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12164:3:18"},"nodeType":"YulFunctionCall","src":"12164:18:18"},{"name":"length","nodeType":"YulIdentifier","src":"12184:6:18"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"12125:21:18"},"nodeType":"YulFunctionCall","src":"12125:66:18"},"nodeType":"YulExpressionStatement","src":"12125:66:18"},{"nodeType":"YulAssignment","src":"12200:62:18","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12216:9:18"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"12235:6:18"},{"kind":"number","nodeType":"YulLiteral","src":"12243:2:18","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12231:3:18"},"nodeType":"YulFunctionCall","src":"12231:15:18"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12252:2:18","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"12248:3:18"},"nodeType":"YulFunctionCall","src":"12248:7:18"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"12227:3:18"},"nodeType":"YulFunctionCall","src":"12227:29:18"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12212:3:18"},"nodeType":"YulFunctionCall","src":"12212:45:18"},{"kind":"number","nodeType":"YulLiteral","src":"12259:2:18","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12208:3:18"},"nodeType":"YulFunctionCall","src":"12208:54:18"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"12200:4:18"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_library_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"11975:9:18","type":""},{"name":"value0","nodeType":"YulTypedName","src":"11986:6:18","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"11997:4:18","type":""}],"src":"11877:391:18"},{"body":{"nodeType":"YulBlock","src":"12317:198:18","statements":[{"nodeType":"YulAssignment","src":"12327:19:18","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12343:2:18","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"12337:5:18"},"nodeType":"YulFunctionCall","src":"12337:9:18"},"variableNames":[{"name":"memPtr","nodeType":"YulIdentifier","src":"12327:6:18"}]},{"nodeType":"YulVariableDeclaration","src":"12355:35:18","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"12377:6:18"},{"name":"size","nodeType":"YulIdentifier","src":"12385:4:18"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12373:3:18"},"nodeType":"YulFunctionCall","src":"12373:17:18"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"12359:10:18","type":""}]},{"body":{"nodeType":"YulBlock","src":"12465:13:18","statements":[{"expression":{"arguments":[],"functionName":{"name":"invalid","nodeType":"YulIdentifier","src":"12467:7:18"},"nodeType":"YulFunctionCall","src":"12467:9:18"},"nodeType":"YulExpressionStatement","src":"12467:9:18"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"12408:10:18"},{"kind":"number","nodeType":"YulLiteral","src":"12420:18:18","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"12405:2:18"},"nodeType":"YulFunctionCall","src":"12405:34:18"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"12444:10:18"},{"name":"memPtr","nodeType":"YulIdentifier","src":"12456:6:18"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"12441:2:18"},"nodeType":"YulFunctionCall","src":"12441:22:18"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"12402:2:18"},"nodeType":"YulFunctionCall","src":"12402:62:18"},"nodeType":"YulIf","src":"12399:2:18"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12494:2:18","type":"","value":"64"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"12498:10:18"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12487:6:18"},"nodeType":"YulFunctionCall","src":"12487:22:18"},"nodeType":"YulExpressionStatement","src":"12487:22:18"}]},"name":"allocateMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"size","nodeType":"YulTypedName","src":"12297:4:18","type":""}],"returnVariables":[{"name":"memPtr","nodeType":"YulTypedName","src":"12306:6:18","type":""}],"src":"12273:242:18"},{"body":{"nodeType":"YulBlock","src":"12573:205:18","statements":[{"nodeType":"YulVariableDeclaration","src":"12583:10:18","value":{"kind":"number","nodeType":"YulLiteral","src":"12592:1:18","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"12587:1:18","type":""}]},{"body":{"nodeType":"YulBlock","src":"12652:63:18","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"12677:3:18"},{"name":"i","nodeType":"YulIdentifier","src":"12682:1:18"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12673:3:18"},"nodeType":"YulFunctionCall","src":"12673:11:18"},{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"12696:3:18"},{"name":"i","nodeType":"YulIdentifier","src":"12701:1:18"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12692:3:18"},"nodeType":"YulFunctionCall","src":"12692:11:18"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"12686:5:18"},"nodeType":"YulFunctionCall","src":"12686:18:18"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12666:6:18"},"nodeType":"YulFunctionCall","src":"12666:39:18"},"nodeType":"YulExpressionStatement","src":"12666:39:18"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"12613:1:18"},{"name":"length","nodeType":"YulIdentifier","src":"12616:6:18"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"12610:2:18"},"nodeType":"YulFunctionCall","src":"12610:13:18"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"12624:19:18","statements":[{"nodeType":"YulAssignment","src":"12626:15:18","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"12635:1:18"},{"kind":"number","nodeType":"YulLiteral","src":"12638:2:18","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12631:3:18"},"nodeType":"YulFunctionCall","src":"12631:10:18"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"12626:1:18"}]}]},"pre":{"nodeType":"YulBlock","src":"12606:3:18","statements":[]},"src":"12602:113:18"},{"body":{"nodeType":"YulBlock","src":"12741:31:18","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"12754:3:18"},{"name":"length","nodeType":"YulIdentifier","src":"12759:6:18"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12750:3:18"},"nodeType":"YulFunctionCall","src":"12750:16:18"},{"kind":"number","nodeType":"YulLiteral","src":"12768:1:18","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12743:6:18"},"nodeType":"YulFunctionCall","src":"12743:27:18"},"nodeType":"YulExpressionStatement","src":"12743:27:18"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"12730:1:18"},{"name":"length","nodeType":"YulIdentifier","src":"12733:6:18"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"12727:2:18"},"nodeType":"YulFunctionCall","src":"12727:13:18"},"nodeType":"YulIf","src":"12724:2:18"}]},"name":"copy_memory_to_memory","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nodeType":"YulTypedName","src":"12551:3:18","type":""},{"name":"dst","nodeType":"YulTypedName","src":"12556:3:18","type":""},{"name":"length","nodeType":"YulTypedName","src":"12561:6:18","type":""}],"src":"12520:258:18"}]},"contents":"{\n    { }\n    function abi_decode_t_address(offset) -> value\n    {\n        value := calldataload(offset)\n        if iszero(eq(value, and(value, 0xffffffffffffffffffffffffffffffffffffffff))) { revert(0, 0) }\n    }\n    function abi_decode_t_bool(offset) -> value\n    {\n        value := calldataload(offset)\n        if iszero(eq(value, iszero(iszero(value)))) { revert(0, 0) }\n    }\n    function abi_decode_t_int24(offset) -> value\n    {\n        value := calldataload(offset)\n        if iszero(eq(value, signextend(2, value))) { revert(0, 0) }\n    }\n    function abi_decode_t_string(offset, end) -> array\n    {\n        if iszero(slt(add(offset, 0x1f), end)) { revert(array, array) }\n        let _1 := calldataload(offset)\n        if gt(_1, 0xffffffffffffffff) { invalid() }\n        let array_1 := allocateMemory(add(and(add(_1, 0x1f), not(31)), 0x20))\n        mstore(array_1, _1)\n        if gt(add(add(offset, _1), 0x20), end) { revert(array, array) }\n        calldatacopy(add(array_1, 0x20), add(offset, 0x20), _1)\n        mstore(add(add(array_1, _1), 0x20), array)\n        array := array_1\n    }\n    function abi_decode_t_uint24(offset) -> value\n    {\n        value := calldataload(offset)\n        if iszero(eq(value, and(value, 0xffffff))) { revert(0, 0) }\n    }\n    function abi_decode_t_uint8(offset) -> value\n    {\n        value := calldataload(offset)\n        if iszero(eq(value, and(value, 0xff))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_struct$_ConstructTokenURIParams_$2306_memory_ptr(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n        let offset := calldataload(headStart)\n        let _1 := 0xffffffffffffffff\n        if gt(offset, _1) { revert(value0, value0) }\n        let _2 := add(headStart, offset)\n        let _3 := 0x01c0\n        if slt(sub(dataEnd, _2), _3) { revert(value0, value0) }\n        let value := allocateMemory(_3)\n        mstore(value, calldataload(_2))\n        mstore(add(value, 32), abi_decode_t_address(add(_2, 32)))\n        mstore(add(value, 64), abi_decode_t_address(add(_2, 64)))\n        let offset_1 := calldataload(add(_2, 96))\n        if gt(offset_1, _1) { revert(value0, value0) }\n        mstore(add(value, 96), abi_decode_t_string(add(_2, offset_1), dataEnd))\n        let offset_2 := calldataload(add(_2, 128))\n        if gt(offset_2, _1) { revert(value0, value0) }\n        mstore(add(value, 128), abi_decode_t_string(add(_2, offset_2), dataEnd))\n        mstore(add(value, 160), abi_decode_t_uint8(add(_2, 160)))\n        mstore(add(value, 192), abi_decode_t_uint8(add(_2, 192)))\n        mstore(add(value, 224), abi_decode_t_bool(add(_2, 224)))\n        let _4 := 256\n        mstore(add(value, _4), abi_decode_t_int24(add(_2, _4)))\n        let _5 := 288\n        mstore(add(value, _5), abi_decode_t_int24(add(_2, _5)))\n        let _6 := 320\n        mstore(add(value, _6), abi_decode_t_int24(add(_2, _6)))\n        let _7 := 352\n        mstore(add(value, _7), abi_decode_t_int24(add(_2, _7)))\n        let _8 := 384\n        mstore(add(value, _8), abi_decode_t_uint24(add(_2, _8)))\n        let _9 := 416\n        mstore(add(value, _9), abi_decode_t_address(add(_2, _9)))\n        value0 := value\n    }\n    function abi_encode_t_string(value, pos) -> end\n    {\n        let length := mload(value)\n        copy_memory_to_memory(add(value, 0x20), pos, length)\n        end := add(pos, length)\n    }\n    function abi_encode_t_stringliteral_3378(pos) -> end\n    {\n        mstore(pos, 0xe29aa0efb88f20444953434c41494d45523a204475652064696c6967656e6365)\n        mstore(add(pos, 32), \" is imperative when assessing th\")\n        mstore(add(pos, 64), \"is NFT. Make sure token addresse\")\n        mstore(add(pos, 96), \"s match the expected tokens, as \")\n        mstore(add(pos, 128), \"token symbols may be imitated.\")\n        end := add(pos, 158)\n    }\n    function abi_encode_t_stringliteral_c619(pos) -> end\n    {\n        mstore(pos, \"\\\\n\\\\n\")\n        end := add(pos, 4)\n    }\n    function abi_encode_tuple_packed_t_stringliteral_14271abadab347880c45d45d3abf3dce36bb4aa23c658e4207d08ac9b3f38832_t_string_memory_ptr_t_stringliteral_9780691b4087a1893a28b24020f5f6d0c7583060bd6cfeb54b8284a5bf55f11f_t_string_memory_ptr_t_string_memory_ptr_t_stringliteral_8d0de490dde571af103e878aa265925a94dd83b4f74e62b617db5ad43a4f76af_t_stringliteral_f90ae014c41cb48231e1f02c314087ff9c479133697911d25c5fe231e237dd14_t_string_memory_ptr_t_stringliteral_835b459273672627bbafc3a2eded65187a632f4128bdc79e126c7ef579a27475__to_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value3, value2, value1, value0) -> end\n    {\n        mstore(pos, 0x7b226e616d65223a220000000000000000000000000000000000000000000000)\n        let length := mload(value0)\n        copy_memory_to_memory(add(value0, 0x20), add(pos, 9), length)\n        let _1 := add(pos, length)\n        mstore(add(_1, 9), 0x222c20226465736372697074696f6e223a220000000000000000000000000000)\n        let length_1 := mload(value1)\n        copy_memory_to_memory(add(value1, 0x20), add(_1, 27), length_1)\n        let _2 := add(_1, length_1)\n        let length_2 := mload(value2)\n        copy_memory_to_memory(add(value2, 0x20), add(_2, 27), length_2)\n        let _3 := add(_2, length_2)\n        mstore(add(_3, 27), 0x222c2022696d616765223a202200000000000000000000000000000000000000)\n        mstore(add(_3, 40), \"data:image/svg+xml;base64,\")\n        let length_3 := mload(value3)\n        copy_memory_to_memory(add(value3, 0x20), add(_3, 66), length_3)\n        let _4 := add(_3, length_3)\n        mstore(add(_4, 66), 0x227d000000000000000000000000000000000000000000000000000000000000)\n        end := add(_4, 68)\n    }\n    function abi_encode_tuple_packed_t_stringliteral_5d81801f3faf5b53217aacfdd27e1c65119f316a8cce08f40ea147b9baf4752a_t_string_memory_ptr_t_stringliteral_9e7b109ea8329776b4d3d2e2c2bf39b3f7e02ce64c66994d3a0db4ff2e229f54_t_string_memory_ptr_t_stringliteral_fba9715e477e68952d3f1df7a185b3708aadad50ec10cc793973864023868527_t_string_memory_ptr_t_stringliteral_9e7b109ea8329776b4d3d2e2c2bf39b3f7e02ce64c66994d3a0db4ff2e229f54_t_string_memory_ptr_t_stringliteral_63ddde264cc2685372ed87a1dd423ce643b51225262aecd1e20b2c3e7a1c2462_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value4, value3, value2, value1, value0) -> end\n    {\n        mstore(pos, \"Astra - \")\n        let length := mload(value0)\n        copy_memory_to_memory(add(value0, 0x20), add(pos, 8), length)\n        let _1 := add(pos, length)\n        let _2 := \" - \"\n        mstore(add(_1, 8), _2)\n        let length_1 := mload(value1)\n        copy_memory_to_memory(add(value1, 0x20), add(_1, 11), length_1)\n        let _3 := add(_1, length_1)\n        mstore(add(_3, 11), \"/\")\n        let length_2 := mload(value2)\n        copy_memory_to_memory(add(value2, 0x20), add(_3, 12), length_2)\n        let _4 := add(_3, length_2)\n        mstore(add(_4, 12), _2)\n        let length_3 := mload(value3)\n        copy_memory_to_memory(add(value3, 0x20), add(_4, 15), length_3)\n        let _5 := add(_4, length_3)\n        mstore(add(_5, 15), \"<>\")\n        let length_4 := mload(value4)\n        copy_memory_to_memory(add(value4, 0x20), add(_5, 17), length_4)\n        end := add(add(_5, length_4), 17)\n    }\n    function abi_encode_tuple_packed_t_stringliteral_7aa660bcf8ae0b7203360b6321d9d065d9e5aa33ec33d36eb947d624b5c3b3b0_t_string_memory_ptr_t_stringliteral_90249a63b806acad050a60c81f8cc82fb6e7ebc3575d78119a9b4c5568b02cd2_t_string_memory_ptr_t_stringliteral_7aa660bcf8ae0b7203360b6321d9d065d9e5aa33ec33d36eb947d624b5c3b3b0_t_string_memory_ptr_t_stringliteral_aded885378cc6538f3bd3ce068731b0abae76fa7bf8dbda35e1058e85aa79ab2_t_string_memory_ptr_t_stringliteral_a2bfa4136760740c1452b04d79f8a1bc2d4b66a227d5106d32849e904d06aff9_t_string_memory_ptr_t_stringliteral_c61933a8d2be5d811f4efe562efc05b21b97e6174fab5f4c4a9e0d70fcc60e1b_t_stringliteral_3378df0222f0793f0de1d8213e14093d5e40c9a86dac387a423dca1fb6175d77__to_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value4, value3, value2, value1, value0) -> end\n    {\n        let _1 := \" Address: \"\n        mstore(pos, _1)\n        let length := mload(value0)\n        copy_memory_to_memory(add(value0, 0x20), add(pos, 10), length)\n        let _2 := add(pos, length)\n        mstore(add(_2, 10), \"\\\\n\")\n        let length_1 := mload(value1)\n        copy_memory_to_memory(add(value1, 0x20), add(_2, 12), length_1)\n        let _3 := add(_2, length_1)\n        mstore(add(_3, 12), _1)\n        let length_2 := mload(value2)\n        copy_memory_to_memory(add(value2, 0x20), add(_3, 22), length_2)\n        let _4 := add(_3, length_2)\n        mstore(add(_4, 22), \"\\\\nFee Tier: \")\n        let length_3 := mload(value3)\n        copy_memory_to_memory(add(value3, 0x20), add(_4, 34), length_3)\n        let _5 := add(_4, length_3)\n        mstore(add(_5, 34), \"\\\\nToken ID: \")\n        let length_4 := mload(value4)\n        copy_memory_to_memory(add(value4, 0x20), add(_5, 46), length_4)\n        end := abi_encode_t_stringliteral_3378(abi_encode_t_stringliteral_c619(add(add(_5, length_4), 46)))\n    }\n    function abi_encode_tuple_packed_t_stringliteral_a5e36cfb8d1baee257d7c52959ea9d09b81589d687d56c5cf5480de85319d26b_t_string_memory_ptr_t_stringliteral_d3b8281179950f98149eefdb158d0e1acb56f56e8e343aa9fefafa7e36959561_t_string_memory_ptr_t_stringliteral_653c56b4082275492c676e2e8a392152fd3797ddaf9258db7bb55df6f1109f07_t_stringliteral_9013e84e1527194f2724f9cc76ecfb22d8c29795e059cbfa4956303bf5e4e20a_t_stringliteral_4517a570da75b0bbae4ccef80790cc987c9b97b99c62e75a69fa04f38ace8fc6_t_string_memory_ptr_t_stringliteral_90249a63b806acad050a60c81f8cc82fb6e7ebc3575d78119a9b4c5568b02cd2_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value3, value2, value1, value0) -> end\n    {\n        mstore(pos, \"This NFT represents a liquidity \")\n        mstore(add(pos, 32), \"position in a AstraDEX CL \")\n        let length := mload(value0)\n        copy_memory_to_memory(add(value0, 32), add(pos, 58), length)\n        let _1 := add(pos, length)\n        mstore(add(_1, 58), \"-\")\n        let length_1 := mload(value1)\n        copy_memory_to_memory(add(value1, 32), add(_1, 59), length_1)\n        let _2 := add(_1, length_1)\n        mstore(add(_2, 59), \" pool. \")\n        mstore(add(_2, 66), \"The owner of this NFT can modify\")\n        mstore(add(_2, 98), \" or redeem the position.\\\\n\")\n        mstore(add(_2, 124), \"\\\\nPool Address: \")\n        let length_2 := mload(value2)\n        copy_memory_to_memory(add(value2, 32), add(_2, 140), length_2)\n        let _3 := add(_2, length_2)\n        mstore(add(_3, 140), \"\\\\n\")\n        end := abi_encode_t_string(value3, add(_3, 142))\n    }\n    function abi_encode_tuple_packed_t_stringliteral_bccab2d885f86fda81bfd84dd4248d31f8073b473d187111d36536db073076fa_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value0) -> end\n    {\n        mstore(pos, \"data:application/json;base64,\")\n        let length := mload(value0)\n        copy_memory_to_memory(add(value0, 0x20), add(pos, 29), length)\n        end := add(add(pos, length), 29)\n    }\n    function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_library_reversed(headStart, value0) -> tail\n    {\n        mstore(headStart, 32)\n        let length := mload(value0)\n        mstore(add(headStart, 32), length)\n        copy_memory_to_memory(add(value0, 32), add(headStart, 64), length)\n        tail := add(add(headStart, and(add(length, 31), not(31))), 64)\n    }\n    function allocateMemory(size) -> memPtr\n    {\n        memPtr := mload(64)\n        let newFreePtr := add(memPtr, size)\n        if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { invalid() }\n        mstore(64, newFreePtr)\n    }\n    function copy_memory_to_memory(src, dst, length)\n    {\n        let i := 0\n        for { } lt(i, length) { i := add(i, 32) }\n        {\n            mstore(add(dst, i), mload(add(src, i)))\n        }\n        if gt(i, length) { mstore(add(dst, length), 0) }\n    }\n}","id":18,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600436106100355760003560e01c8063c49917d71461003a575b600080fd5b61004d610048366004613f08565b610063565b60405161005a919061464a565b60405180910390f35b6060600061007e83610079856101800151610170565b6103d1565b905060006100b2610092856060015161048c565b61009f866080015161048c565b6100ad876101a00151610644565b61065a565b905060006101006100c6866000015161068c565b6100d3876080015161048c565b6100e08860200151610644565b6100ed8960400151610644565b6100fb8a6101800151610170565b610767565b905060006101156101108761079d565b6109d8565b9050610145848484846040516020016101319493929190614179565b6040516020818303038152906040526109d8565b6040516020016101559190614605565b6040516020818303038152906040529450505050505b919050565b606062ffffff82166101b6575060408051808201909152600281527f3025000000000000000000000000000000000000000000000000000000000000602082015261016b565b816000805b62ffffff8316156102065760ff8116156101d7576001016101f0565b600a62ffffff84160662ffffff166000146101f0576001015b600190910190600a62ffffff84160492506101bb565b61020e613e02565b60006005841061030357600060046102298660ff8716610b5d565b1015610236576001610239565b60005b60ff908116915061024d9085166001610b5d565b610258866005610b5d565b106102845761027f61026e60ff86166001610b5d565b610279876005610b5d565b90610b5d565b610287565b60005b60ff8516608085018190529092506102a6906001906102799085610bba565b60ff90811660a085015260808401516102cd9183916102c791166001610b5d565b90610bba565b60ff90811660408501526102f59082906102c7906102ee9088166001610bba565b8590610bba565b60ff16602084015250610373565b61030e600585610b5d565b60026080840181905290915061032c90600190610279908490610bba565b60ff90811660a084015261034e906103479085166002610bba565b8290610bba565b60ff1660208301819052610363906002610b5d565b60ff166040830152600160c08301525b6103926103838560ff8616610b5d565b62ffffff891690600a0a610c14565b8252600160e0830152600484116103aa5760006103b5565b6103b5846004610b5d565b60ff1660608301526103c682610c7b565b979650505050505050565b6060816103e1846060015161048c565b6103ee856080015161048c565b6104278660e00151156104065786610120015161040d565b8661010001515b8761016001518860c001518960a001518a60e00151610ea7565b6104608760e001511561043f57876101000151610446565b8761012001515b8861016001518960c001518a60a001518b60e00151610ea7565b6040516020016104749594939291906142a0565b60405160208183030381529060405290505b92915050565b6060816000805b82518160ff1610156104f057828160ff16815181106104ae57fe5b6020910101517fff0000000000000000000000000000000000000000000000000000000000000016601160f91b14156104e8576001909101905b600101610493565b5060ff81161561063c5760008160ff1683510167ffffffffffffffff8111801561051957600080fd5b506040519080825280601f01601f191660200182016040528015610544576020820181803683370190505b5090506000805b84518160ff16101561062f57848160ff168151811061056657fe5b6020910101517fff0000000000000000000000000000000000000000000000000000000000000016601160f91b14156105e4577f5c000000000000000000000000000000000000000000000000000000000000008383806001019450815181106105cc57fe5b60200101906001600160f81b031916908160001a9053505b848160ff16815181106105f357fe5b602001015160f81c60f81b83838060010194508151811061061057fe5b60200101906001600160f81b031916908160001a90535060010161054b565b508194505050505061016b565b509192915050565b60606104866001600160a01b0383166014610fd1565b60608383838660405160200161067394939291906144b9565b60405160208183030381529060405290505b9392505050565b6060816106b157506040805180820190915260018152600360fc1b602082015261016b565b8160005b81156106c957600101600a820491506106b5565b60008167ffffffffffffffff811180156106e257600080fd5b506040519080825280601f01601f19166020018201604052801561070d576020820181803683370190505b50859350905060001982015b831561075e57600a840660300160f81b8282806001900393508151811061073c57fe5b60200101906001600160f81b031916908160001a905350600a84049350610719565b50949350505050565b606083858484896040516020016107829594939291906143a1565b60405160208183030381529060405290505b95945050505050565b60606000604051806102a001604052806107ba8560200151610644565b81526020016107cc8560400151610644565b8152602001846101a001516001600160a01b031681526020018460600151815260200184608001518152602001610807856101800151610170565b815260200184610100015160020b815260200184610120015160020b815260200184610160015160020b8152602001610850856101000151866101200151876101400151611159565b60000b81526020018460000151815260200161087a85602001516001600160a01b03166088611190565b815260200161089785604001516001600160a01b03166088611190565b81526020016108b485602001516001600160a01b03166000611190565b81526020016108d185604001516001600160a01b03166000611190565b81526020016109046108f686602001516001600160a01b03166010886000015161119f565b600060ff60106101126111bf565b815260200161093761092986604001516001600160a01b03166010886000015161119f565b600060ff60646101e46111bf565b815260200161095c6108f686602001516001600160a01b03166020886000015161119f565b815260200161098161092986604001516001600160a01b03166020886000015161119f565b81526020016109a66108f686602001516001600160a01b03166030886000015161119f565b81526020016109cb61092986604001516001600160a01b03166030886000015161119f565b9052905061068581611207565b60608151600014156109f9575060408051602081019091526000815261016b565b600060405180606001604052806040815260200161526b60409139905060006003845160020181610a2657fe5b04600402905060008160200167ffffffffffffffff81118015610a4857600080fd5b506040519080825280601f01601f191660200182016040528015610a73576020820181803683370190505b509050818152600183018586518101602084015b81831015610ae15760039283018051603f601282901c811687015160f890811b8552600c83901c8216880151811b6001860152600683901c8216880151811b60028601529116860151901b93820193909352600401610a87565b600389510660018114610afb5760028114610b2757610b4f565b7f3d3d000000000000000000000000000000000000000000000000000000000000600119830152610b4f565b7f3d000000000000000000000000000000000000000000000000000000000000006000198301525b509398975050505050505050565b600082821115610bb4576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b600082820183811015610685576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6000808211610c6a576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b818381610c7357fe5b049392505050565b60606000826020015160ff1667ffffffffffffffff81118015610c9d57600080fd5b506040519080825280601f01601f191660200182016040528015610cc8576020820181803683370190505b5090508260e0015115610d1e577f250000000000000000000000000000000000000000000000000000000000000081600183510381518110610d0657fe5b60200101906001600160f81b031916908160001a9053505b8260c0015115610d7b57600360fc1b81600081518110610d3a57fe5b60200101906001600160f81b031916908160001a905350601760f91b81600181518110610d6357fe5b60200101906001600160f81b031916908160001a9053505b608083015160ff165b60a0840151610d979060ff166001610bba565b811015610dce57603060f81b828281518110610daf57fe5b60200101906001600160f81b031916908160001a905350600101610d84565b505b825115610486576000836060015160ff16118015610dfb5750826060015160ff16836040015160ff16145b15610e3e5760408301805160ff600019820181169092528251601760f91b92849216908110610e2657fe5b60200101906001600160f81b031916908160001a9053505b8251610e5090603090600a9006610bba565b60f81b818460400180518091906001900360ff1660ff1681525060ff1681518110610e7757fe5b60200101906001600160f81b031916908160001a905350600a8360000181815181610e9e57fe5b04905250610dd0565b606084600281900b620d89e71981610ebb57fe5b050260020b8660020b1415610f15578115610ef1576040518060400160405280600381526020016209a82b60eb1b815250610f0e565b6040518060400160405280600381526020016226a4a760e91b8152505b9050610794565b84600281900b620d89e881610f2657fe5b050260020b8660020b1415610f7c578115610f5c576040518060400160405280600381526020016226a4a760e91b815250610f0e565b5060408051808201909152600381526209a82b60eb1b6020820152610794565b6000610f8787611496565b90508215610fbe57610fbb78010000000000000000000000000000000000000000000000006001600160a01b038316610c14565b90505b610fc98186866117e4565b915050610794565b606060008260020260020167ffffffffffffffff81118015610ff257600080fd5b506040519080825280601f01601f19166020018201604052801561101d576020820181803683370190505b509050600360fc1b8160008151811061103257fe5b60200101906001600160f81b031916908160001a9053507f78000000000000000000000000000000000000000000000000000000000000008160018151811061107757fe5b60200101906001600160f81b031916908160001a905350600160028402015b6001811115611105577f303132333435363738396162636465660000000000000000000000000000000085600f16601081106110ce57fe5b1a60f81b8282815181106110de57fe5b60200101906001600160f81b031916908160001a90535060049490941c9360001901611096565b508315610685576040805162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e74604482015290519081900360640190fd5b60008360020b8260020b12156111725750600019610685565b8260020b8260020b131561118857506001610685565b506000610685565b606061068583831c60036119b2565b600060ff826111ae8686611a79565b02816111b657fe5b06949350505050565b60606111fd6111f8846102c76111d5888a610b5d565b6111f26111e2888a610b5d565b6111ec8d8d610b5d565b90611a80565b90610c14565b61068c565b9695505050505050565b606061121282611ad9565b61122e836000015184602001518560600151866080015161218d565b611245846060015185608001518660a001516124b8565b6112638560c001518660e00151876101000151886101200151612608565b61128361127487610140015161068c565b8760c001518860e0015161295b565b6112968761014001518860400151612d8c565b6040516020018087805190602001908083835b602083106112c85780518252601f1990920191602091820191016112a9565b51815160209384036101000a600019018019909216911617905289519190930192890191508083835b602083106113105780518252601f1990920191602091820191016112f1565b51815160209384036101000a600019018019909216911617905288519190930192880191508083835b602083106113585780518252601f199092019160209182019101611339565b51815160209384036101000a600019018019909216911617905287519190930192870191508083835b602083106113a05780518252601f199092019160209182019101611381565b51815160209384036101000a600019018019909216911617905286519190930192860191508083835b602083106113e85780518252601f1990920191602091820191016113c9565b51815160209384036101000a600019018019909216911617905285519190930192850191508083835b602083106114305780518252601f199092019160209182019101611411565b5181516020939093036101000a60001901801990911692169190911790527f3c2f7376673e000000000000000000000000000000000000000000000000000092019182525060408051808303601919018152600690920190529998505050505050505050565b60008060008360020b126114ad578260020b6114b5565b8260020b6000035b9050620d89e881111561150f576040805162461bcd60e51b815260206004820152600160248201527f5400000000000000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b60006001821661152357600160801b611535565b6ffffcb933bd6fad37aa2d162d1a5940015b70ffffffffffffffffffffffffffffffffff1690506002821615611569576ffff97272373d413259a46990580e213a0260801c5b6004821615611588576ffff2e50f5f656932ef12357cf3c7fdcc0260801c5b60088216156115a7576fffe5caca7e10e4e61c3624eaa0941cd00260801c5b60108216156115c6576fffcb9843d60f6159c9db58835c9266440260801c5b60208216156115e5576fff973b41fa98c081472e6896dfb254c00260801c5b6040821615611604576fff2ea16466c96a3843ec78b326b528610260801c5b6080821615611623576ffe5dee046a99a2a811c461f1969c30530260801c5b610100821615611643576ffcbe86c7900a88aedcffc83b479aa3a40260801c5b610200821615611663576ff987a7253ac413176f2b074cf7815e540260801c5b610400821615611683576ff3392b0822b70005940c7a398e4b70f30260801c5b6108008216156116a3576fe7159475a2c29b7443b29c7fa6e889d90260801c5b6110008216156116c3576fd097f3bdfd2022b8845ad8f792aa58250260801c5b6120008216156116e3576fa9f746462d870fdf8a65dc1f90e061e50260801c5b614000821615611703576f70d869a156d2a1b890bb3df62baf32f70260801c5b618000821615611723576f31be135f97d08fd981231505542fcfa60260801c5b62010000821615611744576f09aa508b5b7a84e1c677de54f3e99bc90260801c5b62020000821615611764576e5d6af8dedb81196699c329225ee6040260801c5b62040000821615611783576d2216e584f5fa1ea926041bedfe980260801c5b620800008216156117a0576b048a170391f7dc42444e8fa20260801c5b60008460020b13156117bb5780600019816117b757fe5b0490505b6401000000008106156117cf5760016117d2565b60005b60ff16602082901c0192505050919050565b606060006117f3858585612e04565b9050600061180b828368010000000000000000612f06565b90506c010000000000000000000000008210801561184c576118458272047bf19673df52e37f2410011d100000000000600160801b612f06565b9150611861565b61185e82620186a0600160801b612f06565b91505b8160005b811561187957600101600a82049150611865565b6000190160008061188a8684612fb5565b91509150801561189b576001909201915b6118a3613e02565b8515611910576118c26118ba602b60ff8716610b5d565b600790610bba565b60ff9081166020830152600260808301526118e8906001906102c790602b908816610b5d565b60ff90811660a0830152602082015161190391166001610b5d565b60ff166040820152611987565b60098460ff16106119595761192960ff85166004610b5d565b60ff166020820181905260056080830152611945906001610b5d565b60ff1660a082015260046040820152611987565b6006602082015260056040820181905261197e906001906102c79060ff881690610b5d565b60ff1660608201525b82815285151560c0820152600060e08201526119a281610c7b565b9c9b505050505050505050505050565b606060008260020267ffffffffffffffff811180156119d057600080fd5b506040519080825280601f01601f1916602001820160405280156119fb576020820181803683370190505b5080519091505b8015611a71577f303132333435363738396162636465660000000000000000000000000000000085600f1660108110611a3757fe5b1a60f81b826001830381518110611a4a57fe5b60200101906001600160f81b031916908160001a90535060049490941c9360001901611a02565b509392505050565b1c60ff1690565b600082611a8f57506000610486565b82820282848281611a9c57fe5b04146106855760405162461bcd60e51b815260040180806020018281038252602181526020018061548a6021913960400191505060405180910390fd5b6060611b6e82610160015160405160200180806150446081913960810182805190602001908083835b60208310611b215780518252601f199092019160209182019101611b02565b6001836020036101000a038019825116818451168082178552505050505050905001806813979f1e17b9bb339f60b91b8152506009019150506040516020818303038152906040526109d8565b611cda836101e001518461020001518561018001516040516020018080614b816063913960630184805190602001908083835b60208310611bc05780518252601f199092019160209182019101611ba1565b51815160209384036101000a600019018019909216911617905265272063793d2760d01b919093019081528551600690910192860191508083835b60208310611c1a5780518252601f199092019160209182019101611bfb565b51815160209384036101000a60001901801990921691161790527f2720723d273132307078272066696c6c3d272300000000000000000000000000919093019081528451601390910192850191508083835b60208310611c8b5780518252601f199092019160209182019101611c6c565b6001836020036101000a038019825116818451168082178552505050505050905001806813979f1e17b9bb339f60b91b81525060090193505050506040516020818303038152906040526109d8565b611d2b846102200151856102400151866101a001516040516020018080614b8160639139606301848051906020019080838360208310611bc05780518252601f199092019160209182019101611ba1565b611e4a856102600151866102800151876101c001516040516020018080614b816063913960630184805190602001908083835b60208310611d7d5780518252601f199092019160209182019101611d5e565b51815160209384036101000a600019018019909216911617905265272063793d2760d01b919093019081528551600690910192860191508083835b60208310611dd75780518252601f199092019160209182019101611db8565b51815160001960209485036101000a019081169019919091161790527f2720723d273130307078272066696c6c3d272300000000000000000000000000939091019283528451601390930192908501915080838360208310611c8b5780518252601f199092019160209182019101611c6c565b6101608601516040516020018060566148fc8239605601602c6152ab82397f3c646566733e0000000000000000000000000000000000000000000000000000602c820152603201604b614ff98239604b0186805190602001908083835b60208310611ec65780518252601f199092019160209182019101611ea7565b6001836020036101000a03801982511681845116808217855250505050505090500180615b31603e9139603e0185805190602001908083835b60208310611f1e5780518252601f199092019160209182019101611eff565b6001836020036101000a038019825116818451168082178552505050505050905001806150c5603e9139603e0184805190602001908083835b60208310611f765780518252601f199092019160209182019101611f57565b5181516020939093036101000a60001901801990911692169190911790527f22202f3e00000000000000000000000000000000000000000000000000000000920191825250600401603b6147f48239603b0183805190602001908083835b60208310611ff35780518252601f199092019160209182019101611fd4565b6001836020036101000a03801982511681845116808217855250505050505090500180614c4160999139609901607f6156e28239607f016088615aa982396088016041614cda8239604101605d615c698239605d01607261578e8239607201604961475d823960490160be614f3b823960be016071614a0d8239607101607561562582396075016066614d1b823960660160a46152d7823960a4016085615b6f82397f3c6720636c69702d706174683d2275726c2823636f726e65727329223e00000060858201527f3c726563742066696c6c3d22000000000000000000000000000000000000000060a2820152825160ae9091019060208401908083835b602083106121115780518252601f1990920191602091820191016120f2565b6001836020036101000a03801982511681845116808217855250505050505090500180614d8160319139603101604e6147a68239604e01605d614be48239605d01604161522a8239604101605261510382396052016075615bf48239607501955050505050506040516020818303038152906040529050919050565b60608382858488878a896040516020018080615d4c60259139602501607d614ebe8239607d0189805190602001908083835b602083106121de5780518252601f1990920191602091820191016121bf565b51815160209384036101000a600019018019909216911617905264010714051160dd1b919093019081528a516005909101928b0191508083835b602083106122375780518252601f199092019160209182019101612218565b6001836020036101000a03801982511681845116808217855250505050505090500180614db2607991396079016086615cc6823960860187805190602001908083835b602083106122995780518252601f19909201916020918201910161227a565b51815160209384036101000a600019018019909216911617905264010714051160dd1b919093019081528851600590910192890191508083835b602083106122f25780518252601f1990920191602091820191016122d3565b6001836020036101000a0380198251168184511680821785525050505050509050018061498860859139608501607b6159178239607b0185805190602001908083835b602083106123545780518252601f199092019160209182019101612335565b51815160209384036101000a600019018019909216911617905264010714051160dd1b919093019081528651600590910192870191508083835b602083106123ad5780518252601f19909201916020918201910161238e565b6001836020036101000a03801982511681845116808217855250505050505090500180614ad2605d9139605d0160a3615582823960a30183805190602001908083835b6020831061240f5780518252601f1990920191602091820191016123f0565b51815160209384036101000a600019018019909216911617905264010714051160dd1b919093019081528451600590910192850191508083835b602083106124685780518252601f199092019160209182019101612449565b6001836020036101000a038019825116818451168082178552505050505050905001806146d2608b9139608b01985050505050505050506040516020818303038152906040529050949350505050565b6060838383604051602001808061482f60cd913960cd0184805190602001908083835b602083106124fa5780518252601f1990920191602091820191016124db565b6001836020036101000a03801982511681845116808217855250505050505090500180602f60f81b81525060010183805190602001908083835b602083106125535780518252601f199092019160209182019101612534565b6001836020036101000a03801982511681845116808217855250505050505090500180615ef56077913960770182805190602001908083835b602083106125ab5780518252601f19909201916020918201910161258c565b5181516020939093036101000a60001901801990911692169190911790526a1e17ba32bc3a1f1e17b39f60a91b920191825250600b016073615d958239607301935050505060405160208183030381529060405290509392505050565b606060008260000b60011461269a578260000b6000191461265e576040518060400160405280600581526020017f236e6f6e65000000000000000000000000000000000000000000000000000000815250612695565b6040518060400160405280600a81526020017f23666164652d646f776e000000000000000000000000000000000000000000008152505b6126d1565b6040518060400160405280600881526020017f23666164652d75700000000000000000000000000000000000000000000000008152505b905060006126e0878787613026565b9050818183836126ef88613274565b60405160200180807f3c67206d61736b3d2275726c2800000000000000000000000000000000000000815250600d0186805190602001908083835b602083106127495780518252601f19909201916020918201910161272a565b5181516020939093036101000a600019018019909116921691909117905261149160f11b920191825250600201607761537b823960770185805190602001908083835b602083106127ab5780518252601f19909201916020918201910161278c565b6001836020036101000a03801982511681845116808217855250505050505090500180614a7e60549139605401807f3c2f673e3c67206d61736b3d2275726c2800000000000000000000000000000081525060110184805190602001908083835b6020831061282b5780518252601f19909201916020918201910161280c565b5181516020939093036101000a600019018019909116921691909117905261149160f11b92019182525060020160296153f2823960290160456154458239604501807f3c7061746820643d22000000000000000000000000000000000000000000000081525060090183805190602001908083835b602083106128bf5780518252601f1990920191602091820191016128a0565b6001836020036101000a0380198251168184511680821785525050505050509050018061569a6048913960480182805190602001908083835b602083106129175780518252601f1990920191602091820191016128f8565b6001836020036101000a0380198251168184511680821785525050505050509050019550505050505060405160208183030381529060405292505050949350505050565b6060600061296884613748565b9050600061297584613748565b865183518251929350600490910191600a91820191016000806129988a8a613852565b915091506129ab8560040160070261068c565b8b6129bb8660040160070261068c565b896129cb8760040160070261068c565b8a87876040516020018080615761602d9139602d01806c1e3932b1ba103bb4b23a341e9160991b815250600d0189805190602001908083835b60208310612a235780518252601f199092019160209182019101612a04565b6001836020036101000a03801982511681845116808217855250505050505090500180615155603d9139603d01608d615e088239608d0188805190602001908083835b60208310612a855780518252601f199092019160209182019101612a66565b5181516020939093036101000a60001901801990911692169190911790526a1e17ba32bc3a1f1e17b39f60a91b920191825250600b01602d615fa48239602d01806c1e3932b1ba103bb4b23a341e9160991b815250600d0187805190602001908083835b60208310612b085780518252601f199092019160209182019101612ae9565b6001836020036101000a03801982511681845116808217855250505050505090500180615155603d9139603d016093614e2b823960930186805190602001908083835b60208310612b6a5780518252601f199092019160209182019101612b4b565b5181516020939093036101000a60001901801990911692169190911790526a1e17ba32bc3a1f1e17b39f60a91b920191825250600b01602d614b2f8239602d01806c1e3932b1ba103bb4b23a341e9160991b815250600d0185805190602001908083835b60208310612bed5780518252601f199092019160209182019101612bce565b6001836020036101000a03801982511681845116808217855250505050505090500180615155603d9139603d016093615992823960930184805190602001908083835b60208310612c4f5780518252601f199092019160209182019101612c30565b6001836020036101000a03801982511681845116808217855250505050505090500180615f6c603891396038016060615e958239606001606461551e82396064016025614b5c823960250183805190602001908083835b60208310612cc55780518252601f199092019160209182019101612ca6565b51815160209384036101000a60001901801990921691161790527f70782c2000000000000000000000000000000000000000000000000000000000919093019081528451600490910192850191508083835b60208310612d365780518252601f199092019160209182019101612d17565b6001836020036101000a0380198251168184511680821785525050505050509050018061495260369139603601985050505050505050506040516020818303038152906040529750505050505050509392505050565b6060612d988383613c83565b15612dee5760405160200180608d61588a8239608d0160736154ab823960730160716151b98239607101608a6158008239608a016084615a25823960840190506040516020818303038152906040529050610486565b5060408051602081019091526000815292915050565b600080612e1f612e1a60ff868116908616613ce6565b613d4b565b9050600081118015612e32575060128111155b15612ef3578260ff168460ff161115612e9c57612e66612e53826002610c14565b6001600160a01b03871690600a0a611a80565b91506002810660011415612e9757612e94827003298b075b4b6a5240945790619b37fd4a600160801b612f06565b91505b612eee565b612ebd612eaa826002610c14565b6001600160a01b03871690600a0a610c14565b91506002810660011415612eee57612eeb82600160801b7003298b075b4b6a5240945790619b37fd4a612f06565b91505b611a71565b50506001600160a01b0390921692915050565b6000808060001985870986860292508281109083900303905080612f3c5760008411612f3157600080fd5b508290049050610685565b808411612f4857600080fd5b6000848688096000868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010186841190950394909402919094039290920491909117919091029150509392505050565b600080600060058460ff161115612fdd57612fda8560ff600419870116600a0a610c14565b94505b60006004600a8706119050612ff386600a610c14565b95508015613002578560010195505b85620186a0141561301857600a86049550600191505b5084925090505b9250929050565b606060008260020b85850360020b8161303b57fe5b05905060048160020b13613086576040518060400160405280601a81526020017f4d312031433431203431203130352031303520313435203134350000000000008152509150611a71565b60088160020b136130ce576040518060400160405280601981526020017f4d312031433333203439203937203131332031343520313435000000000000008152509150611a71565b60108160020b13613116576040518060400160405280601981526020017f4d312031433333203537203839203131332031343520313435000000000000008152509150611a71565b60208160020b1361315e576040518060400160405280601981526020017f4d312031433235203635203831203132312031343520313435000000000000008152509150611a71565b60408160020b136131a6576040518060400160405280601981526020017f4d312031433137203733203733203132392031343520313435000000000000008152509150611a71565b60808160020b136131ee576040518060400160405280601881526020017f4d312031433920383120363520313337203134352031343500000000000000008152509150611a71565b6101008160020b13613237576040518060400160405280601a81526020017f4d31203143312038392035372e352031343520313435203134350000000000008152509150611a71565b505060408051808201909152601881527f4d3120314331203937203439203134352031343520313435000000000000000060208201529392505050565b604080518082018252600281527f37330000000000000000000000000000000000000000000000000000000000006020808301919091528251808401845260038082527f313930000000000000000000000000000000000000000000000000000000000082840152845180860186528181527f32313700000000000000000000000000000000000000000000000000000000008185015285518087019096529085527f3333340000000000000000000000000000000000000000000000000000000000928501929092526060939091906001600087900b148061335b57508560000b600019145b15613552578560000b600019146133725781613374565b835b8660000b600019146133865781613388565b835b8760000b6000191461339a578361339c565b855b8860000b600019146133ae57836133b0565b855b60405160200180806b1e31b4b931b6329031bc1e9160a11b815250600c0185805190602001908083835b602083106133f95780518252601f1990920191602091820191016133da565b51815160209384036101000a600019018019909216911617905267383c111031bc9e9160c11b919093019081528651600890910192870191508083835b602083106134555780518252601f199092019160209182019101613436565b6001836020036101000a038019825116818451168082178552505050505050905001806151926027913960270183805190602001908083835b602083106134ad5780518252601f19909201916020918201910161348e565b51815160209384036101000a600019018019909216911617905267383c111031bc9e9160c11b919093019081528451600890910192850191508083835b602083106135095780518252601f1990920191602091820191016134ea565b6001836020036101000a0380198251168184511680821785525050505050509050018061541b602a9139602a01945050505050604051602081830303815290604052945061373f565b8383838360405160200180806b1e31b4b931b6329031bc1e9160a11b815250600c0185805190602001908083835b6020831061359f5780518252601f199092019160209182019101613580565b51815160209384036101000a600019018019909216911617905267383c111031bc9e9160c11b919093019081528651600890910192870191508083835b602083106135fb5780518252601f1990920191602091820191016135dc565b51815160209384036101000a60001901801990921691161790527f70782220723d22347078222066696c6c3d22776869746522202f3e0000000000919093019081526b1e31b4b931b6329031bc1e9160a11b601b8201528551602790910192860191508083835b602083106136815780518252601f199092019160209182019101613662565b51815160209384036101000a600019018019909216911617905267383c111031bc9e9160c11b919093019081528451600890910192850191508083835b602083106136dd5780518252601f1990920191602091820191016136be565b6001836020036101000a038019825116818451168082178552505050505050905001807f70782220723d22347078222066696c6c3d22776869746522202f3e0000000000815250601b0194505050505060405160208183030381529060405294505b50505050919050565b6060600060405180602001604052806000815250905060008360020b121561378e5782600019029250604051806040016040528060018152602001602d60f81b81525090505b8061379b8460020b61068c565b6040516020018083805190602001908083835b602083106137cd5780518252601f1990920191602091820191016137ae565b51815160209384036101000a600019018019909216911617905285519190930192850191508083835b602083106138155780518252601f1990920191602091820191016137f6565b6001836020036101000a03801982511681845116808217855250505050505090500192505050604051602081830303815290604052915050919050565b60608060006002858501810b0590506201e847198160020b12156138ca57604051806040016040528060018152602001600760fb1b8152506040518060400160405280600181526020017f3700000000000000000000000000000000000000000000000000000000000000815250925092505061301f565b620124f7198160020b121561393357604051806040016040528060018152602001600760fb1b8152506040518060400160405280600481526020017f31302e3500000000000000000000000000000000000000000000000000000000815250925092505061301f565b6161a7198160020b121561399b57604051806040016040528060018152602001600760fb1b8152506040518060400160405280600581526020017f31342e3235000000000000000000000000000000000000000000000000000000815250925092505061301f565b611387198160020b1215613a04576040518060400160405280600281526020017f313000000000000000000000000000000000000000000000000000000000000081525060405180604001604052806002815260200161062760f31b815250925092505061301f565b60008160020b1215613a6b576040518060400160405280600281526020017f313100000000000000000000000000000000000000000000000000000000000081525060405180604001604052806002815260200161323160f01b815250925092505061301f565b6113888160020b1215613aee576040518060400160405280600281526020017f31330000000000000000000000000000000000000000000000000000000000008152506040518060400160405280600281526020017f3233000000000000000000000000000000000000000000000000000000000000815250925092505061301f565b6161a88160020b1215613b71576040518060400160405280600281526020017f31350000000000000000000000000000000000000000000000000000000000008152506040518060400160405280600281526020017f3235000000000000000000000000000000000000000000000000000000000000815250925092505061301f565b620124f88160020b1215613bda5760405180604001604052806002815260200161062760f31b8152506040518060400160405280600281526020017f3236000000000000000000000000000000000000000000000000000000000000815250925092505061301f565b6201e8488160020b1215613c285760405180604001604052806002815260200161323160f01b81525060405180604001604052806002815260200161323760f01b815250925092505061301f565b6040518060400160405280600281526020017f323400000000000000000000000000000000000000000000000000000000000081525060405180604001604052806002815260200161323760f01b815250925092505061301f565b6040805160208082018590526bffffffffffffffffffffffff19606085901b16828401528251603481840301815260549092019092528051910120600090613cca84613d62565b60020260010160ff1660001981613cdd57fe5b04119392505050565b6000818303818312801590613cfb5750838113155b80613d105750600083128015613d1057508381135b6106855760405162461bcd60e51b8152600401808060200182810382526024815260200180615d716024913960400191505060405180910390fd5b600080821215613d5e5781600003610486565b5090565b6000808211613d7057600080fd5b600160801b8210613d8357608091821c91015b680100000000000000008210613d9b57604091821c91015b6401000000008210613daf57602091821c91015b620100008210613dc157601091821c91015b6101008210613dd257600891821c91015b60108210613de257600491821c91015b60048210613df257600291821c91015b6002821061016b57600101919050565b6040805161010081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e081019190915290565b80356001600160a01b038116811461016b57600080fd5b8035801515811461016b57600080fd5b8035600281900b811461016b57600080fd5b600082601f830112613e8f578081fd5b813567ffffffffffffffff811115613ea357fe5b613eb6601f8201601f191660200161467d565b818152846020838601011115613eca578283fd5b816020850160208301379081016020019190915292915050565b803562ffffff8116811461016b57600080fd5b803560ff8116811461016b57600080fd5b600060208284031215613f19578081fd5b813567ffffffffffffffff80821115613f30578283fd5b81840191506101c0808387031215613f46578384fd5b613f4f8161467d565b905082358152613f6160208401613e46565b6020820152613f7260408401613e46565b6040820152606083013582811115613f88578485fd5b613f9487828601613e7f565b606083015250608083013582811115613fab578485fd5b613fb787828601613e7f565b608083015250613fc960a08401613ef7565b60a0820152613fda60c08401613ef7565b60c0820152613feb60e08401613e5d565b60e08201526101009150614000828401613e6d565b828201526101209150614014828401613e6d565b828201526101409150614028828401613e6d565b82820152610160915061403c828401613e6d565b828201526101809150614050828401613ee4565b828201526101a09150614064828401613e46565b91810191909152949350505050565b600081516140858185602086016146a1565b9290920192915050565b7fe29aa0efb88f20444953434c41494d45523a204475652064696c6967656e636581527f20697320696d7065726174697665207768656e20617373657373696e6720746860208201527f6973204e46542e204d616b65207375726520746f6b656e20616464726573736560408201527f73206d617463682074686520657870656374656420746f6b656e732c2061732060608201527f746f6b656e2073796d626f6c73206d617920626520696d6974617465642e00006080820152609e0190565b7f5c6e5c6e00000000000000000000000000000000000000000000000000000000815260040190565b60007f7b226e616d65223a220000000000000000000000000000000000000000000000825285516141b1816009850160208a016146a1565b7f222c20226465736372697074696f6e223a22000000000000000000000000000060099184019182015285516141ee81601b840160208a016146a1565b855191019061420481601b8401602089016146a1565b7f222c2022696d616765223a202200000000000000000000000000000000000000601b92909101918201527f646174613a696d6167652f7376672b786d6c3b6261736536342c000000000000602882015283516142688160428401602088016146a1565b7f227d000000000000000000000000000000000000000000000000000000000000604292909101918201526044019695505050505050565b60007f4173747261202d20000000000000000000000000000000000000000000000000825286516142d8816008850160208b016146a1565b80830190507f202d200000000000000000000000000000000000000000000000000000000000806008830152875161431781600b850160208c016146a1565b602f60f81b600b9390910192830152865161433981600c850160208b016146a1565b600c920191820152845161435481600f8401602089016146a1565b7f3c3e000000000000000000000000000000000000000000000000000000000000600f929091019182015283516143928160118401602088016146a1565b01601101979650505050505050565b60007f20416464726573733a200000000000000000000000000000000000000000000080835287516143da81600a860160208c016146a1565b612e3760f11b600a9185019182015287516143fc81600c840160208c016146a1565b01600c810191909152855190614419826016830160208a016146a1565b8181019150507f5c6e46656520546965723a200000000000000000000000000000000000000000601682015284516144588160228401602089016146a1565b7f5c6e546f6b656e2049443a20000000000000000000000000000000000000000060229290910191820152835161449681602e8401602088016146a1565b6144ac6144a7602e83850101614150565b61408f565b9998505050505050505050565b60007f54686973204e465420726570726573656e74732061206c69717569646974792082527f706f736974696f6e20696e206120417374726144455820434c200000000000006020830152855161451781603a850160208a016146a1565b602d60f81b603a91840191820152855161453881603b840160208a016146a1565b7f20706f6f6c2e2000000000000000000000000000000000000000000000000000603b92909101918201527f546865206f776e6572206f662074686973204e46542063616e206d6f6469667960428201527f206f722072656465656d2074686520706f736974696f6e2e5c6e00000000000060628201527f5c6e506f6f6c20416464726573733a2000000000000000000000000000000000607c82015284516145e881608c8401602089016146a1565b612e3760f11b608c92909101918201526103c6608e820185614073565b60007f646174613a6170706c69636174696f6e2f6a736f6e3b6261736536342c0000008252825161463d81601d8501602087016146a1565b91909101601d0192915050565b60006020825282518060208401526146698160408501602087016146a1565b601f01601f19169190910160400192915050565b60405181810167ffffffffffffffff8111828210171561469957fe5b604052919050565b60005b838110156146bc5781810151838201526020016146a4565b838111156146cb576000848401525b5050505056fe203c616e696d6174652061646469746976653d2273756d22206174747269627574654e616d653d2273746172744f6666736574222066726f6d3d2230252220746f3d22313030252220626567696e3d22307322206475723d223330732220726570656174436f756e743d22696e646566696e69746522202f3e3c2f74657874506174683e3c2f746578743e3c73746f70206f66667365743d222e39222073746f702d636f6c6f723d227768697465222073746f702d6f7061636974793d223022202f3e3c2f6c696e6561724772616469656e743e3c72656374207374796c653d2266696c7465723a2075726c28236631292220783d223070782220793d22307078222077696474683d22323930707822206865696768743d22353030707822202f3e3c6665496d61676520726573756c743d2270332220786c696e6b3a687265663d22646174613a696d6167652f7376672b786d6c3b6261736536342c3c67206d61736b3d2275726c2823666164652d73796d626f6c29223e3c726563742066696c6c3d226e6f6e652220783d223070782220793d22307078222077696474683d22323930707822206865696768743d22323030707822202f3e203c7465787420793d22373070782220783d2233327078222066696c6c3d2277686974652220666f6e742d66616d696c793d2227436f7572696572204e6577272c206d6f6e6f73706163652220666f6e742d7765696768743d223230302220666f6e742d73697a653d2233367078223e3c7376672077696474683d2232393022206865696768743d22353030222076696577426f783d2230203020323930203530302220786d6c6e733d22687474703a2f2f7777772e77332e6f72672f323030302f7376672270782c2030707829222063783d22307078222063793d223070782220723d22347078222066696c6c3d227768697465222f3e3c2f673e203c616e696d6174652061646469746976653d2273756d22206174747269627574654e616d653d2273746172744f6666736574222066726f6d3d2230252220746f3d22313030252220626567696e3d22307322206475723d223330732220726570656174436f756e743d22696e646566696e69746522202f3e203c2f74657874506174683e3c6d61736b2069643d22666164652d757022206d61736b436f6e74656e74556e6974733d226f626a656374426f756e64696e67426f78223e3c726563742077696474683d223122206865696768743d2231222066696c6c3d2275726c2823677261642d75702922202f3e3c2f6d61736b3e22207374726f6b653d227267626128302c302c302c302e332922207374726f6b652d77696474683d2233327078222066696c6c3d226e6f6e6522207374726f6b652d6c696e656361703d22726f756e6422202f3e203c616e696d6174652061646469746976653d2273756d22206174747269627574654e616d653d2273746172744f6666736574222066726f6d3d2230252220746f3d22313030252220626567696e3d22307322206475723d2233307322203c67207374796c653d227472616e73666f726d3a7472616e736c61746528323970782c20343434707829223e3c636972636c65207374796c653d227472616e73666f726d3a7472616e736c6174653364283c7376672077696474683d2732393027206865696768743d27353030272076696577426f783d2730203020323930203530302720786d6c6e733d27687474703a2f2f7777772e77332e6f72672f323030302f737667273e3c636972636c652063783d27203c67207374796c653d2266696c7465723a75726c2823746f702d726567696f6e2d626c7572293b207472616e73666f726d3a7363616c6528312e35293b207472616e73666f726d2d6f726967696e3a63656e74657220746f703b223e22202f3e3c6665426c656e64206d6f64653d226f7665726c61792220696e3d2270302220696e323d22703122202f3e3c6665426c656e64206d6f64653d226578636c7573696f6e2220696e323d22703222202f3e3c6665426c656e64206d6f64653d226f7665726c61792220696e323d2270332220726573756c743d22626c656e644f757422202f3e3c6665476175737369616e426c7572203c706174682069643d226d696e696d61702220643d224d3233342034343443323334203435372e393439203234322e323120343633203235332034363322202f3e3c6d61736b2069643d226e6f6e6522206d61736b436f6e74656e74556e6974733d226f626a656374426f756e64696e67426f78223e3c726563742077696474683d223122206865696768743d2231222066696c6c3d22776869746522202f3e3c2f6d61736b3e2220783d223070782220793d22307078222077696474683d22323930707822206865696768743d22353030707822202f3e203c616e696d6174652061646469746976653d2273756d22206174747269627574654e616d653d2273746172744f6666736574222066726f6d3d2230252220746f3d22313030252220626567696e3d22307322206475723d223330732220726570656174436f756e743d22696e646566696e69746522202f3e3c7465787420783d22313270782220793d22313770782220666f6e742d66616d696c793d2227436f7572696572204e6577272c206d6f6e6f73706163652220666f6e742d73697a653d2231327078222066696c6c3d227768697465223e3c747370616e2066696c6c3d2272676261283235352c3235352c3235352c302e3629223e4d696e205469636b3a203c2f747370616e3e3c74657874506174682073746172744f66667365743d222d31303025222066696c6c3d2277686974652220666f6e742d66616d696c793d2227436f7572696572204e6577272c206d6f6e6f73706163652220666f6e742d73697a653d22313070782220786c696e6b3a687265663d2223746578742d706174682d61223e3c6c696e6561724772616469656e742069643d22677261642d646f776e222078313d2230222078323d2231222079313d2230222079323d2231223e3c73746f70206f66667365743d22302e30222073746f702d636f6c6f723d227768697465222073746f702d6f7061636974793d223122202f3e3c73746f70206f66667365743d22302e39222073746f702d636f6c6f723d227768697465222073746f702d6f7061636974793d223022202f3e3c2f6c696e6561724772616469656e743e3c66696c7465722069643d226631223e3c6665496d61676520726573756c743d2270302220786c696e6b3a687265663d22646174613a696d6167652f7376672b786d6c3b6261736536342c3c7376672077696474683d2732393027206865696768743d27353030272076696577426f783d2730203020323930203530302720786d6c6e733d27687474703a2f2f7777772e77332e6f72672f323030302f737667273e3c726563742077696474683d27323930707827206865696768743d273530307078272066696c6c3d2723222f3e3c6665496d61676520726573756c743d2270322220786c696e6b3a687265663d22646174613a696d6167652f7376672b786d6c3b6261736536342c3c656c6c697073652063783d22353025222063793d22307078222072783d223138307078222072793d223132307078222066696c6c3d222330303022206f7061636974793d22302e383522202f3e3c2f673e707822206865696768743d2232367078222072783d22387078222072793d22387078222066696c6c3d227267626128302c302c302c302e362922202f3e70782220723d22347078222066696c6c3d22776869746522202f3e3c636972636c652063783d2231312e333437384c32342031324c31342e343334312031322e363532324c32322e333932332031384c31332e373831392031332e373831394c31382032322e333932334c31322e363532322031342e343334314c31322032344c31312e333437382031342e343334314c362032322e33393c726563742066696c6c3d226e6f6e652220783d223070782220793d22307078222077696474683d22323930707822206865696768743d22353030707822202f3e4142434445464748494a4b4c4d4e4f505152535455565758595a6162636465666768696a6b6c6d6e6f707172737475767778797a303132333435363738392b2f20786d6c6e733a786c696e6b3d27687474703a2f2f7777772e77332e6f72672f313939392f786c696e6b273e3c6c696e6561724772616469656e742069643d22677261642d73796d626f6c223e3c73746f70206f66667365743d22302e37222073746f702d636f6c6f723d227768697465222073746f702d6f7061636974793d223122202f3e3c73746f70206f66667365743d222e3935222073746f702d636f6c6f723d227768697465222073746f702d6f7061636974793d223022202f3e3c2f6c696e6561724772616469656e743e207374796c653d227472616e73666f726d3a7472616e736c61746528373270782c313839707829223e3c7265637420783d222d313670782220793d222d31367078222077696474683d22313830707822206865696768743d223138307078222066696c6c3d226e6f6e6522202f3e3c7061746820643d22207374796c653d227472616e73666f726d3a7472616e736c61746528373270782c313839707829223e70782220723d2232347078222066696c6c3d226e6f6e6522207374726f6b653d22776869746522202f3e3c7265637420783d222d313670782220793d222d31367078222077696474683d22313830707822206865696768743d223138307078222066696c6c3d226e6f6e6522202f3e536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f773c673e3c70617468207374796c653d227472616e73666f726d3a7472616e736c617465283670782c367078292220643d224d313220304c31322e3635323220392e35363538374c313820312e363037374c31332e373831392031302e323138314c32322e3339323320364c31342e34333431203c70617468207374726f6b652d6c696e656361703d22726f756e642220643d224d38203943382e30303030342032322e393439342031362e32303939203238203237203238222066696c6c3d226e6f6e6522207374726f6b653d22776869746522202f3e20726570656174436f756e743d22696e646566696e69746522202f3e3c2f74657874506174683e3c74657874506174682073746172744f66667365743d222d353025222066696c6c3d2277686974652220666f6e742d66616d696c793d2227436f7572696572204e6577272c206d6f6e6f73706163652220666f6e742d73697a653d22313070782220786c696e6b3a687265663d2223746578742d706174682d61223e3c6d61736b2069643d22666164652d646f776e22206d61736b436f6e74656e74556e6974733d226f626a656374426f756e64696e67426f78223e3c726563742077696474683d223122206865696768743d2231222066696c6c3d2275726c2823677261642d646f776e2922202f3e3c2f6d61736b3e22207374726f6b653d2272676261283235352c3235352c3235352c3129222066696c6c3d226e6f6e6522207374726f6b652d6c696e656361703d22726f756e6422202f3e3c2f673e696e3d22626c656e644f75742220737464446576696174696f6e3d22343222202f3e3c2f66696c7465723e203c636c6970506174682069643d22636f726e657273223e3c726563742077696474683d2232393022206865696768743d22353030222072783d223432222072793d22343222202f3e3c2f636c6970506174683e203c67207374796c653d227472616e73666f726d3a7472616e736c61746528323970782c20333834707829223e3c6c696e6561724772616469656e742069643d22677261642d7570222078313d2231222078323d2230222079313d2231222079323d2230223e3c73746f70206f66667365743d22302e30222073746f702d636f6c6f723d227768697465222073746f702d6f7061636974793d223122202f3e32334c31302e323138312031332e373831394c312e363037372031384c392e35363538372031322e363532324c302031324c392e35363538372031312e333437384c312e3630373720364c31302e323138312031302e323138314c3620312e363037374c31312e3334373820392e35363538374c313220305a222066696c6c3d22776869746522202f3e3c67207374796c653d227472616e73666f726d3a7472616e736c6174652832323670782c20333932707829223e3c726563742077696474683d223336707822206865696768743d2233367078222072783d22387078222072793d22387078222066696c6c3d226e6f6e6522207374726f6b653d2272676261283235352c3235352c3235352c302e322922202f3e3c74657874506174682073746172744f66667365743d22353025222066696c6c3d2277686974652220666f6e742d66616d696c793d2227436f7572696572204e6577272c206d6f6e6f73706163652220666f6e742d73697a653d22313070782220786c696e6b3a687265663d2223746578742d706174682d61223e3c7465787420783d22313270782220793d22313770782220666f6e742d66616d696c793d2227436f7572696572204e6577272c206d6f6e6f73706163652220666f6e742d73697a653d2231327078222066696c6c3d227768697465223e3c747370616e2066696c6c3d2272676261283235352c3235352c3235352c302e3629223e4d6178205469636b3a203c2f747370616e3e3c616e696d6174655472616e73666f726d206174747269627574654e616d653d227472616e73666f726d2220747970653d22726f74617465222066726f6d3d22302031382031382220746f3d2233363020313820313822206475723d223130732220726570656174436f756e743d22696e646566696e697465222f3e3c2f673e3c2f673e3c706174682069643d22746578742d706174682d612220643d224d34302031322048323530204132382032382030203020312032373820343020563436302041323820323820302030203120323530203438382048343020413238203238203020302031203132203436302056343020413238203238203020302031203430203132207a22202f3e222f3e3c6665496d61676520726573756c743d2270312220786c696e6b3a687265663d22646174613a696d6167652f7376672b786d6c3b6261736536342c3c6d61736b2069643d22666164652d73796d626f6c22206d61736b436f6e74656e74556e6974733d227573657253706163654f6e557365223e3c726563742077696474683d22323930707822206865696768743d223230307078222066696c6c3d2275726c2823677261642d73796d626f6c2922202f3e3c2f6d61736b3e3c2f646566733e3c7265637420783d22302220793d2230222077696474683d2232393022206865696768743d22353030222072783d223432222072793d223432222066696c6c3d227267626128302c302c302c302922207374726f6b653d2272676261283235352c3235352c3235352c302e322922202f3e3c2f673e3c66696c7465722069643d22746f702d726567696f6e2d626c7572223e3c6665476175737369616e426c757220696e3d22536f75726365477261706869632220737464446576696174696f6e3d22323422202f3e3c2f66696c7465723e3c2f74657874506174683e203c74657874506174682073746172744f66667365743d223025222066696c6c3d2277686974652220666f6e742d66616d696c793d2227436f7572696572204e6577272c206d6f6e6f73706163652220666f6e742d73697a653d22313070782220786c696e6b3a687265663d2223746578742d706174682d61223e3c7465787420746578742d72656e646572696e673d226f7074696d697a655370656564223e5369676e6564536166654d6174683a207375627472616374696f6e206f766572666c6f773c7265637420783d2231362220793d223136222077696474683d2232353822206865696768743d22343638222072783d223236222072793d223236222066696c6c3d227267626128302c302c302c302922207374726f6b653d2272676261283235352c3235352c3235352c302e322922202f3e3c7465787420783d22313270782220793d22313770782220666f6e742d66616d696c793d2227436f7572696572204e6577272c206d6f6e6f73706163652220666f6e742d73697a653d2231327078222066696c6c3d227768697465223e3c747370616e2066696c6c3d2272676261283235352c3235352c3235352c302e3629223e49443a203c2f747370616e3e3c726563742077696474683d223336707822206865696768743d2233367078222072783d22387078222072793d22387078222066696c6c3d226e6f6e6522207374726f6b653d2272676261283235352c3235352c3235352c302e322922202f3e3c2f746578743e3c7465787420793d2231313570782220783d2233327078222066696c6c3d2277686974652220666f6e742d66616d696c793d2227436f7572696572204e6577272c206d6f6e6f73706163652220666f6e742d7765696768743d223230302220666f6e742d73697a653d2233367078223e3c2f746578743e3c2f673e3c67207374796c653d227472616e73666f726d3a7472616e736c6174652832323670782c20343333707829223e203c67207374796c653d227472616e73666f726d3a7472616e736c61746528323970782c20343134707829223ea164736f6c6343000706000a","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x35 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xC49917D7 EQ PUSH2 0x3A JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4D PUSH2 0x48 CALLDATASIZE PUSH1 0x4 PUSH2 0x3F08 JUMP JUMPDEST PUSH2 0x63 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x5A SWAP2 SWAP1 PUSH2 0x464A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH2 0x7E DUP4 PUSH2 0x79 DUP6 PUSH2 0x180 ADD MLOAD PUSH2 0x170 JUMP JUMPDEST PUSH2 0x3D1 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0xB2 PUSH2 0x92 DUP6 PUSH1 0x60 ADD MLOAD PUSH2 0x48C JUMP JUMPDEST PUSH2 0x9F DUP7 PUSH1 0x80 ADD MLOAD PUSH2 0x48C JUMP JUMPDEST PUSH2 0xAD DUP8 PUSH2 0x1A0 ADD MLOAD PUSH2 0x644 JUMP JUMPDEST PUSH2 0x65A JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x100 PUSH2 0xC6 DUP7 PUSH1 0x0 ADD MLOAD PUSH2 0x68C JUMP JUMPDEST PUSH2 0xD3 DUP8 PUSH1 0x80 ADD MLOAD PUSH2 0x48C JUMP JUMPDEST PUSH2 0xE0 DUP9 PUSH1 0x20 ADD MLOAD PUSH2 0x644 JUMP JUMPDEST PUSH2 0xED DUP10 PUSH1 0x40 ADD MLOAD PUSH2 0x644 JUMP JUMPDEST PUSH2 0xFB DUP11 PUSH2 0x180 ADD MLOAD PUSH2 0x170 JUMP JUMPDEST PUSH2 0x767 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x115 PUSH2 0x110 DUP8 PUSH2 0x79D JUMP JUMPDEST PUSH2 0x9D8 JUMP JUMPDEST SWAP1 POP PUSH2 0x145 DUP5 DUP5 DUP5 DUP5 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x131 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x4179 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH2 0x9D8 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x155 SWAP2 SWAP1 PUSH2 0x4605 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP5 POP POP POP POP POP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH3 0xFFFFFF DUP3 AND PUSH2 0x1B6 JUMPI POP PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x2 DUP2 MSTORE PUSH32 0x3025000000000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH2 0x16B JUMP JUMPDEST DUP2 PUSH1 0x0 DUP1 JUMPDEST PUSH3 0xFFFFFF DUP4 AND ISZERO PUSH2 0x206 JUMPI PUSH1 0xFF DUP2 AND ISZERO PUSH2 0x1D7 JUMPI PUSH1 0x1 ADD PUSH2 0x1F0 JUMP JUMPDEST PUSH1 0xA PUSH3 0xFFFFFF DUP5 AND MOD PUSH3 0xFFFFFF AND PUSH1 0x0 EQ PUSH2 0x1F0 JUMPI PUSH1 0x1 ADD JUMPDEST PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 PUSH1 0xA PUSH3 0xFFFFFF DUP5 AND DIV SWAP3 POP PUSH2 0x1BB JUMP JUMPDEST PUSH2 0x20E PUSH2 0x3E02 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x5 DUP5 LT PUSH2 0x303 JUMPI PUSH1 0x0 PUSH1 0x4 PUSH2 0x229 DUP7 PUSH1 0xFF DUP8 AND PUSH2 0xB5D JUMP JUMPDEST LT ISZERO PUSH2 0x236 JUMPI PUSH1 0x1 PUSH2 0x239 JUMP JUMPDEST PUSH1 0x0 JUMPDEST PUSH1 0xFF SWAP1 DUP2 AND SWAP2 POP PUSH2 0x24D SWAP1 DUP6 AND PUSH1 0x1 PUSH2 0xB5D JUMP JUMPDEST PUSH2 0x258 DUP7 PUSH1 0x5 PUSH2 0xB5D JUMP JUMPDEST LT PUSH2 0x284 JUMPI PUSH2 0x27F PUSH2 0x26E PUSH1 0xFF DUP7 AND PUSH1 0x1 PUSH2 0xB5D JUMP JUMPDEST PUSH2 0x279 DUP8 PUSH1 0x5 PUSH2 0xB5D JUMP JUMPDEST SWAP1 PUSH2 0xB5D JUMP JUMPDEST PUSH2 0x287 JUMP JUMPDEST PUSH1 0x0 JUMPDEST PUSH1 0xFF DUP6 AND PUSH1 0x80 DUP6 ADD DUP2 SWAP1 MSTORE SWAP1 SWAP3 POP PUSH2 0x2A6 SWAP1 PUSH1 0x1 SWAP1 PUSH2 0x279 SWAP1 DUP6 PUSH2 0xBBA JUMP JUMPDEST PUSH1 0xFF SWAP1 DUP2 AND PUSH1 0xA0 DUP6 ADD MSTORE PUSH1 0x80 DUP5 ADD MLOAD PUSH2 0x2CD SWAP2 DUP4 SWAP2 PUSH2 0x2C7 SWAP2 AND PUSH1 0x1 PUSH2 0xB5D JUMP JUMPDEST SWAP1 PUSH2 0xBBA JUMP JUMPDEST PUSH1 0xFF SWAP1 DUP2 AND PUSH1 0x40 DUP6 ADD MSTORE PUSH2 0x2F5 SWAP1 DUP3 SWAP1 PUSH2 0x2C7 SWAP1 PUSH2 0x2EE SWAP1 DUP9 AND PUSH1 0x1 PUSH2 0xBBA JUMP JUMPDEST DUP6 SWAP1 PUSH2 0xBBA JUMP JUMPDEST PUSH1 0xFF AND PUSH1 0x20 DUP5 ADD MSTORE POP PUSH2 0x373 JUMP JUMPDEST PUSH2 0x30E PUSH1 0x5 DUP6 PUSH2 0xB5D JUMP JUMPDEST PUSH1 0x2 PUSH1 0x80 DUP5 ADD DUP2 SWAP1 MSTORE SWAP1 SWAP2 POP PUSH2 0x32C SWAP1 PUSH1 0x1 SWAP1 PUSH2 0x279 SWAP1 DUP5 SWAP1 PUSH2 0xBBA JUMP JUMPDEST PUSH1 0xFF SWAP1 DUP2 AND PUSH1 0xA0 DUP5 ADD MSTORE PUSH2 0x34E SWAP1 PUSH2 0x347 SWAP1 DUP6 AND PUSH1 0x2 PUSH2 0xBBA JUMP JUMPDEST DUP3 SWAP1 PUSH2 0xBBA JUMP JUMPDEST PUSH1 0xFF AND PUSH1 0x20 DUP4 ADD DUP2 SWAP1 MSTORE PUSH2 0x363 SWAP1 PUSH1 0x2 PUSH2 0xB5D JUMP JUMPDEST PUSH1 0xFF AND PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x1 PUSH1 0xC0 DUP4 ADD MSTORE JUMPDEST PUSH2 0x392 PUSH2 0x383 DUP6 PUSH1 0xFF DUP7 AND PUSH2 0xB5D JUMP JUMPDEST PUSH3 0xFFFFFF DUP10 AND SWAP1 PUSH1 0xA EXP PUSH2 0xC14 JUMP JUMPDEST DUP3 MSTORE PUSH1 0x1 PUSH1 0xE0 DUP4 ADD MSTORE PUSH1 0x4 DUP5 GT PUSH2 0x3AA JUMPI PUSH1 0x0 PUSH2 0x3B5 JUMP JUMPDEST PUSH2 0x3B5 DUP5 PUSH1 0x4 PUSH2 0xB5D JUMP JUMPDEST PUSH1 0xFF AND PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x3C6 DUP3 PUSH2 0xC7B JUMP JUMPDEST SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP2 PUSH2 0x3E1 DUP5 PUSH1 0x60 ADD MLOAD PUSH2 0x48C JUMP JUMPDEST PUSH2 0x3EE DUP6 PUSH1 0x80 ADD MLOAD PUSH2 0x48C JUMP JUMPDEST PUSH2 0x427 DUP7 PUSH1 0xE0 ADD MLOAD ISZERO PUSH2 0x406 JUMPI DUP7 PUSH2 0x120 ADD MLOAD PUSH2 0x40D JUMP JUMPDEST DUP7 PUSH2 0x100 ADD MLOAD JUMPDEST DUP8 PUSH2 0x160 ADD MLOAD DUP9 PUSH1 0xC0 ADD MLOAD DUP10 PUSH1 0xA0 ADD MLOAD DUP11 PUSH1 0xE0 ADD MLOAD PUSH2 0xEA7 JUMP JUMPDEST PUSH2 0x460 DUP8 PUSH1 0xE0 ADD MLOAD ISZERO PUSH2 0x43F JUMPI DUP8 PUSH2 0x100 ADD MLOAD PUSH2 0x446 JUMP JUMPDEST DUP8 PUSH2 0x120 ADD MLOAD JUMPDEST DUP9 PUSH2 0x160 ADD MLOAD DUP10 PUSH1 0xC0 ADD MLOAD DUP11 PUSH1 0xA0 ADD MLOAD DUP12 PUSH1 0xE0 ADD MLOAD PUSH2 0xEA7 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x474 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x42A0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x60 DUP2 PUSH1 0x0 DUP1 JUMPDEST DUP3 MLOAD DUP2 PUSH1 0xFF AND LT ISZERO PUSH2 0x4F0 JUMPI DUP3 DUP2 PUSH1 0xFF AND DUP2 MLOAD DUP2 LT PUSH2 0x4AE JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP2 ADD ADD MLOAD PUSH32 0xFF00000000000000000000000000000000000000000000000000000000000000 AND PUSH1 0x11 PUSH1 0xF9 SHL EQ ISZERO PUSH2 0x4E8 JUMPI PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 JUMPDEST PUSH1 0x1 ADD PUSH2 0x493 JUMP JUMPDEST POP PUSH1 0xFF DUP2 AND ISZERO PUSH2 0x63C JUMPI PUSH1 0x0 DUP2 PUSH1 0xFF AND DUP4 MLOAD ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP1 ISZERO PUSH2 0x519 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x544 JUMPI PUSH1 0x20 DUP3 ADD DUP2 DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP PUSH1 0x0 DUP1 JUMPDEST DUP5 MLOAD DUP2 PUSH1 0xFF AND LT ISZERO PUSH2 0x62F JUMPI DUP5 DUP2 PUSH1 0xFF AND DUP2 MLOAD DUP2 LT PUSH2 0x566 JUMPI INVALID JUMPDEST PUSH1 0x20 SWAP2 ADD ADD MLOAD PUSH32 0xFF00000000000000000000000000000000000000000000000000000000000000 AND PUSH1 0x11 PUSH1 0xF9 SHL EQ ISZERO PUSH2 0x5E4 JUMPI PUSH32 0x5C00000000000000000000000000000000000000000000000000000000000000 DUP4 DUP4 DUP1 PUSH1 0x1 ADD SWAP5 POP DUP2 MLOAD DUP2 LT PUSH2 0x5CC JUMPI INVALID JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP JUMPDEST DUP5 DUP2 PUSH1 0xFF AND DUP2 MLOAD DUP2 LT PUSH2 0x5F3 JUMPI INVALID JUMPDEST PUSH1 0x20 ADD ADD MLOAD PUSH1 0xF8 SHR PUSH1 0xF8 SHL DUP4 DUP4 DUP1 PUSH1 0x1 ADD SWAP5 POP DUP2 MLOAD DUP2 LT PUSH2 0x610 JUMPI INVALID JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH1 0x1 ADD PUSH2 0x54B JUMP JUMPDEST POP DUP2 SWAP5 POP POP POP POP POP PUSH2 0x16B JUMP JUMPDEST POP SWAP2 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x486 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x14 PUSH2 0xFD1 JUMP JUMPDEST PUSH1 0x60 DUP4 DUP4 DUP4 DUP7 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x673 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x44B9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP2 PUSH2 0x6B1 JUMPI POP PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x1 DUP2 MSTORE PUSH1 0x3 PUSH1 0xFC SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH2 0x16B JUMP JUMPDEST DUP2 PUSH1 0x0 JUMPDEST DUP2 ISZERO PUSH2 0x6C9 JUMPI PUSH1 0x1 ADD PUSH1 0xA DUP3 DIV SWAP2 POP PUSH2 0x6B5 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP1 ISZERO PUSH2 0x6E2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x70D JUMPI PUSH1 0x20 DUP3 ADD DUP2 DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP DUP6 SWAP4 POP SWAP1 POP PUSH1 0x0 NOT DUP3 ADD JUMPDEST DUP4 ISZERO PUSH2 0x75E JUMPI PUSH1 0xA DUP5 MOD PUSH1 0x30 ADD PUSH1 0xF8 SHL DUP3 DUP3 DUP1 PUSH1 0x1 SWAP1 SUB SWAP4 POP DUP2 MLOAD DUP2 LT PUSH2 0x73C JUMPI INVALID JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH1 0xA DUP5 DIV SWAP4 POP PUSH2 0x719 JUMP JUMPDEST POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP4 DUP6 DUP5 DUP5 DUP10 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x782 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x43A1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 PUSH2 0x2A0 ADD PUSH1 0x40 MSTORE DUP1 PUSH2 0x7BA DUP6 PUSH1 0x20 ADD MLOAD PUSH2 0x644 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x7CC DUP6 PUSH1 0x40 ADD MLOAD PUSH2 0x644 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD DUP5 PUSH2 0x1A0 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP5 PUSH1 0x60 ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD DUP5 PUSH1 0x80 ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x807 DUP6 PUSH2 0x180 ADD MLOAD PUSH2 0x170 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD DUP5 PUSH2 0x100 ADD MLOAD PUSH1 0x2 SIGNEXTEND DUP2 MSTORE PUSH1 0x20 ADD DUP5 PUSH2 0x120 ADD MLOAD PUSH1 0x2 SIGNEXTEND DUP2 MSTORE PUSH1 0x20 ADD DUP5 PUSH2 0x160 ADD MLOAD PUSH1 0x2 SIGNEXTEND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x850 DUP6 PUSH2 0x100 ADD MLOAD DUP7 PUSH2 0x120 ADD MLOAD DUP8 PUSH2 0x140 ADD MLOAD PUSH2 0x1159 JUMP JUMPDEST PUSH1 0x0 SIGNEXTEND DUP2 MSTORE PUSH1 0x20 ADD DUP5 PUSH1 0x0 ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x87A DUP6 PUSH1 0x20 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x88 PUSH2 0x1190 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x897 DUP6 PUSH1 0x40 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x88 PUSH2 0x1190 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x8B4 DUP6 PUSH1 0x20 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 PUSH2 0x1190 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x8D1 DUP6 PUSH1 0x40 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 PUSH2 0x1190 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x904 PUSH2 0x8F6 DUP7 PUSH1 0x20 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x10 DUP9 PUSH1 0x0 ADD MLOAD PUSH2 0x119F JUMP JUMPDEST PUSH1 0x0 PUSH1 0xFF PUSH1 0x10 PUSH2 0x112 PUSH2 0x11BF JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x937 PUSH2 0x929 DUP7 PUSH1 0x40 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x10 DUP9 PUSH1 0x0 ADD MLOAD PUSH2 0x119F JUMP JUMPDEST PUSH1 0x0 PUSH1 0xFF PUSH1 0x64 PUSH2 0x1E4 PUSH2 0x11BF JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x95C PUSH2 0x8F6 DUP7 PUSH1 0x20 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x20 DUP9 PUSH1 0x0 ADD MLOAD PUSH2 0x119F JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x981 PUSH2 0x929 DUP7 PUSH1 0x40 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x20 DUP9 PUSH1 0x0 ADD MLOAD PUSH2 0x119F JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x9A6 PUSH2 0x8F6 DUP7 PUSH1 0x20 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x30 DUP9 PUSH1 0x0 ADD MLOAD PUSH2 0x119F JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x9CB PUSH2 0x929 DUP7 PUSH1 0x40 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x30 DUP9 PUSH1 0x0 ADD MLOAD PUSH2 0x119F JUMP JUMPDEST SWAP1 MSTORE SWAP1 POP PUSH2 0x685 DUP2 PUSH2 0x1207 JUMP JUMPDEST PUSH1 0x60 DUP2 MLOAD PUSH1 0x0 EQ ISZERO PUSH2 0x9F9 JUMPI POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP2 MSTORE PUSH2 0x16B JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x40 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x526B PUSH1 0x40 SWAP2 CODECOPY SWAP1 POP PUSH1 0x0 PUSH1 0x3 DUP5 MLOAD PUSH1 0x2 ADD DUP2 PUSH2 0xA26 JUMPI INVALID JUMPDEST DIV PUSH1 0x4 MUL SWAP1 POP PUSH1 0x0 DUP2 PUSH1 0x20 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP1 ISZERO PUSH2 0xA48 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0xA73 JUMPI PUSH1 0x20 DUP3 ADD DUP2 DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP DUP2 DUP2 MSTORE PUSH1 0x1 DUP4 ADD DUP6 DUP7 MLOAD DUP2 ADD PUSH1 0x20 DUP5 ADD JUMPDEST DUP2 DUP4 LT ISZERO PUSH2 0xAE1 JUMPI PUSH1 0x3 SWAP3 DUP4 ADD DUP1 MLOAD PUSH1 0x3F PUSH1 0x12 DUP3 SWAP1 SHR DUP2 AND DUP8 ADD MLOAD PUSH1 0xF8 SWAP1 DUP2 SHL DUP6 MSTORE PUSH1 0xC DUP4 SWAP1 SHR DUP3 AND DUP9 ADD MLOAD DUP2 SHL PUSH1 0x1 DUP7 ADD MSTORE PUSH1 0x6 DUP4 SWAP1 SHR DUP3 AND DUP9 ADD MLOAD DUP2 SHL PUSH1 0x2 DUP7 ADD MSTORE SWAP2 AND DUP7 ADD MLOAD SWAP1 SHL SWAP4 DUP3 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH1 0x4 ADD PUSH2 0xA87 JUMP JUMPDEST PUSH1 0x3 DUP10 MLOAD MOD PUSH1 0x1 DUP2 EQ PUSH2 0xAFB JUMPI PUSH1 0x2 DUP2 EQ PUSH2 0xB27 JUMPI PUSH2 0xB4F JUMP JUMPDEST PUSH32 0x3D3D000000000000000000000000000000000000000000000000000000000000 PUSH1 0x1 NOT DUP4 ADD MSTORE PUSH2 0xB4F JUMP JUMPDEST PUSH32 0x3D00000000000000000000000000000000000000000000000000000000000000 PUSH1 0x0 NOT DUP4 ADD MSTORE JUMPDEST POP SWAP4 SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 GT ISZERO PUSH2 0xBB4 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x536166654D6174683A207375627472616374696F6E206F766572666C6F770000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP SWAP1 SUB SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 ADD DUP4 DUP2 LT ISZERO PUSH2 0x685 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x536166654D6174683A206164646974696F6E206F766572666C6F770000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP3 GT PUSH2 0xC6A JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x536166654D6174683A206469766973696F6E206279207A65726F000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP2 DUP4 DUP2 PUSH2 0xC73 JUMPI INVALID JUMPDEST DIV SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP3 PUSH1 0x20 ADD MLOAD PUSH1 0xFF AND PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP1 ISZERO PUSH2 0xC9D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0xCC8 JUMPI PUSH1 0x20 DUP3 ADD DUP2 DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP DUP3 PUSH1 0xE0 ADD MLOAD ISZERO PUSH2 0xD1E JUMPI PUSH32 0x2500000000000000000000000000000000000000000000000000000000000000 DUP2 PUSH1 0x1 DUP4 MLOAD SUB DUP2 MLOAD DUP2 LT PUSH2 0xD06 JUMPI INVALID JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP JUMPDEST DUP3 PUSH1 0xC0 ADD MLOAD ISZERO PUSH2 0xD7B JUMPI PUSH1 0x3 PUSH1 0xFC SHL DUP2 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0xD3A JUMPI INVALID JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH1 0x17 PUSH1 0xF9 SHL DUP2 PUSH1 0x1 DUP2 MLOAD DUP2 LT PUSH2 0xD63 JUMPI INVALID JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP JUMPDEST PUSH1 0x80 DUP4 ADD MLOAD PUSH1 0xFF AND JUMPDEST PUSH1 0xA0 DUP5 ADD MLOAD PUSH2 0xD97 SWAP1 PUSH1 0xFF AND PUSH1 0x1 PUSH2 0xBBA JUMP JUMPDEST DUP2 LT ISZERO PUSH2 0xDCE JUMPI PUSH1 0x30 PUSH1 0xF8 SHL DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0xDAF JUMPI INVALID JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH1 0x1 ADD PUSH2 0xD84 JUMP JUMPDEST POP JUMPDEST DUP3 MLOAD ISZERO PUSH2 0x486 JUMPI PUSH1 0x0 DUP4 PUSH1 0x60 ADD MLOAD PUSH1 0xFF AND GT DUP1 ISZERO PUSH2 0xDFB JUMPI POP DUP3 PUSH1 0x60 ADD MLOAD PUSH1 0xFF AND DUP4 PUSH1 0x40 ADD MLOAD PUSH1 0xFF AND EQ JUMPDEST ISZERO PUSH2 0xE3E JUMPI PUSH1 0x40 DUP4 ADD DUP1 MLOAD PUSH1 0xFF PUSH1 0x0 NOT DUP3 ADD DUP2 AND SWAP1 SWAP3 MSTORE DUP3 MLOAD PUSH1 0x17 PUSH1 0xF9 SHL SWAP3 DUP5 SWAP3 AND SWAP1 DUP2 LT PUSH2 0xE26 JUMPI INVALID JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP JUMPDEST DUP3 MLOAD PUSH2 0xE50 SWAP1 PUSH1 0x30 SWAP1 PUSH1 0xA SWAP1 MOD PUSH2 0xBBA JUMP JUMPDEST PUSH1 0xF8 SHL DUP2 DUP5 PUSH1 0x40 ADD DUP1 MLOAD DUP1 SWAP2 SWAP1 PUSH1 0x1 SWAP1 SUB PUSH1 0xFF AND PUSH1 0xFF AND DUP2 MSTORE POP PUSH1 0xFF AND DUP2 MLOAD DUP2 LT PUSH2 0xE77 JUMPI INVALID JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH1 0xA DUP4 PUSH1 0x0 ADD DUP2 DUP2 MLOAD DUP2 PUSH2 0xE9E JUMPI INVALID JUMPDEST DIV SWAP1 MSTORE POP PUSH2 0xDD0 JUMP JUMPDEST PUSH1 0x60 DUP5 PUSH1 0x2 DUP2 SWAP1 SIGNEXTEND PUSH3 0xD89E7 NOT DUP2 PUSH2 0xEBB JUMPI INVALID JUMPDEST SDIV MUL PUSH1 0x2 SIGNEXTEND DUP7 PUSH1 0x2 SIGNEXTEND EQ ISZERO PUSH2 0xF15 JUMPI DUP2 ISZERO PUSH2 0xEF1 JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x3 DUP2 MSTORE PUSH1 0x20 ADD PUSH3 0x9A82B PUSH1 0xEB SHL DUP2 MSTORE POP PUSH2 0xF0E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x3 DUP2 MSTORE PUSH1 0x20 ADD PUSH3 0x26A4A7 PUSH1 0xE9 SHL DUP2 MSTORE POP JUMPDEST SWAP1 POP PUSH2 0x794 JUMP JUMPDEST DUP5 PUSH1 0x2 DUP2 SWAP1 SIGNEXTEND PUSH3 0xD89E8 DUP2 PUSH2 0xF26 JUMPI INVALID JUMPDEST SDIV MUL PUSH1 0x2 SIGNEXTEND DUP7 PUSH1 0x2 SIGNEXTEND EQ ISZERO PUSH2 0xF7C JUMPI DUP2 ISZERO PUSH2 0xF5C JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x3 DUP2 MSTORE PUSH1 0x20 ADD PUSH3 0x26A4A7 PUSH1 0xE9 SHL DUP2 MSTORE POP PUSH2 0xF0E JUMP JUMPDEST POP PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x3 DUP2 MSTORE PUSH3 0x9A82B PUSH1 0xEB SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH2 0x794 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xF87 DUP8 PUSH2 0x1496 JUMP JUMPDEST SWAP1 POP DUP3 ISZERO PUSH2 0xFBE JUMPI PUSH2 0xFBB PUSH25 0x1000000000000000000000000000000000000000000000000 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0xC14 JUMP JUMPDEST SWAP1 POP JUMPDEST PUSH2 0xFC9 DUP2 DUP7 DUP7 PUSH2 0x17E4 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x794 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP3 PUSH1 0x2 MUL PUSH1 0x2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP1 ISZERO PUSH2 0xFF2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x101D JUMPI PUSH1 0x20 DUP3 ADD DUP2 DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP PUSH1 0x3 PUSH1 0xFC SHL DUP2 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x1032 JUMPI INVALID JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH32 0x7800000000000000000000000000000000000000000000000000000000000000 DUP2 PUSH1 0x1 DUP2 MLOAD DUP2 LT PUSH2 0x1077 JUMPI INVALID JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH1 0x1 PUSH1 0x2 DUP5 MUL ADD JUMPDEST PUSH1 0x1 DUP2 GT ISZERO PUSH2 0x1105 JUMPI PUSH32 0x3031323334353637383961626364656600000000000000000000000000000000 DUP6 PUSH1 0xF AND PUSH1 0x10 DUP2 LT PUSH2 0x10CE JUMPI INVALID JUMPDEST BYTE PUSH1 0xF8 SHL DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x10DE JUMPI INVALID JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH1 0x4 SWAP5 SWAP1 SWAP5 SHR SWAP4 PUSH1 0x0 NOT ADD PUSH2 0x1096 JUMP JUMPDEST POP DUP4 ISZERO PUSH2 0x685 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x537472696E67733A20686578206C656E67746820696E73756666696369656E74 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP4 PUSH1 0x2 SIGNEXTEND DUP3 PUSH1 0x2 SIGNEXTEND SLT ISZERO PUSH2 0x1172 JUMPI POP PUSH1 0x0 NOT PUSH2 0x685 JUMP JUMPDEST DUP3 PUSH1 0x2 SIGNEXTEND DUP3 PUSH1 0x2 SIGNEXTEND SGT ISZERO PUSH2 0x1188 JUMPI POP PUSH1 0x1 PUSH2 0x685 JUMP JUMPDEST POP PUSH1 0x0 PUSH2 0x685 JUMP JUMPDEST PUSH1 0x60 PUSH2 0x685 DUP4 DUP4 SHR PUSH1 0x3 PUSH2 0x19B2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0xFF DUP3 PUSH2 0x11AE DUP7 DUP7 PUSH2 0x1A79 JUMP JUMPDEST MUL DUP2 PUSH2 0x11B6 JUMPI INVALID JUMPDEST MOD SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x11FD PUSH2 0x11F8 DUP5 PUSH2 0x2C7 PUSH2 0x11D5 DUP9 DUP11 PUSH2 0xB5D JUMP JUMPDEST PUSH2 0x11F2 PUSH2 0x11E2 DUP9 DUP11 PUSH2 0xB5D JUMP JUMPDEST PUSH2 0x11EC DUP14 DUP14 PUSH2 0xB5D JUMP JUMPDEST SWAP1 PUSH2 0x1A80 JUMP JUMPDEST SWAP1 PUSH2 0xC14 JUMP JUMPDEST PUSH2 0x68C JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x1212 DUP3 PUSH2 0x1AD9 JUMP JUMPDEST PUSH2 0x122E DUP4 PUSH1 0x0 ADD MLOAD DUP5 PUSH1 0x20 ADD MLOAD DUP6 PUSH1 0x60 ADD MLOAD DUP7 PUSH1 0x80 ADD MLOAD PUSH2 0x218D JUMP JUMPDEST PUSH2 0x1245 DUP5 PUSH1 0x60 ADD MLOAD DUP6 PUSH1 0x80 ADD MLOAD DUP7 PUSH1 0xA0 ADD MLOAD PUSH2 0x24B8 JUMP JUMPDEST PUSH2 0x1263 DUP6 PUSH1 0xC0 ADD MLOAD DUP7 PUSH1 0xE0 ADD MLOAD DUP8 PUSH2 0x100 ADD MLOAD DUP9 PUSH2 0x120 ADD MLOAD PUSH2 0x2608 JUMP JUMPDEST PUSH2 0x1283 PUSH2 0x1274 DUP8 PUSH2 0x140 ADD MLOAD PUSH2 0x68C JUMP JUMPDEST DUP8 PUSH1 0xC0 ADD MLOAD DUP9 PUSH1 0xE0 ADD MLOAD PUSH2 0x295B JUMP JUMPDEST PUSH2 0x1296 DUP8 PUSH2 0x140 ADD MLOAD DUP9 PUSH1 0x40 ADD MLOAD PUSH2 0x2D8C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD DUP1 DUP8 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x12C8 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x12A9 JUMP JUMPDEST MLOAD DUP2 MLOAD PUSH1 0x20 SWAP4 DUP5 SUB PUSH2 0x100 EXP PUSH1 0x0 NOT ADD DUP1 NOT SWAP1 SWAP3 AND SWAP2 AND OR SWAP1 MSTORE DUP10 MLOAD SWAP2 SWAP1 SWAP4 ADD SWAP3 DUP10 ADD SWAP2 POP DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x1310 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x12F1 JUMP JUMPDEST MLOAD DUP2 MLOAD PUSH1 0x20 SWAP4 DUP5 SUB PUSH2 0x100 EXP PUSH1 0x0 NOT ADD DUP1 NOT SWAP1 SWAP3 AND SWAP2 AND OR SWAP1 MSTORE DUP9 MLOAD SWAP2 SWAP1 SWAP4 ADD SWAP3 DUP9 ADD SWAP2 POP DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x1358 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x1339 JUMP JUMPDEST MLOAD DUP2 MLOAD PUSH1 0x20 SWAP4 DUP5 SUB PUSH2 0x100 EXP PUSH1 0x0 NOT ADD DUP1 NOT SWAP1 SWAP3 AND SWAP2 AND OR SWAP1 MSTORE DUP8 MLOAD SWAP2 SWAP1 SWAP4 ADD SWAP3 DUP8 ADD SWAP2 POP DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x13A0 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x1381 JUMP JUMPDEST MLOAD DUP2 MLOAD PUSH1 0x20 SWAP4 DUP5 SUB PUSH2 0x100 EXP PUSH1 0x0 NOT ADD DUP1 NOT SWAP1 SWAP3 AND SWAP2 AND OR SWAP1 MSTORE DUP7 MLOAD SWAP2 SWAP1 SWAP4 ADD SWAP3 DUP7 ADD SWAP2 POP DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x13E8 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x13C9 JUMP JUMPDEST MLOAD DUP2 MLOAD PUSH1 0x20 SWAP4 DUP5 SUB PUSH2 0x100 EXP PUSH1 0x0 NOT ADD DUP1 NOT SWAP1 SWAP3 AND SWAP2 AND OR SWAP1 MSTORE DUP6 MLOAD SWAP2 SWAP1 SWAP4 ADD SWAP3 DUP6 ADD SWAP2 POP DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x1430 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x1411 JUMP JUMPDEST MLOAD DUP2 MLOAD PUSH1 0x20 SWAP4 SWAP1 SWAP4 SUB PUSH2 0x100 EXP PUSH1 0x0 NOT ADD DUP1 NOT SWAP1 SWAP2 AND SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 MSTORE PUSH32 0x3C2F7376673E0000000000000000000000000000000000000000000000000000 SWAP3 ADD SWAP2 DUP3 MSTORE POP PUSH1 0x40 DUP1 MLOAD DUP1 DUP4 SUB PUSH1 0x19 NOT ADD DUP2 MSTORE PUSH1 0x6 SWAP1 SWAP3 ADD SWAP1 MSTORE SWAP10 SWAP9 POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 PUSH1 0x2 SIGNEXTEND SLT PUSH2 0x14AD JUMPI DUP3 PUSH1 0x2 SIGNEXTEND PUSH2 0x14B5 JUMP JUMPDEST DUP3 PUSH1 0x2 SIGNEXTEND PUSH1 0x0 SUB JUMPDEST SWAP1 POP PUSH3 0xD89E8 DUP2 GT ISZERO PUSH2 0x150F JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5400000000000000000000000000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x1 DUP3 AND PUSH2 0x1523 JUMPI PUSH1 0x1 PUSH1 0x80 SHL PUSH2 0x1535 JUMP JUMPDEST PUSH16 0xFFFCB933BD6FAD37AA2D162D1A594001 JUMPDEST PUSH17 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP PUSH1 0x2 DUP3 AND ISZERO PUSH2 0x1569 JUMPI PUSH16 0xFFF97272373D413259A46990580E213A MUL PUSH1 0x80 SHR JUMPDEST PUSH1 0x4 DUP3 AND ISZERO PUSH2 0x1588 JUMPI PUSH16 0xFFF2E50F5F656932EF12357CF3C7FDCC MUL PUSH1 0x80 SHR JUMPDEST PUSH1 0x8 DUP3 AND ISZERO PUSH2 0x15A7 JUMPI PUSH16 0xFFE5CACA7E10E4E61C3624EAA0941CD0 MUL PUSH1 0x80 SHR JUMPDEST PUSH1 0x10 DUP3 AND ISZERO PUSH2 0x15C6 JUMPI PUSH16 0xFFCB9843D60F6159C9DB58835C926644 MUL PUSH1 0x80 SHR JUMPDEST PUSH1 0x20 DUP3 AND ISZERO PUSH2 0x15E5 JUMPI PUSH16 0xFF973B41FA98C081472E6896DFB254C0 MUL PUSH1 0x80 SHR JUMPDEST PUSH1 0x40 DUP3 AND ISZERO PUSH2 0x1604 JUMPI PUSH16 0xFF2EA16466C96A3843EC78B326B52861 MUL PUSH1 0x80 SHR JUMPDEST PUSH1 0x80 DUP3 AND ISZERO PUSH2 0x1623 JUMPI PUSH16 0xFE5DEE046A99A2A811C461F1969C3053 MUL PUSH1 0x80 SHR JUMPDEST PUSH2 0x100 DUP3 AND ISZERO PUSH2 0x1643 JUMPI PUSH16 0xFCBE86C7900A88AEDCFFC83B479AA3A4 MUL PUSH1 0x80 SHR JUMPDEST PUSH2 0x200 DUP3 AND ISZERO PUSH2 0x1663 JUMPI PUSH16 0xF987A7253AC413176F2B074CF7815E54 MUL PUSH1 0x80 SHR JUMPDEST PUSH2 0x400 DUP3 AND ISZERO PUSH2 0x1683 JUMPI PUSH16 0xF3392B0822B70005940C7A398E4B70F3 MUL PUSH1 0x80 SHR JUMPDEST PUSH2 0x800 DUP3 AND ISZERO PUSH2 0x16A3 JUMPI PUSH16 0xE7159475A2C29B7443B29C7FA6E889D9 MUL PUSH1 0x80 SHR JUMPDEST PUSH2 0x1000 DUP3 AND ISZERO PUSH2 0x16C3 JUMPI PUSH16 0xD097F3BDFD2022B8845AD8F792AA5825 MUL PUSH1 0x80 SHR JUMPDEST PUSH2 0x2000 DUP3 AND ISZERO PUSH2 0x16E3 JUMPI PUSH16 0xA9F746462D870FDF8A65DC1F90E061E5 MUL PUSH1 0x80 SHR JUMPDEST PUSH2 0x4000 DUP3 AND ISZERO PUSH2 0x1703 JUMPI PUSH16 0x70D869A156D2A1B890BB3DF62BAF32F7 MUL PUSH1 0x80 SHR JUMPDEST PUSH2 0x8000 DUP3 AND ISZERO PUSH2 0x1723 JUMPI PUSH16 0x31BE135F97D08FD981231505542FCFA6 MUL PUSH1 0x80 SHR JUMPDEST PUSH3 0x10000 DUP3 AND ISZERO PUSH2 0x1744 JUMPI PUSH16 0x9AA508B5B7A84E1C677DE54F3E99BC9 MUL PUSH1 0x80 SHR JUMPDEST PUSH3 0x20000 DUP3 AND ISZERO PUSH2 0x1764 JUMPI PUSH15 0x5D6AF8DEDB81196699C329225EE604 MUL PUSH1 0x80 SHR JUMPDEST PUSH3 0x40000 DUP3 AND ISZERO PUSH2 0x1783 JUMPI PUSH14 0x2216E584F5FA1EA926041BEDFE98 MUL PUSH1 0x80 SHR JUMPDEST PUSH3 0x80000 DUP3 AND ISZERO PUSH2 0x17A0 JUMPI PUSH12 0x48A170391F7DC42444E8FA2 MUL PUSH1 0x80 SHR JUMPDEST PUSH1 0x0 DUP5 PUSH1 0x2 SIGNEXTEND SGT ISZERO PUSH2 0x17BB JUMPI DUP1 PUSH1 0x0 NOT DUP2 PUSH2 0x17B7 JUMPI INVALID JUMPDEST DIV SWAP1 POP JUMPDEST PUSH5 0x100000000 DUP2 MOD ISZERO PUSH2 0x17CF JUMPI PUSH1 0x1 PUSH2 0x17D2 JUMP JUMPDEST PUSH1 0x0 JUMPDEST PUSH1 0xFF AND PUSH1 0x20 DUP3 SWAP1 SHR ADD SWAP3 POP POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH2 0x17F3 DUP6 DUP6 DUP6 PUSH2 0x2E04 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x180B DUP3 DUP4 PUSH9 0x10000000000000000 PUSH2 0x2F06 JUMP JUMPDEST SWAP1 POP PUSH13 0x1000000000000000000000000 DUP3 LT DUP1 ISZERO PUSH2 0x184C JUMPI PUSH2 0x1845 DUP3 PUSH19 0x47BF19673DF52E37F2410011D100000000000 PUSH1 0x1 PUSH1 0x80 SHL PUSH2 0x2F06 JUMP JUMPDEST SWAP2 POP PUSH2 0x1861 JUMP JUMPDEST PUSH2 0x185E DUP3 PUSH3 0x186A0 PUSH1 0x1 PUSH1 0x80 SHL PUSH2 0x2F06 JUMP JUMPDEST SWAP2 POP JUMPDEST DUP2 PUSH1 0x0 JUMPDEST DUP2 ISZERO PUSH2 0x1879 JUMPI PUSH1 0x1 ADD PUSH1 0xA DUP3 DIV SWAP2 POP PUSH2 0x1865 JUMP JUMPDEST PUSH1 0x0 NOT ADD PUSH1 0x0 DUP1 PUSH2 0x188A DUP7 DUP5 PUSH2 0x2FB5 JUMP JUMPDEST SWAP2 POP SWAP2 POP DUP1 ISZERO PUSH2 0x189B JUMPI PUSH1 0x1 SWAP1 SWAP3 ADD SWAP2 JUMPDEST PUSH2 0x18A3 PUSH2 0x3E02 JUMP JUMPDEST DUP6 ISZERO PUSH2 0x1910 JUMPI PUSH2 0x18C2 PUSH2 0x18BA PUSH1 0x2B PUSH1 0xFF DUP8 AND PUSH2 0xB5D JUMP JUMPDEST PUSH1 0x7 SWAP1 PUSH2 0xBBA JUMP JUMPDEST PUSH1 0xFF SWAP1 DUP2 AND PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x2 PUSH1 0x80 DUP4 ADD MSTORE PUSH2 0x18E8 SWAP1 PUSH1 0x1 SWAP1 PUSH2 0x2C7 SWAP1 PUSH1 0x2B SWAP1 DUP9 AND PUSH2 0xB5D JUMP JUMPDEST PUSH1 0xFF SWAP1 DUP2 AND PUSH1 0xA0 DUP4 ADD MSTORE PUSH1 0x20 DUP3 ADD MLOAD PUSH2 0x1903 SWAP2 AND PUSH1 0x1 PUSH2 0xB5D JUMP JUMPDEST PUSH1 0xFF AND PUSH1 0x40 DUP3 ADD MSTORE PUSH2 0x1987 JUMP JUMPDEST PUSH1 0x9 DUP5 PUSH1 0xFF AND LT PUSH2 0x1959 JUMPI PUSH2 0x1929 PUSH1 0xFF DUP6 AND PUSH1 0x4 PUSH2 0xB5D JUMP JUMPDEST PUSH1 0xFF AND PUSH1 0x20 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x5 PUSH1 0x80 DUP4 ADD MSTORE PUSH2 0x1945 SWAP1 PUSH1 0x1 PUSH2 0xB5D JUMP JUMPDEST PUSH1 0xFF AND PUSH1 0xA0 DUP3 ADD MSTORE PUSH1 0x4 PUSH1 0x40 DUP3 ADD MSTORE PUSH2 0x1987 JUMP JUMPDEST PUSH1 0x6 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x5 PUSH1 0x40 DUP3 ADD DUP2 SWAP1 MSTORE PUSH2 0x197E SWAP1 PUSH1 0x1 SWAP1 PUSH2 0x2C7 SWAP1 PUSH1 0xFF DUP9 AND SWAP1 PUSH2 0xB5D JUMP JUMPDEST PUSH1 0xFF AND PUSH1 0x60 DUP3 ADD MSTORE JUMPDEST DUP3 DUP2 MSTORE DUP6 ISZERO ISZERO PUSH1 0xC0 DUP3 ADD MSTORE PUSH1 0x0 PUSH1 0xE0 DUP3 ADD MSTORE PUSH2 0x19A2 DUP2 PUSH2 0xC7B JUMP JUMPDEST SWAP13 SWAP12 POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP3 PUSH1 0x2 MUL PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP1 ISZERO PUSH2 0x19D0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x19FB JUMPI PUSH1 0x20 DUP3 ADD DUP2 DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP DUP1 MLOAD SWAP1 SWAP2 POP JUMPDEST DUP1 ISZERO PUSH2 0x1A71 JUMPI PUSH32 0x3031323334353637383961626364656600000000000000000000000000000000 DUP6 PUSH1 0xF AND PUSH1 0x10 DUP2 LT PUSH2 0x1A37 JUMPI INVALID JUMPDEST BYTE PUSH1 0xF8 SHL DUP3 PUSH1 0x1 DUP4 SUB DUP2 MLOAD DUP2 LT PUSH2 0x1A4A JUMPI INVALID JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH1 0x4 SWAP5 SWAP1 SWAP5 SHR SWAP4 PUSH1 0x0 NOT ADD PUSH2 0x1A02 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST SHR PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x1A8F JUMPI POP PUSH1 0x0 PUSH2 0x486 JUMP JUMPDEST DUP3 DUP3 MUL DUP3 DUP5 DUP3 DUP2 PUSH2 0x1A9C JUMPI INVALID JUMPDEST DIV EQ PUSH2 0x685 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x21 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x548A PUSH1 0x21 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x60 PUSH2 0x1B6E DUP3 PUSH2 0x160 ADD MLOAD PUSH1 0x40 MLOAD PUSH1 0x20 ADD DUP1 DUP1 PUSH2 0x5044 PUSH1 0x81 SWAP2 CODECOPY PUSH1 0x81 ADD DUP3 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x1B21 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x1B02 JUMP JUMPDEST PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP3 MLOAD AND DUP2 DUP5 MLOAD AND DUP1 DUP3 OR DUP6 MSTORE POP POP POP POP POP POP SWAP1 POP ADD DUP1 PUSH9 0x13979F1E17B9BB339F PUSH1 0xB9 SHL DUP2 MSTORE POP PUSH1 0x9 ADD SWAP2 POP POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH2 0x9D8 JUMP JUMPDEST PUSH2 0x1CDA DUP4 PUSH2 0x1E0 ADD MLOAD DUP5 PUSH2 0x200 ADD MLOAD DUP6 PUSH2 0x180 ADD MLOAD PUSH1 0x40 MLOAD PUSH1 0x20 ADD DUP1 DUP1 PUSH2 0x4B81 PUSH1 0x63 SWAP2 CODECOPY PUSH1 0x63 ADD DUP5 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x1BC0 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x1BA1 JUMP JUMPDEST MLOAD DUP2 MLOAD PUSH1 0x20 SWAP4 DUP5 SUB PUSH2 0x100 EXP PUSH1 0x0 NOT ADD DUP1 NOT SWAP1 SWAP3 AND SWAP2 AND OR SWAP1 MSTORE PUSH6 0x272063793D27 PUSH1 0xD0 SHL SWAP2 SWAP1 SWAP4 ADD SWAP1 DUP2 MSTORE DUP6 MLOAD PUSH1 0x6 SWAP1 SWAP2 ADD SWAP3 DUP7 ADD SWAP2 POP DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x1C1A JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x1BFB JUMP JUMPDEST MLOAD DUP2 MLOAD PUSH1 0x20 SWAP4 DUP5 SUB PUSH2 0x100 EXP PUSH1 0x0 NOT ADD DUP1 NOT SWAP1 SWAP3 AND SWAP2 AND OR SWAP1 MSTORE PUSH32 0x2720723D273132307078272066696C6C3D272300000000000000000000000000 SWAP2 SWAP1 SWAP4 ADD SWAP1 DUP2 MSTORE DUP5 MLOAD PUSH1 0x13 SWAP1 SWAP2 ADD SWAP3 DUP6 ADD SWAP2 POP DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x1C8B JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x1C6C JUMP JUMPDEST PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP3 MLOAD AND DUP2 DUP5 MLOAD AND DUP1 DUP3 OR DUP6 MSTORE POP POP POP POP POP POP SWAP1 POP ADD DUP1 PUSH9 0x13979F1E17B9BB339F PUSH1 0xB9 SHL DUP2 MSTORE POP PUSH1 0x9 ADD SWAP4 POP POP POP POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH2 0x9D8 JUMP JUMPDEST PUSH2 0x1D2B DUP5 PUSH2 0x220 ADD MLOAD DUP6 PUSH2 0x240 ADD MLOAD DUP7 PUSH2 0x1A0 ADD MLOAD PUSH1 0x40 MLOAD PUSH1 0x20 ADD DUP1 DUP1 PUSH2 0x4B81 PUSH1 0x63 SWAP2 CODECOPY PUSH1 0x63 ADD DUP5 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x20 DUP4 LT PUSH2 0x1BC0 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x1BA1 JUMP JUMPDEST PUSH2 0x1E4A DUP6 PUSH2 0x260 ADD MLOAD DUP7 PUSH2 0x280 ADD MLOAD DUP8 PUSH2 0x1C0 ADD MLOAD PUSH1 0x40 MLOAD PUSH1 0x20 ADD DUP1 DUP1 PUSH2 0x4B81 PUSH1 0x63 SWAP2 CODECOPY PUSH1 0x63 ADD DUP5 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x1D7D JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x1D5E JUMP JUMPDEST MLOAD DUP2 MLOAD PUSH1 0x20 SWAP4 DUP5 SUB PUSH2 0x100 EXP PUSH1 0x0 NOT ADD DUP1 NOT SWAP1 SWAP3 AND SWAP2 AND OR SWAP1 MSTORE PUSH6 0x272063793D27 PUSH1 0xD0 SHL SWAP2 SWAP1 SWAP4 ADD SWAP1 DUP2 MSTORE DUP6 MLOAD PUSH1 0x6 SWAP1 SWAP2 ADD SWAP3 DUP7 ADD SWAP2 POP DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x1DD7 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x1DB8 JUMP JUMPDEST MLOAD DUP2 MLOAD PUSH1 0x0 NOT PUSH1 0x20 SWAP5 DUP6 SUB PUSH2 0x100 EXP ADD SWAP1 DUP2 AND SWAP1 NOT SWAP2 SWAP1 SWAP2 AND OR SWAP1 MSTORE PUSH32 0x2720723D273130307078272066696C6C3D272300000000000000000000000000 SWAP4 SWAP1 SWAP2 ADD SWAP3 DUP4 MSTORE DUP5 MLOAD PUSH1 0x13 SWAP1 SWAP4 ADD SWAP3 SWAP1 DUP6 ADD SWAP2 POP DUP1 DUP4 DUP4 PUSH1 0x20 DUP4 LT PUSH2 0x1C8B JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x1C6C JUMP JUMPDEST PUSH2 0x160 DUP7 ADD MLOAD PUSH1 0x40 MLOAD PUSH1 0x20 ADD DUP1 PUSH1 0x56 PUSH2 0x48FC DUP3 CODECOPY PUSH1 0x56 ADD PUSH1 0x2C PUSH2 0x52AB DUP3 CODECOPY PUSH32 0x3C646566733E0000000000000000000000000000000000000000000000000000 PUSH1 0x2C DUP3 ADD MSTORE PUSH1 0x32 ADD PUSH1 0x4B PUSH2 0x4FF9 DUP3 CODECOPY PUSH1 0x4B ADD DUP7 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x1EC6 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x1EA7 JUMP JUMPDEST PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP3 MLOAD AND DUP2 DUP5 MLOAD AND DUP1 DUP3 OR DUP6 MSTORE POP POP POP POP POP POP SWAP1 POP ADD DUP1 PUSH2 0x5B31 PUSH1 0x3E SWAP2 CODECOPY PUSH1 0x3E ADD DUP6 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x1F1E JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x1EFF JUMP JUMPDEST PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP3 MLOAD AND DUP2 DUP5 MLOAD AND DUP1 DUP3 OR DUP6 MSTORE POP POP POP POP POP POP SWAP1 POP ADD DUP1 PUSH2 0x50C5 PUSH1 0x3E SWAP2 CODECOPY PUSH1 0x3E ADD DUP5 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x1F76 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x1F57 JUMP JUMPDEST MLOAD DUP2 MLOAD PUSH1 0x20 SWAP4 SWAP1 SWAP4 SUB PUSH2 0x100 EXP PUSH1 0x0 NOT ADD DUP1 NOT SWAP1 SWAP2 AND SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 MSTORE PUSH32 0x22202F3E00000000000000000000000000000000000000000000000000000000 SWAP3 ADD SWAP2 DUP3 MSTORE POP PUSH1 0x4 ADD PUSH1 0x3B PUSH2 0x47F4 DUP3 CODECOPY PUSH1 0x3B ADD DUP4 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x1FF3 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x1FD4 JUMP JUMPDEST PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP3 MLOAD AND DUP2 DUP5 MLOAD AND DUP1 DUP3 OR DUP6 MSTORE POP POP POP POP POP POP SWAP1 POP ADD DUP1 PUSH2 0x4C41 PUSH1 0x99 SWAP2 CODECOPY PUSH1 0x99 ADD PUSH1 0x7F PUSH2 0x56E2 DUP3 CODECOPY PUSH1 0x7F ADD PUSH1 0x88 PUSH2 0x5AA9 DUP3 CODECOPY PUSH1 0x88 ADD PUSH1 0x41 PUSH2 0x4CDA DUP3 CODECOPY PUSH1 0x41 ADD PUSH1 0x5D PUSH2 0x5C69 DUP3 CODECOPY PUSH1 0x5D ADD PUSH1 0x72 PUSH2 0x578E DUP3 CODECOPY PUSH1 0x72 ADD PUSH1 0x49 PUSH2 0x475D DUP3 CODECOPY PUSH1 0x49 ADD PUSH1 0xBE PUSH2 0x4F3B DUP3 CODECOPY PUSH1 0xBE ADD PUSH1 0x71 PUSH2 0x4A0D DUP3 CODECOPY PUSH1 0x71 ADD PUSH1 0x75 PUSH2 0x5625 DUP3 CODECOPY PUSH1 0x75 ADD PUSH1 0x66 PUSH2 0x4D1B DUP3 CODECOPY PUSH1 0x66 ADD PUSH1 0xA4 PUSH2 0x52D7 DUP3 CODECOPY PUSH1 0xA4 ADD PUSH1 0x85 PUSH2 0x5B6F DUP3 CODECOPY PUSH32 0x3C6720636C69702D706174683D2275726C2823636F726E65727329223E000000 PUSH1 0x85 DUP3 ADD MSTORE PUSH32 0x3C726563742066696C6C3D220000000000000000000000000000000000000000 PUSH1 0xA2 DUP3 ADD MSTORE DUP3 MLOAD PUSH1 0xAE SWAP1 SWAP2 ADD SWAP1 PUSH1 0x20 DUP5 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x2111 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x20F2 JUMP JUMPDEST PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP3 MLOAD AND DUP2 DUP5 MLOAD AND DUP1 DUP3 OR DUP6 MSTORE POP POP POP POP POP POP SWAP1 POP ADD DUP1 PUSH2 0x4D81 PUSH1 0x31 SWAP2 CODECOPY PUSH1 0x31 ADD PUSH1 0x4E PUSH2 0x47A6 DUP3 CODECOPY PUSH1 0x4E ADD PUSH1 0x5D PUSH2 0x4BE4 DUP3 CODECOPY PUSH1 0x5D ADD PUSH1 0x41 PUSH2 0x522A DUP3 CODECOPY PUSH1 0x41 ADD PUSH1 0x52 PUSH2 0x5103 DUP3 CODECOPY PUSH1 0x52 ADD PUSH1 0x75 PUSH2 0x5BF4 DUP3 CODECOPY PUSH1 0x75 ADD SWAP6 POP POP POP POP POP POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 DUP4 DUP3 DUP6 DUP5 DUP9 DUP8 DUP11 DUP10 PUSH1 0x40 MLOAD PUSH1 0x20 ADD DUP1 DUP1 PUSH2 0x5D4C PUSH1 0x25 SWAP2 CODECOPY PUSH1 0x25 ADD PUSH1 0x7D PUSH2 0x4EBE DUP3 CODECOPY PUSH1 0x7D ADD DUP10 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x21DE JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x21BF JUMP JUMPDEST MLOAD DUP2 MLOAD PUSH1 0x20 SWAP4 DUP5 SUB PUSH2 0x100 EXP PUSH1 0x0 NOT ADD DUP1 NOT SWAP1 SWAP3 AND SWAP2 AND OR SWAP1 MSTORE PUSH5 0x107140511 PUSH1 0xDD SHL SWAP2 SWAP1 SWAP4 ADD SWAP1 DUP2 MSTORE DUP11 MLOAD PUSH1 0x5 SWAP1 SWAP2 ADD SWAP3 DUP12 ADD SWAP2 POP DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x2237 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x2218 JUMP JUMPDEST PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP3 MLOAD AND DUP2 DUP5 MLOAD AND DUP1 DUP3 OR DUP6 MSTORE POP POP POP POP POP POP SWAP1 POP ADD DUP1 PUSH2 0x4DB2 PUSH1 0x79 SWAP2 CODECOPY PUSH1 0x79 ADD PUSH1 0x86 PUSH2 0x5CC6 DUP3 CODECOPY PUSH1 0x86 ADD DUP8 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x2299 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x227A JUMP JUMPDEST MLOAD DUP2 MLOAD PUSH1 0x20 SWAP4 DUP5 SUB PUSH2 0x100 EXP PUSH1 0x0 NOT ADD DUP1 NOT SWAP1 SWAP3 AND SWAP2 AND OR SWAP1 MSTORE PUSH5 0x107140511 PUSH1 0xDD SHL SWAP2 SWAP1 SWAP4 ADD SWAP1 DUP2 MSTORE DUP9 MLOAD PUSH1 0x5 SWAP1 SWAP2 ADD SWAP3 DUP10 ADD SWAP2 POP DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x22F2 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x22D3 JUMP JUMPDEST PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP3 MLOAD AND DUP2 DUP5 MLOAD AND DUP1 DUP3 OR DUP6 MSTORE POP POP POP POP POP POP SWAP1 POP ADD DUP1 PUSH2 0x4988 PUSH1 0x85 SWAP2 CODECOPY PUSH1 0x85 ADD PUSH1 0x7B PUSH2 0x5917 DUP3 CODECOPY PUSH1 0x7B ADD DUP6 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x2354 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x2335 JUMP JUMPDEST MLOAD DUP2 MLOAD PUSH1 0x20 SWAP4 DUP5 SUB PUSH2 0x100 EXP PUSH1 0x0 NOT ADD DUP1 NOT SWAP1 SWAP3 AND SWAP2 AND OR SWAP1 MSTORE PUSH5 0x107140511 PUSH1 0xDD SHL SWAP2 SWAP1 SWAP4 ADD SWAP1 DUP2 MSTORE DUP7 MLOAD PUSH1 0x5 SWAP1 SWAP2 ADD SWAP3 DUP8 ADD SWAP2 POP DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x23AD JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x238E JUMP JUMPDEST PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP3 MLOAD AND DUP2 DUP5 MLOAD AND DUP1 DUP3 OR DUP6 MSTORE POP POP POP POP POP POP SWAP1 POP ADD DUP1 PUSH2 0x4AD2 PUSH1 0x5D SWAP2 CODECOPY PUSH1 0x5D ADD PUSH1 0xA3 PUSH2 0x5582 DUP3 CODECOPY PUSH1 0xA3 ADD DUP4 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x240F JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x23F0 JUMP JUMPDEST MLOAD DUP2 MLOAD PUSH1 0x20 SWAP4 DUP5 SUB PUSH2 0x100 EXP PUSH1 0x0 NOT ADD DUP1 NOT SWAP1 SWAP3 AND SWAP2 AND OR SWAP1 MSTORE PUSH5 0x107140511 PUSH1 0xDD SHL SWAP2 SWAP1 SWAP4 ADD SWAP1 DUP2 MSTORE DUP5 MLOAD PUSH1 0x5 SWAP1 SWAP2 ADD SWAP3 DUP6 ADD SWAP2 POP DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x2468 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x2449 JUMP JUMPDEST PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP3 MLOAD AND DUP2 DUP5 MLOAD AND DUP1 DUP3 OR DUP6 MSTORE POP POP POP POP POP POP SWAP1 POP ADD DUP1 PUSH2 0x46D2 PUSH1 0x8B SWAP2 CODECOPY PUSH1 0x8B ADD SWAP9 POP POP POP POP POP POP POP POP POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP4 DUP4 DUP4 PUSH1 0x40 MLOAD PUSH1 0x20 ADD DUP1 DUP1 PUSH2 0x482F PUSH1 0xCD SWAP2 CODECOPY PUSH1 0xCD ADD DUP5 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x24FA JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x24DB JUMP JUMPDEST PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP3 MLOAD AND DUP2 DUP5 MLOAD AND DUP1 DUP3 OR DUP6 MSTORE POP POP POP POP POP POP SWAP1 POP ADD DUP1 PUSH1 0x2F PUSH1 0xF8 SHL DUP2 MSTORE POP PUSH1 0x1 ADD DUP4 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x2553 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x2534 JUMP JUMPDEST PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP3 MLOAD AND DUP2 DUP5 MLOAD AND DUP1 DUP3 OR DUP6 MSTORE POP POP POP POP POP POP SWAP1 POP ADD DUP1 PUSH2 0x5EF5 PUSH1 0x77 SWAP2 CODECOPY PUSH1 0x77 ADD DUP3 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x25AB JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x258C JUMP JUMPDEST MLOAD DUP2 MLOAD PUSH1 0x20 SWAP4 SWAP1 SWAP4 SUB PUSH2 0x100 EXP PUSH1 0x0 NOT ADD DUP1 NOT SWAP1 SWAP2 AND SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 MSTORE PUSH11 0x1E17BA32BC3A1F1E17B39F PUSH1 0xA9 SHL SWAP3 ADD SWAP2 DUP3 MSTORE POP PUSH1 0xB ADD PUSH1 0x73 PUSH2 0x5D95 DUP3 CODECOPY PUSH1 0x73 ADD SWAP4 POP POP POP POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP3 PUSH1 0x0 SIGNEXTEND PUSH1 0x1 EQ PUSH2 0x269A JUMPI DUP3 PUSH1 0x0 SIGNEXTEND PUSH1 0x0 NOT EQ PUSH2 0x265E JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x5 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x236E6F6E65000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP PUSH2 0x2695 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0xA DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x23666164652D646F776E00000000000000000000000000000000000000000000 DUP2 MSTORE POP JUMPDEST PUSH2 0x26D1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x8 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x23666164652D7570000000000000000000000000000000000000000000000000 DUP2 MSTORE POP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x26E0 DUP8 DUP8 DUP8 PUSH2 0x3026 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 DUP4 DUP4 PUSH2 0x26EF DUP9 PUSH2 0x3274 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD DUP1 DUP1 PUSH32 0x3C67206D61736B3D2275726C2800000000000000000000000000000000000000 DUP2 MSTORE POP PUSH1 0xD ADD DUP7 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x2749 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x272A JUMP JUMPDEST MLOAD DUP2 MLOAD PUSH1 0x20 SWAP4 SWAP1 SWAP4 SUB PUSH2 0x100 EXP PUSH1 0x0 NOT ADD DUP1 NOT SWAP1 SWAP2 AND SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 MSTORE PUSH2 0x1491 PUSH1 0xF1 SHL SWAP3 ADD SWAP2 DUP3 MSTORE POP PUSH1 0x2 ADD PUSH1 0x77 PUSH2 0x537B DUP3 CODECOPY PUSH1 0x77 ADD DUP6 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x27AB JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x278C JUMP JUMPDEST PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP3 MLOAD AND DUP2 DUP5 MLOAD AND DUP1 DUP3 OR DUP6 MSTORE POP POP POP POP POP POP SWAP1 POP ADD DUP1 PUSH2 0x4A7E PUSH1 0x54 SWAP2 CODECOPY PUSH1 0x54 ADD DUP1 PUSH32 0x3C2F673E3C67206D61736B3D2275726C28000000000000000000000000000000 DUP2 MSTORE POP PUSH1 0x11 ADD DUP5 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x282B JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x280C JUMP JUMPDEST MLOAD DUP2 MLOAD PUSH1 0x20 SWAP4 SWAP1 SWAP4 SUB PUSH2 0x100 EXP PUSH1 0x0 NOT ADD DUP1 NOT SWAP1 SWAP2 AND SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 MSTORE PUSH2 0x1491 PUSH1 0xF1 SHL SWAP3 ADD SWAP2 DUP3 MSTORE POP PUSH1 0x2 ADD PUSH1 0x29 PUSH2 0x53F2 DUP3 CODECOPY PUSH1 0x29 ADD PUSH1 0x45 PUSH2 0x5445 DUP3 CODECOPY PUSH1 0x45 ADD DUP1 PUSH32 0x3C7061746820643D220000000000000000000000000000000000000000000000 DUP2 MSTORE POP PUSH1 0x9 ADD DUP4 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x28BF JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x28A0 JUMP JUMPDEST PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP3 MLOAD AND DUP2 DUP5 MLOAD AND DUP1 DUP3 OR DUP6 MSTORE POP POP POP POP POP POP SWAP1 POP ADD DUP1 PUSH2 0x569A PUSH1 0x48 SWAP2 CODECOPY PUSH1 0x48 ADD DUP3 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x2917 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x28F8 JUMP JUMPDEST PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP3 MLOAD AND DUP2 DUP5 MLOAD AND DUP1 DUP3 OR DUP6 MSTORE POP POP POP POP POP POP SWAP1 POP ADD SWAP6 POP POP POP POP POP POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP3 POP POP POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH2 0x2968 DUP5 PUSH2 0x3748 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x2975 DUP5 PUSH2 0x3748 JUMP JUMPDEST DUP7 MLOAD DUP4 MLOAD DUP3 MLOAD SWAP3 SWAP4 POP PUSH1 0x4 SWAP1 SWAP2 ADD SWAP2 PUSH1 0xA SWAP2 DUP3 ADD SWAP2 ADD PUSH1 0x0 DUP1 PUSH2 0x2998 DUP11 DUP11 PUSH2 0x3852 JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH2 0x29AB DUP6 PUSH1 0x4 ADD PUSH1 0x7 MUL PUSH2 0x68C JUMP JUMPDEST DUP12 PUSH2 0x29BB DUP7 PUSH1 0x4 ADD PUSH1 0x7 MUL PUSH2 0x68C JUMP JUMPDEST DUP10 PUSH2 0x29CB DUP8 PUSH1 0x4 ADD PUSH1 0x7 MUL PUSH2 0x68C JUMP JUMPDEST DUP11 DUP8 DUP8 PUSH1 0x40 MLOAD PUSH1 0x20 ADD DUP1 DUP1 PUSH2 0x5761 PUSH1 0x2D SWAP2 CODECOPY PUSH1 0x2D ADD DUP1 PUSH13 0x1E3932B1BA103BB4B23A341E91 PUSH1 0x99 SHL DUP2 MSTORE POP PUSH1 0xD ADD DUP10 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x2A23 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x2A04 JUMP JUMPDEST PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP3 MLOAD AND DUP2 DUP5 MLOAD AND DUP1 DUP3 OR DUP6 MSTORE POP POP POP POP POP POP SWAP1 POP ADD DUP1 PUSH2 0x5155 PUSH1 0x3D SWAP2 CODECOPY PUSH1 0x3D ADD PUSH1 0x8D PUSH2 0x5E08 DUP3 CODECOPY PUSH1 0x8D ADD DUP9 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x2A85 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x2A66 JUMP JUMPDEST MLOAD DUP2 MLOAD PUSH1 0x20 SWAP4 SWAP1 SWAP4 SUB PUSH2 0x100 EXP PUSH1 0x0 NOT ADD DUP1 NOT SWAP1 SWAP2 AND SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 MSTORE PUSH11 0x1E17BA32BC3A1F1E17B39F PUSH1 0xA9 SHL SWAP3 ADD SWAP2 DUP3 MSTORE POP PUSH1 0xB ADD PUSH1 0x2D PUSH2 0x5FA4 DUP3 CODECOPY PUSH1 0x2D ADD DUP1 PUSH13 0x1E3932B1BA103BB4B23A341E91 PUSH1 0x99 SHL DUP2 MSTORE POP PUSH1 0xD ADD DUP8 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x2B08 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x2AE9 JUMP JUMPDEST PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP3 MLOAD AND DUP2 DUP5 MLOAD AND DUP1 DUP3 OR DUP6 MSTORE POP POP POP POP POP POP SWAP1 POP ADD DUP1 PUSH2 0x5155 PUSH1 0x3D SWAP2 CODECOPY PUSH1 0x3D ADD PUSH1 0x93 PUSH2 0x4E2B DUP3 CODECOPY PUSH1 0x93 ADD DUP7 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x2B6A JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x2B4B JUMP JUMPDEST MLOAD DUP2 MLOAD PUSH1 0x20 SWAP4 SWAP1 SWAP4 SUB PUSH2 0x100 EXP PUSH1 0x0 NOT ADD DUP1 NOT SWAP1 SWAP2 AND SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 MSTORE PUSH11 0x1E17BA32BC3A1F1E17B39F PUSH1 0xA9 SHL SWAP3 ADD SWAP2 DUP3 MSTORE POP PUSH1 0xB ADD PUSH1 0x2D PUSH2 0x4B2F DUP3 CODECOPY PUSH1 0x2D ADD DUP1 PUSH13 0x1E3932B1BA103BB4B23A341E91 PUSH1 0x99 SHL DUP2 MSTORE POP PUSH1 0xD ADD DUP6 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x2BED JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x2BCE JUMP JUMPDEST PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP3 MLOAD AND DUP2 DUP5 MLOAD AND DUP1 DUP3 OR DUP6 MSTORE POP POP POP POP POP POP SWAP1 POP ADD DUP1 PUSH2 0x5155 PUSH1 0x3D SWAP2 CODECOPY PUSH1 0x3D ADD PUSH1 0x93 PUSH2 0x5992 DUP3 CODECOPY PUSH1 0x93 ADD DUP5 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x2C4F JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x2C30 JUMP JUMPDEST PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP3 MLOAD AND DUP2 DUP5 MLOAD AND DUP1 DUP3 OR DUP6 MSTORE POP POP POP POP POP POP SWAP1 POP ADD DUP1 PUSH2 0x5F6C PUSH1 0x38 SWAP2 CODECOPY PUSH1 0x38 ADD PUSH1 0x60 PUSH2 0x5E95 DUP3 CODECOPY PUSH1 0x60 ADD PUSH1 0x64 PUSH2 0x551E DUP3 CODECOPY PUSH1 0x64 ADD PUSH1 0x25 PUSH2 0x4B5C DUP3 CODECOPY PUSH1 0x25 ADD DUP4 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x2CC5 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x2CA6 JUMP JUMPDEST MLOAD DUP2 MLOAD PUSH1 0x20 SWAP4 DUP5 SUB PUSH2 0x100 EXP PUSH1 0x0 NOT ADD DUP1 NOT SWAP1 SWAP3 AND SWAP2 AND OR SWAP1 MSTORE PUSH32 0x70782C2000000000000000000000000000000000000000000000000000000000 SWAP2 SWAP1 SWAP4 ADD SWAP1 DUP2 MSTORE DUP5 MLOAD PUSH1 0x4 SWAP1 SWAP2 ADD SWAP3 DUP6 ADD SWAP2 POP DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x2D36 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x2D17 JUMP JUMPDEST PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP3 MLOAD AND DUP2 DUP5 MLOAD AND DUP1 DUP3 OR DUP6 MSTORE POP POP POP POP POP POP SWAP1 POP ADD DUP1 PUSH2 0x4952 PUSH1 0x36 SWAP2 CODECOPY PUSH1 0x36 ADD SWAP9 POP POP POP POP POP POP POP POP POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP8 POP POP POP POP POP POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x2D98 DUP4 DUP4 PUSH2 0x3C83 JUMP JUMPDEST ISZERO PUSH2 0x2DEE JUMPI PUSH1 0x40 MLOAD PUSH1 0x20 ADD DUP1 PUSH1 0x8D PUSH2 0x588A DUP3 CODECOPY PUSH1 0x8D ADD PUSH1 0x73 PUSH2 0x54AB DUP3 CODECOPY PUSH1 0x73 ADD PUSH1 0x71 PUSH2 0x51B9 DUP3 CODECOPY PUSH1 0x71 ADD PUSH1 0x8A PUSH2 0x5800 DUP3 CODECOPY PUSH1 0x8A ADD PUSH1 0x84 PUSH2 0x5A25 DUP3 CODECOPY PUSH1 0x84 ADD SWAP1 POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP PUSH2 0x486 JUMP JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP2 MSTORE SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x2E1F PUSH2 0x2E1A PUSH1 0xFF DUP7 DUP2 AND SWAP1 DUP7 AND PUSH2 0x3CE6 JUMP JUMPDEST PUSH2 0x3D4B JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 GT DUP1 ISZERO PUSH2 0x2E32 JUMPI POP PUSH1 0x12 DUP2 GT ISZERO JUMPDEST ISZERO PUSH2 0x2EF3 JUMPI DUP3 PUSH1 0xFF AND DUP5 PUSH1 0xFF AND GT ISZERO PUSH2 0x2E9C JUMPI PUSH2 0x2E66 PUSH2 0x2E53 DUP3 PUSH1 0x2 PUSH2 0xC14 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 AND SWAP1 PUSH1 0xA EXP PUSH2 0x1A80 JUMP JUMPDEST SWAP2 POP PUSH1 0x2 DUP2 MOD PUSH1 0x1 EQ ISZERO PUSH2 0x2E97 JUMPI PUSH2 0x2E94 DUP3 PUSH17 0x3298B075B4B6A5240945790619B37FD4A PUSH1 0x1 PUSH1 0x80 SHL PUSH2 0x2F06 JUMP JUMPDEST SWAP2 POP JUMPDEST PUSH2 0x2EEE JUMP JUMPDEST PUSH2 0x2EBD PUSH2 0x2EAA DUP3 PUSH1 0x2 PUSH2 0xC14 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 AND SWAP1 PUSH1 0xA EXP PUSH2 0xC14 JUMP JUMPDEST SWAP2 POP PUSH1 0x2 DUP2 MOD PUSH1 0x1 EQ ISZERO PUSH2 0x2EEE JUMPI PUSH2 0x2EEB DUP3 PUSH1 0x1 PUSH1 0x80 SHL PUSH17 0x3298B075B4B6A5240945790619B37FD4A PUSH2 0x2F06 JUMP JUMPDEST SWAP2 POP JUMPDEST PUSH2 0x1A71 JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 PUSH1 0x0 NOT DUP6 DUP8 MULMOD DUP7 DUP7 MUL SWAP3 POP DUP3 DUP2 LT SWAP1 DUP4 SWAP1 SUB SUB SWAP1 POP DUP1 PUSH2 0x2F3C JUMPI PUSH1 0x0 DUP5 GT PUSH2 0x2F31 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP3 SWAP1 DIV SWAP1 POP PUSH2 0x685 JUMP JUMPDEST DUP1 DUP5 GT PUSH2 0x2F48 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP5 DUP7 DUP9 MULMOD PUSH1 0x0 DUP7 DUP2 SUB DUP8 AND SWAP7 DUP8 SWAP1 DIV SWAP7 PUSH1 0x2 PUSH1 0x3 DUP10 MUL DUP2 XOR DUP1 DUP11 MUL DUP3 SUB MUL DUP1 DUP11 MUL DUP3 SUB MUL DUP1 DUP11 MUL DUP3 SUB MUL DUP1 DUP11 MUL DUP3 SUB MUL DUP1 DUP11 MUL DUP3 SUB MUL DUP1 DUP11 MUL SWAP1 SWAP2 SUB MUL SWAP2 DUP2 SWAP1 SUB DUP2 SWAP1 DIV PUSH1 0x1 ADD DUP7 DUP5 GT SWAP1 SWAP6 SUB SWAP5 SWAP1 SWAP5 MUL SWAP2 SWAP1 SWAP5 SUB SWAP3 SWAP1 SWAP3 DIV SWAP2 SWAP1 SWAP2 OR SWAP2 SWAP1 SWAP2 MUL SWAP2 POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x5 DUP5 PUSH1 0xFF AND GT ISZERO PUSH2 0x2FDD JUMPI PUSH2 0x2FDA DUP6 PUSH1 0xFF PUSH1 0x4 NOT DUP8 ADD AND PUSH1 0xA EXP PUSH2 0xC14 JUMP JUMPDEST SWAP5 POP JUMPDEST PUSH1 0x0 PUSH1 0x4 PUSH1 0xA DUP8 MOD GT SWAP1 POP PUSH2 0x2FF3 DUP7 PUSH1 0xA PUSH2 0xC14 JUMP JUMPDEST SWAP6 POP DUP1 ISZERO PUSH2 0x3002 JUMPI DUP6 PUSH1 0x1 ADD SWAP6 POP JUMPDEST DUP6 PUSH3 0x186A0 EQ ISZERO PUSH2 0x3018 JUMPI PUSH1 0xA DUP7 DIV SWAP6 POP PUSH1 0x1 SWAP2 POP JUMPDEST POP DUP5 SWAP3 POP SWAP1 POP JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP3 PUSH1 0x2 SIGNEXTEND DUP6 DUP6 SUB PUSH1 0x2 SIGNEXTEND DUP2 PUSH2 0x303B JUMPI INVALID JUMPDEST SDIV SWAP1 POP PUSH1 0x4 DUP2 PUSH1 0x2 SIGNEXTEND SGT PUSH2 0x3086 JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1A DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x4D31203143343120343120313035203130352031343520313435000000000000 DUP2 MSTORE POP SWAP2 POP PUSH2 0x1A71 JUMP JUMPDEST PUSH1 0x8 DUP2 PUSH1 0x2 SIGNEXTEND SGT PUSH2 0x30CE JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x19 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x4D31203143333320343920393720313133203134352031343500000000000000 DUP2 MSTORE POP SWAP2 POP PUSH2 0x1A71 JUMP JUMPDEST PUSH1 0x10 DUP2 PUSH1 0x2 SIGNEXTEND SGT PUSH2 0x3116 JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x19 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x4D31203143333320353720383920313133203134352031343500000000000000 DUP2 MSTORE POP SWAP2 POP PUSH2 0x1A71 JUMP JUMPDEST PUSH1 0x20 DUP2 PUSH1 0x2 SIGNEXTEND SGT PUSH2 0x315E JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x19 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x4D31203143323520363520383120313231203134352031343500000000000000 DUP2 MSTORE POP SWAP2 POP PUSH2 0x1A71 JUMP JUMPDEST PUSH1 0x40 DUP2 PUSH1 0x2 SIGNEXTEND SGT PUSH2 0x31A6 JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x19 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x4D31203143313720373320373320313239203134352031343500000000000000 DUP2 MSTORE POP SWAP2 POP PUSH2 0x1A71 JUMP JUMPDEST PUSH1 0x80 DUP2 PUSH1 0x2 SIGNEXTEND SGT PUSH2 0x31EE JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x18 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x4D31203143392038312036352031333720313435203134350000000000000000 DUP2 MSTORE POP SWAP2 POP PUSH2 0x1A71 JUMP JUMPDEST PUSH2 0x100 DUP2 PUSH1 0x2 SIGNEXTEND SGT PUSH2 0x3237 JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1A DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x4D31203143312038392035372E35203134352031343520313435000000000000 DUP2 MSTORE POP SWAP2 POP PUSH2 0x1A71 JUMP JUMPDEST POP POP PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x18 DUP2 MSTORE PUSH32 0x4D31203143312039372034392031343520313435203134350000000000000000 PUSH1 0x20 DUP3 ADD MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD DUP3 MSTORE PUSH1 0x2 DUP2 MSTORE PUSH32 0x3733000000000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP1 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP3 MLOAD DUP1 DUP5 ADD DUP5 MSTORE PUSH1 0x3 DUP1 DUP3 MSTORE PUSH32 0x3139300000000000000000000000000000000000000000000000000000000000 DUP3 DUP5 ADD MSTORE DUP5 MLOAD DUP1 DUP7 ADD DUP7 MSTORE DUP2 DUP2 MSTORE PUSH32 0x3231370000000000000000000000000000000000000000000000000000000000 DUP2 DUP6 ADD MSTORE DUP6 MLOAD DUP1 DUP8 ADD SWAP1 SWAP7 MSTORE SWAP1 DUP6 MSTORE PUSH32 0x3333340000000000000000000000000000000000000000000000000000000000 SWAP3 DUP6 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x60 SWAP4 SWAP1 SWAP2 SWAP1 PUSH1 0x1 PUSH1 0x0 DUP8 SWAP1 SIGNEXTEND EQ DUP1 PUSH2 0x335B JUMPI POP DUP6 PUSH1 0x0 SIGNEXTEND PUSH1 0x0 NOT EQ JUMPDEST ISZERO PUSH2 0x3552 JUMPI DUP6 PUSH1 0x0 SIGNEXTEND PUSH1 0x0 NOT EQ PUSH2 0x3372 JUMPI DUP2 PUSH2 0x3374 JUMP JUMPDEST DUP4 JUMPDEST DUP7 PUSH1 0x0 SIGNEXTEND PUSH1 0x0 NOT EQ PUSH2 0x3386 JUMPI DUP2 PUSH2 0x3388 JUMP JUMPDEST DUP4 JUMPDEST DUP8 PUSH1 0x0 SIGNEXTEND PUSH1 0x0 NOT EQ PUSH2 0x339A JUMPI DUP4 PUSH2 0x339C JUMP JUMPDEST DUP6 JUMPDEST DUP9 PUSH1 0x0 SIGNEXTEND PUSH1 0x0 NOT EQ PUSH2 0x33AE JUMPI DUP4 PUSH2 0x33B0 JUMP JUMPDEST DUP6 JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD DUP1 DUP1 PUSH12 0x1E31B4B931B6329031BC1E91 PUSH1 0xA1 SHL DUP2 MSTORE POP PUSH1 0xC ADD DUP6 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x33F9 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x33DA JUMP JUMPDEST MLOAD DUP2 MLOAD PUSH1 0x20 SWAP4 DUP5 SUB PUSH2 0x100 EXP PUSH1 0x0 NOT ADD DUP1 NOT SWAP1 SWAP3 AND SWAP2 AND OR SWAP1 MSTORE PUSH8 0x383C111031BC9E91 PUSH1 0xC1 SHL SWAP2 SWAP1 SWAP4 ADD SWAP1 DUP2 MSTORE DUP7 MLOAD PUSH1 0x8 SWAP1 SWAP2 ADD SWAP3 DUP8 ADD SWAP2 POP DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x3455 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x3436 JUMP JUMPDEST PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP3 MLOAD AND DUP2 DUP5 MLOAD AND DUP1 DUP3 OR DUP6 MSTORE POP POP POP POP POP POP SWAP1 POP ADD DUP1 PUSH2 0x5192 PUSH1 0x27 SWAP2 CODECOPY PUSH1 0x27 ADD DUP4 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x34AD JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x348E JUMP JUMPDEST MLOAD DUP2 MLOAD PUSH1 0x20 SWAP4 DUP5 SUB PUSH2 0x100 EXP PUSH1 0x0 NOT ADD DUP1 NOT SWAP1 SWAP3 AND SWAP2 AND OR SWAP1 MSTORE PUSH8 0x383C111031BC9E91 PUSH1 0xC1 SHL SWAP2 SWAP1 SWAP4 ADD SWAP1 DUP2 MSTORE DUP5 MLOAD PUSH1 0x8 SWAP1 SWAP2 ADD SWAP3 DUP6 ADD SWAP2 POP DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x3509 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x34EA JUMP JUMPDEST PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP3 MLOAD AND DUP2 DUP5 MLOAD AND DUP1 DUP3 OR DUP6 MSTORE POP POP POP POP POP POP SWAP1 POP ADD DUP1 PUSH2 0x541B PUSH1 0x2A SWAP2 CODECOPY PUSH1 0x2A ADD SWAP5 POP POP POP POP POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP5 POP PUSH2 0x373F JUMP JUMPDEST DUP4 DUP4 DUP4 DUP4 PUSH1 0x40 MLOAD PUSH1 0x20 ADD DUP1 DUP1 PUSH12 0x1E31B4B931B6329031BC1E91 PUSH1 0xA1 SHL DUP2 MSTORE POP PUSH1 0xC ADD DUP6 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x359F JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x3580 JUMP JUMPDEST MLOAD DUP2 MLOAD PUSH1 0x20 SWAP4 DUP5 SUB PUSH2 0x100 EXP PUSH1 0x0 NOT ADD DUP1 NOT SWAP1 SWAP3 AND SWAP2 AND OR SWAP1 MSTORE PUSH8 0x383C111031BC9E91 PUSH1 0xC1 SHL SWAP2 SWAP1 SWAP4 ADD SWAP1 DUP2 MSTORE DUP7 MLOAD PUSH1 0x8 SWAP1 SWAP2 ADD SWAP3 DUP8 ADD SWAP2 POP DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x35FB JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x35DC JUMP JUMPDEST MLOAD DUP2 MLOAD PUSH1 0x20 SWAP4 DUP5 SUB PUSH2 0x100 EXP PUSH1 0x0 NOT ADD DUP1 NOT SWAP1 SWAP3 AND SWAP2 AND OR SWAP1 MSTORE PUSH32 0x70782220723D22347078222066696C6C3D22776869746522202F3E0000000000 SWAP2 SWAP1 SWAP4 ADD SWAP1 DUP2 MSTORE PUSH12 0x1E31B4B931B6329031BC1E91 PUSH1 0xA1 SHL PUSH1 0x1B DUP3 ADD MSTORE DUP6 MLOAD PUSH1 0x27 SWAP1 SWAP2 ADD SWAP3 DUP7 ADD SWAP2 POP DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x3681 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x3662 JUMP JUMPDEST MLOAD DUP2 MLOAD PUSH1 0x20 SWAP4 DUP5 SUB PUSH2 0x100 EXP PUSH1 0x0 NOT ADD DUP1 NOT SWAP1 SWAP3 AND SWAP2 AND OR SWAP1 MSTORE PUSH8 0x383C111031BC9E91 PUSH1 0xC1 SHL SWAP2 SWAP1 SWAP4 ADD SWAP1 DUP2 MSTORE DUP5 MLOAD PUSH1 0x8 SWAP1 SWAP2 ADD SWAP3 DUP6 ADD SWAP2 POP DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x36DD JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x36BE JUMP JUMPDEST PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP3 MLOAD AND DUP2 DUP5 MLOAD AND DUP1 DUP3 OR DUP6 MSTORE POP POP POP POP POP POP SWAP1 POP ADD DUP1 PUSH32 0x70782220723D22347078222066696C6C3D22776869746522202F3E0000000000 DUP2 MSTORE POP PUSH1 0x1B ADD SWAP5 POP POP POP POP POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP5 POP JUMPDEST POP POP POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP SWAP1 POP PUSH1 0x0 DUP4 PUSH1 0x2 SIGNEXTEND SLT ISZERO PUSH2 0x378E JUMPI DUP3 PUSH1 0x0 NOT MUL SWAP3 POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x2D PUSH1 0xF8 SHL DUP2 MSTORE POP SWAP1 POP JUMPDEST DUP1 PUSH2 0x379B DUP5 PUSH1 0x2 SIGNEXTEND PUSH2 0x68C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD DUP1 DUP4 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x37CD JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x37AE JUMP JUMPDEST MLOAD DUP2 MLOAD PUSH1 0x20 SWAP4 DUP5 SUB PUSH2 0x100 EXP PUSH1 0x0 NOT ADD DUP1 NOT SWAP1 SWAP3 AND SWAP2 AND OR SWAP1 MSTORE DUP6 MLOAD SWAP2 SWAP1 SWAP4 ADD SWAP3 DUP6 ADD SWAP2 POP DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x3815 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x37F6 JUMP JUMPDEST PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP3 MLOAD AND DUP2 DUP5 MLOAD AND DUP1 DUP3 OR DUP6 MSTORE POP POP POP POP POP POP SWAP1 POP ADD SWAP3 POP POP POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 DUP1 PUSH1 0x0 PUSH1 0x2 DUP6 DUP6 ADD DUP2 SIGNEXTEND SDIV SWAP1 POP PUSH3 0x1E847 NOT DUP2 PUSH1 0x2 SIGNEXTEND SLT ISZERO PUSH2 0x38CA JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x7 PUSH1 0xFB SHL DUP2 MSTORE POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x3700000000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP SWAP3 POP SWAP3 POP POP PUSH2 0x301F JUMP JUMPDEST PUSH3 0x124F7 NOT DUP2 PUSH1 0x2 SIGNEXTEND SLT ISZERO PUSH2 0x3933 JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x7 PUSH1 0xFB SHL DUP2 MSTORE POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x4 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x31302E3500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP SWAP3 POP SWAP3 POP POP PUSH2 0x301F JUMP JUMPDEST PUSH2 0x61A7 NOT DUP2 PUSH1 0x2 SIGNEXTEND SLT ISZERO PUSH2 0x399B JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x7 PUSH1 0xFB SHL DUP2 MSTORE POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x5 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x31342E3235000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP SWAP3 POP SWAP3 POP POP PUSH2 0x301F JUMP JUMPDEST PUSH2 0x1387 NOT DUP2 PUSH1 0x2 SIGNEXTEND SLT ISZERO PUSH2 0x3A04 JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x2 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x3130000000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x2 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x627 PUSH1 0xF3 SHL DUP2 MSTORE POP SWAP3 POP SWAP3 POP POP PUSH2 0x301F JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x2 SIGNEXTEND SLT ISZERO PUSH2 0x3A6B JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x2 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x3131000000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x2 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x3231 PUSH1 0xF0 SHL DUP2 MSTORE POP SWAP3 POP SWAP3 POP POP PUSH2 0x301F JUMP JUMPDEST PUSH2 0x1388 DUP2 PUSH1 0x2 SIGNEXTEND SLT ISZERO PUSH2 0x3AEE JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x2 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x3133000000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x2 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x3233000000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP SWAP3 POP SWAP3 POP POP PUSH2 0x301F JUMP JUMPDEST PUSH2 0x61A8 DUP2 PUSH1 0x2 SIGNEXTEND SLT ISZERO PUSH2 0x3B71 JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x2 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x3135000000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x2 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x3235000000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP SWAP3 POP SWAP3 POP POP PUSH2 0x301F JUMP JUMPDEST PUSH3 0x124F8 DUP2 PUSH1 0x2 SIGNEXTEND SLT ISZERO PUSH2 0x3BDA JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x2 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x627 PUSH1 0xF3 SHL DUP2 MSTORE POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x2 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x3236000000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP SWAP3 POP SWAP3 POP POP PUSH2 0x301F JUMP JUMPDEST PUSH3 0x1E848 DUP2 PUSH1 0x2 SIGNEXTEND SLT ISZERO PUSH2 0x3C28 JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x2 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x3231 PUSH1 0xF0 SHL DUP2 MSTORE POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x2 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x3237 PUSH1 0xF0 SHL DUP2 MSTORE POP SWAP3 POP SWAP3 POP POP PUSH2 0x301F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x2 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x3234000000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x2 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x3237 PUSH1 0xF0 SHL DUP2 MSTORE POP SWAP3 POP SWAP3 POP POP PUSH2 0x301F JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP1 DUP3 ADD DUP6 SWAP1 MSTORE PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF NOT PUSH1 0x60 DUP6 SWAP1 SHL AND DUP3 DUP5 ADD MSTORE DUP3 MLOAD PUSH1 0x34 DUP2 DUP5 SUB ADD DUP2 MSTORE PUSH1 0x54 SWAP1 SWAP3 ADD SWAP1 SWAP3 MSTORE DUP1 MLOAD SWAP2 ADD KECCAK256 PUSH1 0x0 SWAP1 PUSH2 0x3CCA DUP5 PUSH2 0x3D62 JUMP JUMPDEST PUSH1 0x2 MUL PUSH1 0x1 ADD PUSH1 0xFF AND PUSH1 0x0 NOT DUP2 PUSH2 0x3CDD JUMPI INVALID JUMPDEST DIV GT SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 SUB DUP2 DUP4 SLT DUP1 ISZERO SWAP1 PUSH2 0x3CFB JUMPI POP DUP4 DUP2 SGT ISZERO JUMPDEST DUP1 PUSH2 0x3D10 JUMPI POP PUSH1 0x0 DUP4 SLT DUP1 ISZERO PUSH2 0x3D10 JUMPI POP DUP4 DUP2 SGT JUMPDEST PUSH2 0x685 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x24 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x5D71 PUSH1 0x24 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP3 SLT ISZERO PUSH2 0x3D5E JUMPI DUP2 PUSH1 0x0 SUB PUSH2 0x486 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 GT PUSH2 0x3D70 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x80 SHL DUP3 LT PUSH2 0x3D83 JUMPI PUSH1 0x80 SWAP2 DUP3 SHR SWAP2 ADD JUMPDEST PUSH9 0x10000000000000000 DUP3 LT PUSH2 0x3D9B JUMPI PUSH1 0x40 SWAP2 DUP3 SHR SWAP2 ADD JUMPDEST PUSH5 0x100000000 DUP3 LT PUSH2 0x3DAF JUMPI PUSH1 0x20 SWAP2 DUP3 SHR SWAP2 ADD JUMPDEST PUSH3 0x10000 DUP3 LT PUSH2 0x3DC1 JUMPI PUSH1 0x10 SWAP2 DUP3 SHR SWAP2 ADD JUMPDEST PUSH2 0x100 DUP3 LT PUSH2 0x3DD2 JUMPI PUSH1 0x8 SWAP2 DUP3 SHR SWAP2 ADD JUMPDEST PUSH1 0x10 DUP3 LT PUSH2 0x3DE2 JUMPI PUSH1 0x4 SWAP2 DUP3 SHR SWAP2 ADD JUMPDEST PUSH1 0x4 DUP3 LT PUSH2 0x3DF2 JUMPI PUSH1 0x2 SWAP2 DUP3 SHR SWAP2 ADD JUMPDEST PUSH1 0x2 DUP3 LT PUSH2 0x16B JUMPI PUSH1 0x1 ADD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH2 0x100 DUP2 ADD DUP3 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP2 SWAP1 MSTORE SWAP2 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x60 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x80 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0xA0 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0xC0 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0xE0 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP1 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x16B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x16B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH1 0x2 DUP2 SWAP1 SIGNEXTEND DUP2 EQ PUSH2 0x16B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x3E8F JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3EA3 JUMPI INVALID JUMPDEST PUSH2 0x3EB6 PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD PUSH2 0x467D JUMP JUMPDEST DUP2 DUP2 MSTORE DUP5 PUSH1 0x20 DUP4 DUP7 ADD ADD GT ISZERO PUSH2 0x3ECA JUMPI DUP3 DUP4 REVERT JUMPDEST DUP2 PUSH1 0x20 DUP6 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY SWAP1 DUP2 ADD PUSH1 0x20 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH3 0xFFFFFF DUP2 AND DUP2 EQ PUSH2 0x16B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH1 0xFF DUP2 AND DUP2 EQ PUSH2 0x16B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3F19 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x3F30 JUMPI DUP3 DUP4 REVERT JUMPDEST DUP2 DUP5 ADD SWAP2 POP PUSH2 0x1C0 DUP1 DUP4 DUP8 SUB SLT ISZERO PUSH2 0x3F46 JUMPI DUP4 DUP5 REVERT JUMPDEST PUSH2 0x3F4F DUP2 PUSH2 0x467D JUMP JUMPDEST SWAP1 POP DUP3 CALLDATALOAD DUP2 MSTORE PUSH2 0x3F61 PUSH1 0x20 DUP5 ADD PUSH2 0x3E46 JUMP JUMPDEST PUSH1 0x20 DUP3 ADD MSTORE PUSH2 0x3F72 PUSH1 0x40 DUP5 ADD PUSH2 0x3E46 JUMP JUMPDEST PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 DUP4 ADD CALLDATALOAD DUP3 DUP2 GT ISZERO PUSH2 0x3F88 JUMPI DUP5 DUP6 REVERT JUMPDEST PUSH2 0x3F94 DUP8 DUP3 DUP7 ADD PUSH2 0x3E7F JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP PUSH1 0x80 DUP4 ADD CALLDATALOAD DUP3 DUP2 GT ISZERO PUSH2 0x3FAB JUMPI DUP5 DUP6 REVERT JUMPDEST PUSH2 0x3FB7 DUP8 DUP3 DUP7 ADD PUSH2 0x3E7F JUMP JUMPDEST PUSH1 0x80 DUP4 ADD MSTORE POP PUSH2 0x3FC9 PUSH1 0xA0 DUP5 ADD PUSH2 0x3EF7 JUMP JUMPDEST PUSH1 0xA0 DUP3 ADD MSTORE PUSH2 0x3FDA PUSH1 0xC0 DUP5 ADD PUSH2 0x3EF7 JUMP JUMPDEST PUSH1 0xC0 DUP3 ADD MSTORE PUSH2 0x3FEB PUSH1 0xE0 DUP5 ADD PUSH2 0x3E5D JUMP JUMPDEST PUSH1 0xE0 DUP3 ADD MSTORE PUSH2 0x100 SWAP2 POP PUSH2 0x4000 DUP3 DUP5 ADD PUSH2 0x3E6D JUMP JUMPDEST DUP3 DUP3 ADD MSTORE PUSH2 0x120 SWAP2 POP PUSH2 0x4014 DUP3 DUP5 ADD PUSH2 0x3E6D JUMP JUMPDEST DUP3 DUP3 ADD MSTORE PUSH2 0x140 SWAP2 POP PUSH2 0x4028 DUP3 DUP5 ADD PUSH2 0x3E6D JUMP JUMPDEST DUP3 DUP3 ADD MSTORE PUSH2 0x160 SWAP2 POP PUSH2 0x403C DUP3 DUP5 ADD PUSH2 0x3E6D JUMP JUMPDEST DUP3 DUP3 ADD MSTORE PUSH2 0x180 SWAP2 POP PUSH2 0x4050 DUP3 DUP5 ADD PUSH2 0x3EE4 JUMP JUMPDEST DUP3 DUP3 ADD MSTORE PUSH2 0x1A0 SWAP2 POP PUSH2 0x4064 DUP3 DUP5 ADD PUSH2 0x3E46 JUMP JUMPDEST SWAP2 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD PUSH2 0x4085 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x46A1 JUMP JUMPDEST SWAP3 SWAP1 SWAP3 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH32 0xE29AA0EFB88F20444953434C41494D45523A204475652064696C6967656E6365 DUP2 MSTORE PUSH32 0x20697320696D7065726174697665207768656E20617373657373696E67207468 PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x6973204E46542E204D616B65207375726520746F6B656E206164647265737365 PUSH1 0x40 DUP3 ADD MSTORE PUSH32 0x73206D617463682074686520657870656374656420746F6B656E732C20617320 PUSH1 0x60 DUP3 ADD MSTORE PUSH32 0x746F6B656E2073796D626F6C73206D617920626520696D6974617465642E0000 PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0x9E ADD SWAP1 JUMP JUMPDEST PUSH32 0x5C6E5C6E00000000000000000000000000000000000000000000000000000000 DUP2 MSTORE PUSH1 0x4 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH32 0x7B226E616D65223A220000000000000000000000000000000000000000000000 DUP3 MSTORE DUP6 MLOAD PUSH2 0x41B1 DUP2 PUSH1 0x9 DUP6 ADD PUSH1 0x20 DUP11 ADD PUSH2 0x46A1 JUMP JUMPDEST PUSH32 0x222C20226465736372697074696F6E223A220000000000000000000000000000 PUSH1 0x9 SWAP2 DUP5 ADD SWAP2 DUP3 ADD MSTORE DUP6 MLOAD PUSH2 0x41EE DUP2 PUSH1 0x1B DUP5 ADD PUSH1 0x20 DUP11 ADD PUSH2 0x46A1 JUMP JUMPDEST DUP6 MLOAD SWAP2 ADD SWAP1 PUSH2 0x4204 DUP2 PUSH1 0x1B DUP5 ADD PUSH1 0x20 DUP10 ADD PUSH2 0x46A1 JUMP JUMPDEST PUSH32 0x222C2022696D616765223A202200000000000000000000000000000000000000 PUSH1 0x1B SWAP3 SWAP1 SWAP2 ADD SWAP2 DUP3 ADD MSTORE PUSH32 0x646174613A696D6167652F7376672B786D6C3B6261736536342C000000000000 PUSH1 0x28 DUP3 ADD MSTORE DUP4 MLOAD PUSH2 0x4268 DUP2 PUSH1 0x42 DUP5 ADD PUSH1 0x20 DUP9 ADD PUSH2 0x46A1 JUMP JUMPDEST PUSH32 0x227D000000000000000000000000000000000000000000000000000000000000 PUSH1 0x42 SWAP3 SWAP1 SWAP2 ADD SWAP2 DUP3 ADD MSTORE PUSH1 0x44 ADD SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH32 0x4173747261202D20000000000000000000000000000000000000000000000000 DUP3 MSTORE DUP7 MLOAD PUSH2 0x42D8 DUP2 PUSH1 0x8 DUP6 ADD PUSH1 0x20 DUP12 ADD PUSH2 0x46A1 JUMP JUMPDEST DUP1 DUP4 ADD SWAP1 POP PUSH32 0x202D200000000000000000000000000000000000000000000000000000000000 DUP1 PUSH1 0x8 DUP4 ADD MSTORE DUP8 MLOAD PUSH2 0x4317 DUP2 PUSH1 0xB DUP6 ADD PUSH1 0x20 DUP13 ADD PUSH2 0x46A1 JUMP JUMPDEST PUSH1 0x2F PUSH1 0xF8 SHL PUSH1 0xB SWAP4 SWAP1 SWAP2 ADD SWAP3 DUP4 ADD MSTORE DUP7 MLOAD PUSH2 0x4339 DUP2 PUSH1 0xC DUP6 ADD PUSH1 0x20 DUP12 ADD PUSH2 0x46A1 JUMP JUMPDEST PUSH1 0xC SWAP3 ADD SWAP2 DUP3 ADD MSTORE DUP5 MLOAD PUSH2 0x4354 DUP2 PUSH1 0xF DUP5 ADD PUSH1 0x20 DUP10 ADD PUSH2 0x46A1 JUMP JUMPDEST PUSH32 0x3C3E000000000000000000000000000000000000000000000000000000000000 PUSH1 0xF SWAP3 SWAP1 SWAP2 ADD SWAP2 DUP3 ADD MSTORE DUP4 MLOAD PUSH2 0x4392 DUP2 PUSH1 0x11 DUP5 ADD PUSH1 0x20 DUP9 ADD PUSH2 0x46A1 JUMP JUMPDEST ADD PUSH1 0x11 ADD SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH32 0x20416464726573733A2000000000000000000000000000000000000000000000 DUP1 DUP4 MSTORE DUP8 MLOAD PUSH2 0x43DA DUP2 PUSH1 0xA DUP7 ADD PUSH1 0x20 DUP13 ADD PUSH2 0x46A1 JUMP JUMPDEST PUSH2 0x2E37 PUSH1 0xF1 SHL PUSH1 0xA SWAP2 DUP6 ADD SWAP2 DUP3 ADD MSTORE DUP8 MLOAD PUSH2 0x43FC DUP2 PUSH1 0xC DUP5 ADD PUSH1 0x20 DUP13 ADD PUSH2 0x46A1 JUMP JUMPDEST ADD PUSH1 0xC DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP6 MLOAD SWAP1 PUSH2 0x4419 DUP3 PUSH1 0x16 DUP4 ADD PUSH1 0x20 DUP11 ADD PUSH2 0x46A1 JUMP JUMPDEST DUP2 DUP2 ADD SWAP2 POP POP PUSH32 0x5C6E46656520546965723A200000000000000000000000000000000000000000 PUSH1 0x16 DUP3 ADD MSTORE DUP5 MLOAD PUSH2 0x4458 DUP2 PUSH1 0x22 DUP5 ADD PUSH1 0x20 DUP10 ADD PUSH2 0x46A1 JUMP JUMPDEST PUSH32 0x5C6E546F6B656E2049443A200000000000000000000000000000000000000000 PUSH1 0x22 SWAP3 SWAP1 SWAP2 ADD SWAP2 DUP3 ADD MSTORE DUP4 MLOAD PUSH2 0x4496 DUP2 PUSH1 0x2E DUP5 ADD PUSH1 0x20 DUP9 ADD PUSH2 0x46A1 JUMP JUMPDEST PUSH2 0x44AC PUSH2 0x44A7 PUSH1 0x2E DUP4 DUP6 ADD ADD PUSH2 0x4150 JUMP JUMPDEST PUSH2 0x408F JUMP JUMPDEST SWAP10 SWAP9 POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH32 0x54686973204E465420726570726573656E74732061206C697175696469747920 DUP3 MSTORE PUSH32 0x706F736974696F6E20696E206120417374726144455820434C20000000000000 PUSH1 0x20 DUP4 ADD MSTORE DUP6 MLOAD PUSH2 0x4517 DUP2 PUSH1 0x3A DUP6 ADD PUSH1 0x20 DUP11 ADD PUSH2 0x46A1 JUMP JUMPDEST PUSH1 0x2D PUSH1 0xF8 SHL PUSH1 0x3A SWAP2 DUP5 ADD SWAP2 DUP3 ADD MSTORE DUP6 MLOAD PUSH2 0x4538 DUP2 PUSH1 0x3B DUP5 ADD PUSH1 0x20 DUP11 ADD PUSH2 0x46A1 JUMP JUMPDEST PUSH32 0x20706F6F6C2E2000000000000000000000000000000000000000000000000000 PUSH1 0x3B SWAP3 SWAP1 SWAP2 ADD SWAP2 DUP3 ADD MSTORE PUSH32 0x546865206F776E6572206F662074686973204E46542063616E206D6F64696679 PUSH1 0x42 DUP3 ADD MSTORE PUSH32 0x206F722072656465656D2074686520706F736974696F6E2E5C6E000000000000 PUSH1 0x62 DUP3 ADD MSTORE PUSH32 0x5C6E506F6F6C20416464726573733A2000000000000000000000000000000000 PUSH1 0x7C DUP3 ADD MSTORE DUP5 MLOAD PUSH2 0x45E8 DUP2 PUSH1 0x8C DUP5 ADD PUSH1 0x20 DUP10 ADD PUSH2 0x46A1 JUMP JUMPDEST PUSH2 0x2E37 PUSH1 0xF1 SHL PUSH1 0x8C SWAP3 SWAP1 SWAP2 ADD SWAP2 DUP3 ADD MSTORE PUSH2 0x3C6 PUSH1 0x8E DUP3 ADD DUP6 PUSH2 0x4073 JUMP JUMPDEST PUSH1 0x0 PUSH32 0x646174613A6170706C69636174696F6E2F6A736F6E3B6261736536342C000000 DUP3 MSTORE DUP3 MLOAD PUSH2 0x463D DUP2 PUSH1 0x1D DUP6 ADD PUSH1 0x20 DUP8 ADD PUSH2 0x46A1 JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD PUSH1 0x1D ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 MSTORE DUP3 MLOAD DUP1 PUSH1 0x20 DUP5 ADD MSTORE PUSH2 0x4669 DUP2 PUSH1 0x40 DUP6 ADD PUSH1 0x20 DUP8 ADD PUSH2 0x46A1 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP2 SWAP1 SWAP2 ADD PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD DUP2 DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x4699 JUMPI INVALID JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x46BC JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x46A4 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x46CB JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP INVALID KECCAK256 EXTCODECOPY PUSH2 0x6E69 PUSH14 0x6174652061646469746976653D22 PUSH20 0x756D22206174747269627574654E616D653D2273 PUSH21 0x6172744F6666736574222066726F6D3D2230252220 PUSH21 0x6F3D22313030252220626567696E3D223073222064 PUSH22 0x723D223330732220726570656174436F756E743D2269 PUSH15 0x646566696E69746522202F3E3C2F74 PUSH6 0x787450617468 RETURNDATACOPY EXTCODECOPY 0x2F PUSH21 0x6578743E3C73746F70206F66667365743D222E3922 KECCAK256 PUSH20 0x746F702D636F6C6F723D22776869746522207374 PUSH16 0x702D6F7061636974793D223022202F3E EXTCODECOPY 0x2F PUSH13 0x696E6561724772616469656E74 RETURNDATACOPY EXTCODECOPY PUSH19 0x656374207374796C653D2266696C7465723A20 PUSH22 0x726C28236631292220783D223070782220793D223070 PUSH25 0x222077696474683D22323930707822206865696768743D2235 ADDRESS ADDRESS PUSH17 0x7822202F3E3C6665496D61676520726573 PUSH22 0x6C743D2270332220786C696E6B3A687265663D226461 PUSH21 0x613A696D6167652F7376672B786D6C3B6261736536 CALLVALUE 0x2C EXTCODECOPY PUSH8 0x206D61736B3D2275 PUSH19 0x6C2823666164652D73796D626F6C29223E3C72 PUSH6 0x63742066696C PUSH13 0x3D226E6F6E652220783D223070 PUSH25 0x2220793D22307078222077696474683D223239307078222068 PUSH6 0x696768743D22 ORIGIN ADDRESS ADDRESS PUSH17 0x7822202F3E203C7465787420793D223730 PUSH17 0x782220783D2233327078222066696C6C3D 0x22 PUSH24 0x686974652220666F6E742D66616D696C793D2227436F7572 PUSH10 0x6572204E6577272C206D PUSH16 0x6E6F73706163652220666F6E742D7765 PUSH10 0x6768743D223230302220 PUSH7 0x6F6E742D73697A PUSH6 0x3D2233367078 0x22 RETURNDATACOPY EXTCODECOPY PUSH20 0x76672077696474683D2232393022206865696768 PUSH21 0x3D22353030222076696577426F783D223020302032 CODECOPY ADDRESS KECCAK256 CALLDATALOAD ADDRESS ADDRESS 0x22 KECCAK256 PUSH25 0x6D6C6E733D22687474703A2F2F7777772E77332E6F72672F32 ADDRESS ADDRESS ADDRESS 0x2F PUSH20 0x76672270782C2030707829222063783D22307078 0x22 KECCAK256 PUSH4 0x793D2230 PUSH17 0x782220723D22347078222066696C6C3D22 PUSH24 0x68697465222F3E3C2F673E203C616E696D61746520616464 PUSH10 0x746976653D2273756D22 KECCAK256 PUSH2 0x7474 PUSH19 0x69627574654E616D653D2273746172744F6666 PUSH20 0x6574222066726F6D3D2230252220746F3D223130 ADDRESS 0x25 0x22 KECCAK256 PUSH3 0x656769 PUSH15 0x3D22307322206475723D2233307322 KECCAK256 PUSH19 0x6570656174436F756E743D22696E646566696E PUSH10 0x746522202F3E203C2F74 PUSH6 0x787450617468 RETURNDATACOPY EXTCODECOPY PUSH14 0x61736B2069643D22666164652D75 PUSH17 0x22206D61736B436F6E74656E74556E6974 PUSH20 0x3D226F626A656374426F756E64696E67426F7822 RETURNDATACOPY EXTCODECOPY PUSH19 0x6563742077696474683D223122206865696768 PUSH21 0x3D2231222066696C6C3D2275726C2823677261642D PUSH22 0x702922202F3E3C2F6D61736B3E22207374726F6B653D 0x22 PUSH19 0x67626128302C302C302C302E33292220737472 PUSH16 0x6B652D77696474683D22333270782220 PUSH7 0x696C6C3D226E6F PUSH15 0x6522207374726F6B652D6C696E6563 PUSH2 0x703D 0x22 PUSH19 0x6F756E6422202F3E203C616E696D6174652061 PUSH5 0x6469746976 PUSH6 0x3D2273756D22 KECCAK256 PUSH2 0x7474 PUSH19 0x69627574654E616D653D2273746172744F6666 PUSH20 0x6574222066726F6D3D2230252220746F3D223130 ADDRESS 0x25 0x22 KECCAK256 PUSH3 0x656769 PUSH15 0x3D22307322206475723D2233307322 KECCAK256 EXTCODECOPY PUSH8 0x207374796C653D22 PUSH21 0x72616E73666F726D3A7472616E736C617465283239 PUSH17 0x782C20343434707829223E3C636972636C PUSH6 0x207374796C65 RETURNDATASIZE 0x22 PUSH21 0x72616E73666F726D3A7472616E736C617465336428 EXTCODECOPY PUSH20 0x76672077696474683D2732393027206865696768 PUSH21 0x3D27353030272076696577426F783D273020302032 CODECOPY ADDRESS KECCAK256 CALLDATALOAD ADDRESS ADDRESS 0x27 KECCAK256 PUSH25 0x6D6C6E733D27687474703A2F2F7777772E77332E6F72672F32 ADDRESS ADDRESS ADDRESS 0x2F PUSH20 0x7667273E3C636972636C652063783D27203C6720 PUSH20 0x74796C653D2266696C7465723A75726C2823746F PUSH17 0x2D726567696F6E2D626C7572293B207472 PUSH2 0x6E73 PUSH7 0x6F726D3A736361 PUSH13 0x6528312E35293B207472616E73 PUSH7 0x6F726D2D6F7269 PUSH8 0x696E3A63656E7465 PUSH19 0x20746F703B223E22202F3E3C6665426C656E64 KECCAK256 PUSH14 0x6F64653D226F7665726C61792220 PUSH10 0x6E3D2270302220696E32 RETURNDATASIZE 0x22 PUSH17 0x3122202F3E3C6665426C656E64206D6F64 PUSH6 0x3D226578636C PUSH22 0x73696F6E2220696E323D22703222202F3E3C6665426C PUSH6 0x6E64206D6F64 PUSH6 0x3D226F766572 PUSH13 0x61792220696E323D2270332220 PUSH19 0x6573756C743D22626C656E644F757422202F3E EXTCODECOPY PUSH7 0x65476175737369 PUSH2 0x6E42 PUSH13 0x7572203C706174682069643D22 PUSH14 0x696E696D61702220643D224D3233 CALLVALUE KECCAK256 CALLVALUE CALLVALUE CALLVALUE NUMBER ORIGIN CALLER CALLVALUE KECCAK256 CALLVALUE CALLDATALOAD CALLDATACOPY 0x2E CODECOPY CALLVALUE CODECOPY KECCAK256 ORIGIN CALLVALUE ORIGIN 0x2E ORIGIN BALANCE KECCAK256 CALLVALUE CALLDATASIZE CALLER KECCAK256 ORIGIN CALLDATALOAD CALLER KECCAK256 CALLVALUE CALLDATASIZE CALLER 0x22 KECCAK256 0x2F RETURNDATACOPY EXTCODECOPY PUSH14 0x61736B2069643D226E6F6E652220 PUSH14 0x61736B436F6E74656E74556E6974 PUSH20 0x3D226F626A656374426F756E64696E67426F7822 RETURNDATACOPY EXTCODECOPY PUSH19 0x6563742077696474683D223122206865696768 PUSH21 0x3D2231222066696C6C3D22776869746522202F3E3C 0x2F PUSH14 0x61736B3E2220783D223070782220 PUSH26 0x3D22307078222077696474683D22323930707822206865696768 PUSH21 0x3D22353030707822202F3E203C616E696D61746520 PUSH2 0x6464 PUSH10 0x746976653D2273756D22 KECCAK256 PUSH2 0x7474 PUSH19 0x69627574654E616D653D2273746172744F6666 PUSH20 0x6574222066726F6D3D2230252220746F3D223130 ADDRESS 0x25 0x22 KECCAK256 PUSH3 0x656769 PUSH15 0x3D22307322206475723D2233307322 KECCAK256 PUSH19 0x6570656174436F756E743D22696E646566696E PUSH10 0x746522202F3E3C746578 PUSH21 0x20783D22313270782220793D22313770782220666F PUSH15 0x742D66616D696C793D2227436F7572 PUSH10 0x6572204E6577272C206D PUSH16 0x6E6F73706163652220666F6E742D7369 PUSH27 0x653D2231327078222066696C6C3D227768697465223E3C74737061 PUSH15 0x2066696C6C3D227267626128323535 0x2C ORIGIN CALLDATALOAD CALLDATALOAD 0x2C ORIGIN CALLDATALOAD CALLDATALOAD 0x2C ADDRESS 0x2E CALLDATASIZE 0x29 0x22 RETURNDATACOPY 0x4D PUSH10 0x6E205469636B3A203C2F PUSH21 0x7370616E3E3C74657874506174682073746172744F PUSH7 0x667365743D222D BALANCE ADDRESS ADDRESS 0x25 0x22 KECCAK256 PUSH7 0x696C6C3D227768 PUSH10 0x74652220666F6E742D66 PUSH2 0x6D69 PUSH13 0x793D2227436F7572696572204E PUSH6 0x77272C206D6F PUSH15 0x6F73706163652220666F6E742D7369 PUSH27 0x653D22313070782220786C696E6B3A687265663D2223746578742D PUSH17 0x6174682D61223E3C6C696E656172477261 PUSH5 0x69656E7420 PUSH10 0x643D22677261642D646F PUSH24 0x6E222078313D2230222078323D2231222079313D22302220 PUSH26 0x323D2231223E3C73746F70206F66667365743D22302E30222073 PUSH21 0x6F702D636F6C6F723D227768697465222073746F70 0x2D PUSH16 0x7061636974793D223122202F3E3C7374 PUSH16 0x70206F66667365743D22302E39222073 PUSH21 0x6F702D636F6C6F723D227768697465222073746F70 0x2D PUSH16 0x7061636974793D223022202F3E3C2F6C PUSH10 0x6E656172477261646965 PUSH15 0x743E3C66696C7465722069643D2266 BALANCE 0x22 RETURNDATACOPY EXTCODECOPY PUSH7 0x65496D61676520 PUSH19 0x6573756C743D2270302220786C696E6B3A6872 PUSH6 0x663D22646174 PUSH2 0x3A69 PUSH14 0x6167652F7376672B786D6C3B6261 PUSH20 0x6536342C3C7376672077696474683D2732393027 KECCAK256 PUSH9 0x65696768743D273530 ADDRESS 0x27 KECCAK256 PUSH23 0x696577426F783D2730203020323930203530302720786D PUSH13 0x6E733D27687474703A2F2F7777 PUSH24 0x2E77332E6F72672F323030302F737667273E3C7265637420 PUSH24 0x696474683D27323930707827206865696768743D27353030 PUSH17 0x78272066696C6C3D2723222F3E3C666549 PUSH14 0x61676520726573756C743D227032 0x22 KECCAK256 PUSH25 0x6C696E6B3A687265663D22646174613A696D6167652F737667 0x2B PUSH25 0x6D6C3B6261736536342C3C656C6C697073652063783D223530 0x25 0x22 KECCAK256 PUSH4 0x793D2230 PUSH17 0x78222072783D223138307078222072793D 0x22 BALANCE ORIGIN ADDRESS PUSH17 0x78222066696C6C3D222330303022206F70 PUSH2 0x6369 PUSH21 0x793D22302E383522202F3E3C2F673E707822206865 PUSH10 0x6768743D223236707822 KECCAK256 PUSH19 0x783D22387078222072793D2238707822206669 PUSH13 0x6C3D227267626128302C302C30 0x2C ADDRESS 0x2E CALLDATASIZE 0x29 0x22 KECCAK256 0x2F RETURNDATACOPY PUSH17 0x782220723D22347078222066696C6C3D22 PUSH24 0x6869746522202F3E3C636972636C652063783D2231312E33 CALLVALUE CALLDATACOPY CODESIZE 0x4C ORIGIN CALLVALUE KECCAK256 BALANCE ORIGIN 0x4C BALANCE CALLVALUE 0x2E CALLVALUE CALLER CALLVALUE BALANCE KECCAK256 BALANCE ORIGIN 0x2E CALLDATASIZE CALLDATALOAD ORIGIN ORIGIN 0x4C ORIGIN ORIGIN 0x2E CALLER CODECOPY ORIGIN CALLER KECCAK256 BALANCE CODESIZE 0x4C BALANCE CALLER 0x2E CALLDATACOPY CODESIZE BALANCE CODECOPY KECCAK256 BALANCE CALLER 0x2E CALLDATACOPY CODESIZE BALANCE CODECOPY 0x4C BALANCE CODESIZE KECCAK256 ORIGIN ORIGIN 0x2E CALLER CODECOPY ORIGIN CALLER 0x4C BALANCE ORIGIN 0x2E CALLDATASIZE CALLDATALOAD ORIGIN ORIGIN KECCAK256 BALANCE CALLVALUE 0x2E CALLVALUE CALLER CALLVALUE BALANCE 0x4C BALANCE ORIGIN KECCAK256 ORIGIN CALLVALUE 0x4C BALANCE BALANCE 0x2E CALLER CALLVALUE CALLDATACOPY CODESIZE KECCAK256 BALANCE CALLVALUE 0x2E CALLVALUE CALLER CALLVALUE BALANCE 0x4C CALLDATASIZE KECCAK256 ORIGIN ORIGIN 0x2E CALLER CODECOPY EXTCODECOPY PUSH19 0x6563742066696C6C3D226E6F6E652220783D22 ADDRESS PUSH17 0x782220793D22307078222077696474683D 0x22 ORIGIN CODECOPY ADDRESS PUSH17 0x7822206865696768743D22353030707822 KECCAK256 0x2F RETURNDATACOPY COINBASE TIMESTAMP NUMBER DIFFICULTY GASLIMIT CHAINID SELFBALANCE 0x48 0x49 0x4A 0x4B 0x4C 0x4D 0x4E 0x4F POP MLOAD MSTORE MSTORE8 SLOAD SSTORE JUMP JUMPI PC MSIZE GAS PUSH2 0x6263 PUSH5 0x6566676869 PUSH11 0x6B6C6D6E6F707172737475 PUSH23 0x7778797A303132333435363738392B2F20786D6C6E733A PUSH25 0x6C696E6B3D27687474703A2F2F7777772E77332E6F72672F31 CODECOPY CODECOPY CODECOPY 0x2F PUSH25 0x6C696E6B273E3C6C696E6561724772616469656E742069643D 0x22 PUSH8 0x7261642D73796D62 PUSH16 0x6C223E3C73746F70206F66667365743D 0x22 ADDRESS 0x2E CALLDATACOPY 0x22 KECCAK256 PUSH20 0x746F702D636F6C6F723D22776869746522207374 PUSH16 0x702D6F7061636974793D223122202F3E EXTCODECOPY PUSH20 0x746F70206F66667365743D222E3935222073746F PUSH17 0x2D636F6C6F723D22776869746522207374 PUSH16 0x702D6F7061636974793D223022202F3E EXTCODECOPY 0x2F PUSH13 0x696E6561724772616469656E74 RETURNDATACOPY KECCAK256 PUSH20 0x74796C653D227472616E73666F726D3A7472616E PUSH20 0x6C61746528373270782C313839707829223E3C72 PUSH6 0x637420783D22 0x2D BALANCE CALLDATASIZE PUSH17 0x782220793D222D31367078222077696474 PUSH9 0x3D2231383070782220 PUSH9 0x65696768743D223138 ADDRESS PUSH17 0x78222066696C6C3D226E6F6E6522202F3E EXTCODECOPY PUSH17 0x61746820643D22207374796C653D227472 PUSH2 0x6E73 PUSH7 0x6F726D3A747261 PUSH15 0x736C61746528373270782C31383970 PUSH25 0x29223E70782220723D2232347078222066696C6C3D226E6F6E PUSH6 0x22207374726F PUSH12 0x653D22776869746522202F3E EXTCODECOPY PUSH19 0x65637420783D222D313670782220793D222D31 CALLDATASIZE PUSH17 0x78222077696474683D2231383070782220 PUSH9 0x65696768743D223138 ADDRESS PUSH17 0x78222066696C6C3D226E6F6E6522202F3E MSTORE8 PUSH2 0x6665 0x4D PUSH2 0x7468 GASPRICE KECCAK256 PUSH14 0x756C7469706C69636174696F6E20 PUSH16 0x766572666C6F773C673E3C7061746820 PUSH20 0x74796C653D227472616E73666F726D3A7472616E PUSH20 0x6C617465283670782C367078292220643D224D31 ORIGIN KECCAK256 ADDRESS 0x4C BALANCE ORIGIN 0x2E CALLDATASIZE CALLDATALOAD ORIGIN ORIGIN KECCAK256 CODECOPY 0x2E CALLDATALOAD CALLDATASIZE CALLDATALOAD CODESIZE CALLDATACOPY 0x4C BALANCE CODESIZE KECCAK256 BALANCE 0x2E CALLDATASIZE ADDRESS CALLDATACOPY CALLDATACOPY 0x4C BALANCE CALLER 0x2E CALLDATACOPY CODESIZE BALANCE CODECOPY KECCAK256 BALANCE ADDRESS 0x2E ORIGIN BALANCE CODESIZE BALANCE 0x4C ORIGIN ORIGIN 0x2E CALLER CODECOPY ORIGIN CALLER KECCAK256 CALLDATASIZE 0x4C BALANCE CALLVALUE 0x2E CALLVALUE CALLER CALLVALUE BALANCE KECCAK256 EXTCODECOPY PUSH17 0x617468207374726F6B652D6C696E656361 PUSH17 0x3D22726F756E642220643D224D38203943 CODESIZE 0x2E ADDRESS ADDRESS ADDRESS ADDRESS CALLVALUE KECCAK256 ORIGIN ORIGIN 0x2E CODECOPY CALLVALUE CODECOPY CALLVALUE KECCAK256 BALANCE CALLDATASIZE 0x2E ORIGIN ADDRESS CODECOPY CODECOPY KECCAK256 ORIGIN CODESIZE KECCAK256 ORIGIN CALLDATACOPY KECCAK256 ORIGIN CODESIZE 0x22 KECCAK256 PUSH7 0x696C6C3D226E6F PUSH15 0x6522207374726F6B653D2277686974 PUSH6 0x22202F3E2072 PUSH6 0x70656174436F PUSH22 0x6E743D22696E646566696E69746522202F3E3C2F7465 PUSH25 0x74506174683E3C74657874506174682073746172744F666673 PUSH6 0x743D222D3530 0x25 0x22 KECCAK256 PUSH7 0x696C6C3D227768 PUSH10 0x74652220666F6E742D66 PUSH2 0x6D69 PUSH13 0x793D2227436F7572696572204E PUSH6 0x77272C206D6F PUSH15 0x6F73706163652220666F6E742D7369 PUSH27 0x653D22313070782220786C696E6B3A687265663D2223746578742D PUSH17 0x6174682D61223E3C6D61736B2069643D22 PUSH7 0x6164652D646F77 PUSH15 0x22206D61736B436F6E74656E74556E PUSH10 0x74733D226F626A656374 TIMESTAMP PUSH16 0x756E64696E67426F78223E3C72656374 KECCAK256 PUSH24 0x696474683D223122206865696768743D2231222066696C6C RETURNDATASIZE 0x22 PUSH22 0x726C2823677261642D646F776E2922202F3E3C2F6D61 PUSH20 0x6B3E22207374726F6B653D227267626128323535 0x2C ORIGIN CALLDATALOAD CALLDATALOAD 0x2C ORIGIN CALLDATALOAD CALLDATALOAD 0x2C BALANCE 0x29 0x22 KECCAK256 PUSH7 0x696C6C3D226E6F PUSH15 0x6522207374726F6B652D6C696E6563 PUSH2 0x703D 0x22 PUSH19 0x6F756E6422202F3E3C2F673E696E3D22626C65 PUSH15 0x644F75742220737464446576696174 PUSH10 0x6F6E3D22343222202F3E EXTCODECOPY 0x2F PUSH7 0x696C7465723E20 EXTCODECOPY PUSH4 0x6C697050 PUSH2 0x7468 KECCAK256 PUSH10 0x643D22636F726E657273 0x22 RETURNDATACOPY EXTCODECOPY PUSH19 0x6563742077696474683D223239302220686569 PUSH8 0x68743D2235303022 KECCAK256 PUSH19 0x783D223432222072793D22343222202F3E3C2F PUSH4 0x6C697050 PUSH2 0x7468 RETURNDATACOPY KECCAK256 EXTCODECOPY PUSH8 0x207374796C653D22 PUSH21 0x72616E73666F726D3A7472616E736C617465283239 PUSH17 0x782C20333834707829223E3C6C696E6561 PUSH19 0x4772616469656E742069643D22677261642D75 PUSH17 0x222078313D2231222078323D2230222079 BALANCE RETURNDATASIZE 0x22 BALANCE 0x22 KECCAK256 PUSH26 0x323D2230223E3C73746F70206F66667365743D22302E30222073 PUSH21 0x6F702D636F6C6F723D227768697465222073746F70 0x2D PUSH16 0x7061636974793D223122202F3E32334C BALANCE ADDRESS 0x2E ORIGIN BALANCE CODESIZE BALANCE KECCAK256 BALANCE CALLER 0x2E CALLDATACOPY CODESIZE BALANCE CODECOPY 0x4C BALANCE 0x2E CALLDATASIZE ADDRESS CALLDATACOPY CALLDATACOPY KECCAK256 BALANCE CODESIZE 0x4C CODECOPY 0x2E CALLDATALOAD CALLDATASIZE CALLDATALOAD CODESIZE CALLDATACOPY KECCAK256 BALANCE ORIGIN 0x2E CALLDATASIZE CALLDATALOAD ORIGIN ORIGIN 0x4C ADDRESS KECCAK256 BALANCE ORIGIN 0x4C CODECOPY 0x2E CALLDATALOAD CALLDATASIZE CALLDATALOAD CODESIZE CALLDATACOPY KECCAK256 BALANCE BALANCE 0x2E CALLER CALLVALUE CALLDATACOPY CODESIZE 0x4C BALANCE 0x2E CALLDATASIZE ADDRESS CALLDATACOPY CALLDATACOPY KECCAK256 CALLDATASIZE 0x4C BALANCE ADDRESS 0x2E ORIGIN BALANCE CODESIZE BALANCE KECCAK256 BALANCE ADDRESS 0x2E ORIGIN BALANCE CODESIZE BALANCE 0x4C CALLDATASIZE KECCAK256 BALANCE 0x2E CALLDATASIZE ADDRESS CALLDATACOPY CALLDATACOPY 0x4C BALANCE BALANCE 0x2E CALLER CALLVALUE CALLDATACOPY CODESIZE KECCAK256 CODECOPY 0x2E CALLDATALOAD CALLDATASIZE CALLDATALOAD CODESIZE CALLDATACOPY 0x4C BALANCE ORIGIN KECCAK256 ADDRESS GAS 0x22 KECCAK256 PUSH7 0x696C6C3D227768 PUSH10 0x746522202F3E3C672073 PUSH21 0x796C653D227472616E73666F726D3A7472616E736C PUSH2 0x7465 0x28 ORIGIN ORIGIN CALLDATASIZE PUSH17 0x782C20333932707829223E3C7265637420 PUSH24 0x696474683D223336707822206865696768743D2233367078 0x22 KECCAK256 PUSH19 0x783D22387078222072793D2238707822206669 PUSH13 0x6C3D226E6F6E6522207374726F PUSH12 0x653D2272676261283235352C ORIGIN CALLDATALOAD CALLDATALOAD 0x2C ORIGIN CALLDATALOAD CALLDATALOAD 0x2C ADDRESS 0x2E ORIGIN 0x29 0x22 KECCAK256 0x2F RETURNDATACOPY EXTCODECOPY PUSH21 0x657874506174682073746172744F66667365743D22 CALLDATALOAD ADDRESS 0x25 0x22 KECCAK256 PUSH7 0x696C6C3D227768 PUSH10 0x74652220666F6E742D66 PUSH2 0x6D69 PUSH13 0x793D2227436F7572696572204E PUSH6 0x77272C206D6F PUSH15 0x6F73706163652220666F6E742D7369 PUSH27 0x653D22313070782220786C696E6B3A687265663D2223746578742D PUSH17 0x6174682D61223E3C7465787420783D2231 ORIGIN PUSH17 0x782220793D22313770782220666F6E742D PUSH7 0x616D696C793D22 0x27 NUMBER PUSH16 0x7572696572204E6577272C206D6F6E6F PUSH20 0x706163652220666F6E742D73697A653D22313270 PUSH25 0x222066696C6C3D227768697465223E3C747370616E2066696C PUSH13 0x3D2272676261283235352C3235 CALLDATALOAD 0x2C ORIGIN CALLDATALOAD CALLDATALOAD 0x2C ADDRESS 0x2E CALLDATASIZE 0x29 0x22 RETURNDATACOPY 0x4D PUSH2 0x7820 SLOAD PUSH10 0x636B3A203C2F74737061 PUSH15 0x3E3C616E696D6174655472616E7366 PUSH16 0x726D206174747269627574654E616D65 RETURNDATASIZE 0x22 PUSH21 0x72616E73666F726D2220747970653D22726F746174 PUSH6 0x222066726F6D RETURNDATASIZE 0x22 ADDRESS KECCAK256 BALANCE CODESIZE KECCAK256 BALANCE CODESIZE 0x22 KECCAK256 PUSH21 0x6F3D2233363020313820313822206475723D223130 PUSH20 0x2220726570656174436F756E743D22696E646566 PUSH10 0x6E697465222F3E3C2F67 RETURNDATACOPY EXTCODECOPY 0x2F PUSH8 0x3E3C706174682069 PUSH5 0x3D22746578 PUSH21 0x2D706174682D612220643D224D3430203132204832 CALLDATALOAD ADDRESS KECCAK256 COINBASE ORIGIN CODESIZE KECCAK256 ORIGIN CODESIZE KECCAK256 ADDRESS KECCAK256 ADDRESS KECCAK256 BALANCE KECCAK256 ORIGIN CALLDATACOPY CODESIZE KECCAK256 CALLVALUE ADDRESS KECCAK256 JUMP CALLVALUE CALLDATASIZE ADDRESS KECCAK256 COINBASE ORIGIN CODESIZE KECCAK256 ORIGIN CODESIZE KECCAK256 ADDRESS KECCAK256 ADDRESS KECCAK256 BALANCE KECCAK256 ORIGIN CALLDATALOAD ADDRESS KECCAK256 CALLVALUE CODESIZE CODESIZE KECCAK256 0x48 CALLVALUE ADDRESS KECCAK256 COINBASE ORIGIN CODESIZE KECCAK256 ORIGIN CODESIZE KECCAK256 ADDRESS KECCAK256 ADDRESS KECCAK256 BALANCE KECCAK256 BALANCE ORIGIN KECCAK256 CALLVALUE CALLDATASIZE ADDRESS KECCAK256 JUMP CALLVALUE ADDRESS KECCAK256 COINBASE ORIGIN CODESIZE KECCAK256 ORIGIN CODESIZE KECCAK256 ADDRESS KECCAK256 ADDRESS KECCAK256 BALANCE KECCAK256 CALLVALUE ADDRESS KECCAK256 BALANCE ORIGIN KECCAK256 PUSH27 0x22202F3E222F3E3C6665496D61676520726573756C743D22703122 KECCAK256 PUSH25 0x6C696E6B3A687265663D22646174613A696D6167652F737667 0x2B PUSH25 0x6D6C3B6261736536342C3C6D61736B2069643D22666164652D PUSH20 0x796D626F6C22206D61736B436F6E74656E74556E PUSH10 0x74733D22757365725370 PUSH2 0x6365 0x4F PUSH15 0x557365223E3C726563742077696474 PUSH9 0x3D2232393070782220 PUSH9 0x65696768743D223230 ADDRESS PUSH17 0x78222066696C6C3D2275726C2823677261 PUSH5 0x2D73796D62 PUSH16 0x6C2922202F3E3C2F6D61736B3E3C2F64 PUSH6 0x66733E3C7265 PUSH4 0x7420783D 0x22 ADDRESS 0x22 KECCAK256 PUSH26 0x3D2230222077696474683D2232393022206865696768743D2235 ADDRESS ADDRESS 0x22 KECCAK256 PUSH19 0x783D223432222072793D223432222066696C6C RETURNDATASIZE 0x22 PUSH19 0x67626128302C302C302C302922207374726F6B PUSH6 0x3D2272676261 0x28 ORIGIN CALLDATALOAD CALLDATALOAD 0x2C ORIGIN CALLDATALOAD CALLDATALOAD 0x2C ORIGIN CALLDATALOAD CALLDATALOAD 0x2C ADDRESS 0x2E ORIGIN 0x29 0x22 KECCAK256 0x2F RETURNDATACOPY EXTCODECOPY 0x2F PUSH8 0x3E3C66696C746572 KECCAK256 PUSH10 0x643D22746F702D726567 PUSH10 0x6F6E2D626C7572223E3C PUSH7 0x65476175737369 PUSH2 0x6E42 PUSH13 0x757220696E3D22536F75726365 SELFBALANCE PUSH19 0x61706869632220737464446576696174696F6E RETURNDATASIZE 0x22 ORIGIN CALLVALUE 0x22 KECCAK256 0x2F RETURNDATACOPY EXTCODECOPY 0x2F PUSH7 0x696C7465723E3C 0x2F PUSH21 0x657874506174683E203C7465787450617468207374 PUSH2 0x7274 0x4F PUSH7 0x667365743D2230 0x25 0x22 KECCAK256 PUSH7 0x696C6C3D227768 PUSH10 0x74652220666F6E742D66 PUSH2 0x6D69 PUSH13 0x793D2227436F7572696572204E PUSH6 0x77272C206D6F PUSH15 0x6F73706163652220666F6E742D7369 PUSH27 0x653D22313070782220786C696E6B3A687265663D2223746578742D PUSH17 0x6174682D61223E3C746578742074657874 0x2D PUSH19 0x656E646572696E673D226F7074696D697A6553 PUSH17 0x656564223E5369676E6564536166654D61 PUSH21 0x683A207375627472616374696F6E206F766572666C PUSH16 0x773C7265637420783D2231362220793D 0x22 BALANCE CALLDATASIZE 0x22 KECCAK256 PUSH24 0x696474683D2232353822206865696768743D223436382220 PUSH19 0x783D223236222072793D223236222066696C6C RETURNDATASIZE 0x22 PUSH19 0x67626128302C302C302C302922207374726F6B PUSH6 0x3D2272676261 0x28 ORIGIN CALLDATALOAD CALLDATALOAD 0x2C ORIGIN CALLDATALOAD CALLDATALOAD 0x2C ORIGIN CALLDATALOAD CALLDATALOAD 0x2C ADDRESS 0x2E ORIGIN 0x29 0x22 KECCAK256 0x2F RETURNDATACOPY EXTCODECOPY PUSH21 0x65787420783D22313270782220793D223137707822 KECCAK256 PUSH7 0x6F6E742D66616D PUSH10 0x6C793D2227436F757269 PUSH6 0x72204E657727 0x2C KECCAK256 PUSH14 0x6F6E6F73706163652220666F6E74 0x2D PUSH20 0x697A653D2231327078222066696C6C3D22776869 PUSH21 0x65223E3C747370616E2066696C6C3D227267626128 ORIGIN CALLDATALOAD CALLDATALOAD 0x2C ORIGIN CALLDATALOAD CALLDATALOAD 0x2C ORIGIN CALLDATALOAD CALLDATALOAD 0x2C ADDRESS 0x2E CALLDATASIZE 0x29 0x22 RETURNDATACOPY 0x49 DIFFICULTY GASPRICE KECCAK256 EXTCODECOPY 0x2F PUSH21 0x7370616E3E3C726563742077696474683D22333670 PUSH25 0x22206865696768743D2233367078222072783D223870782220 PUSH19 0x793D22387078222066696C6C3D226E6F6E6522 KECCAK256 PUSH20 0x74726F6B653D2272676261283235352C3235352C ORIGIN CALLDATALOAD CALLDATALOAD 0x2C ADDRESS 0x2E ORIGIN 0x29 0x22 KECCAK256 0x2F RETURNDATACOPY EXTCODECOPY 0x2F PUSH21 0x6578743E3C7465787420793D223131357078222078 RETURNDATASIZE 0x22 CALLER ORIGIN PUSH17 0x78222066696C6C3D227768697465222066 PUSH16 0x6E742D66616D696C793D2227436F7572 PUSH10 0x6572204E6577272C206D PUSH16 0x6E6F73706163652220666F6E742D7765 PUSH10 0x6768743D223230302220 PUSH7 0x6F6E742D73697A PUSH6 0x3D2233367078 0x22 RETURNDATACOPY EXTCODECOPY 0x2F PUSH21 0x6578743E3C2F673E3C67207374796C653D22747261 PUSH15 0x73666F726D3A7472616E736C617465 0x28 ORIGIN ORIGIN CALLDATASIZE PUSH17 0x782C20343333707829223E203C67207374 PUSH26 0x6C653D227472616E73666F726D3A7472616E736C617465283239 PUSH17 0x782C20343134707829223EA164736F6C63 NUMBER STOP SMOD MOD STOP EXP ","sourceMap":"812:17538:15:-:0;;;;;;;;;;;;;;;;;;;;;;;;1591:1598;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;1678:13;1703:18;1724:52;1737:6;1745:30;1764:6;:10;;;1745:18;:30::i;:::-;1724:12;:52::i;:::-;1703:73;;1786:32;1821:186;1861:37;1874:6;:23;;;1861:12;:37::i;:::-;1912:36;1925:6;:22;;;1912:12;:36::i;:::-;1962:35;1978:6;:18;;;1962:15;:35::i;:::-;1821:26;:186::i;:::-;1786:221;;2017:32;2052:278;2092:25;:6;:14;;;:23;:25::i;:::-;2131:36;2144:6;:22;;;2131:12;:36::i;:::-;2181:41;2197:6;:24;;;2181:15;:41::i;:::-;2236:40;2252:6;:23;;;2236:15;:40::i;:::-;2290:30;2309:6;:10;;;2290:18;:30::i;:::-;2052:26;:278::i;:::-;2017:313;;2340:19;2362:46;2382:24;2399:6;2382:16;:24::i;:::-;2362:13;:46::i;:::-;2340:68;;2553:597;2722:4;2814:18;2866;3029:5;2627:475;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;2553:13;:597::i;:::-;2462:706;;;;;;;;:::i;:::-;;;;;;;;;;;;;2419:763;;;;;;1591:1598;;;;:::o;13521:1805::-;13584:13;13613:8;;;13609:50;;-1:-1:-1;13637:11:15;;;;;;;;;;;;;;;;;;;13609:50;13682:3;13668:11;;13745:295;13752:9;;;;13745:295;;13781:14;;;;13777:207;;13886:12;;13777:207;;;13930:2;13923:9;;;;:14;;13936:1;13923:14;13919:65;;13957:12;;13919:65;13997:8;;;;;14027:2;14019:10;;;;;;13745:295;;;14050:33;;:::i;:::-;14093:14;14131:1;14121:6;:11;14117:979;;14208:20;14257:1;14231:22;:6;:22;;;:10;:22::i;:::-;:27;;:35;;14265:1;14231:35;;;14261:1;14231:35;14208:58;;;;;-1:-1:-1;14306:17:15;;:14;;14321:1;14306:14;:17::i;:::-;14289:13;:6;14300:1;14289:10;:13::i;:::-;:35;:78;;14331:36;14349:17;:14;;;14364:1;14349:14;:17::i;:::-;14331:13;:6;14342:1;14331:10;:13::i;:::-;:17;;:36::i;:::-;14289:78;;;14327:1;14289:78;14381:35;;;:22;;;:35;;;14280:87;;-1:-1:-1;14459:41:15;;14498:1;;14459:34;;14280:87;14459:26;:34::i;:41::-;14430:71;;;;:20;;;:71;14542:22;;;;:47;;14576:12;;14542:29;;:26;14569:1;14542:26;:29::i;:::-;:33;;:47::i;:::-;14515:75;;;;:18;;;:75;14632:47;;14666:12;;14632:29;;14643:17;;:14;;14658:1;14643:14;:17::i;:::-;14632:6;;:10;:29::i;:47::-;14604:76;;:19;;;:76;-1:-1:-1;14117:979:15;;;14755:22;14763:1;14770:6;14755:14;:22::i;:::-;14816:1;14791:22;;;:26;;;14746:31;;-1:-1:-1;14860:41:15;;14899:1;;14860:34;;14746:31;;14860:10;:34::i;:41::-;14831:71;;;;:20;;;:71;14944:29;;14955:17;;:14;;14970:1;14955:14;:17::i;:::-;14944:6;;:10;:29::i;:::-;14916:58;;:19;;;:58;;;15015:28;;15041:1;15015:25;:28::i;:::-;14988:56;;:18;;;:56;15081:4;15058:20;;;:27;14117:979;15122:48;15146:22;:6;:22;;;:10;:22::i;:::-;15122:12;;;;15139:2;:30;15122:16;:48::i;:::-;15105:65;;15199:4;15180:16;;;:23;15244:1;15235:10;;:37;;15271:1;15235:37;;;15254:13;:6;15265:1;15254:10;:13::i;:::-;15213:59;;:19;;;:59;15290:29;15213:6;15290:21;:29::i;:::-;15283:36;13521:1805;-1:-1:-1;;;;;;;13521:1805:15:o;5664:1196::-;5792:13;5930:7;5986:37;5999:6;:23;;;5986:12;:37::i;:::-;6070:36;6083:6;:22;;;6070:12;:36::i;:::-;6155:309;6201:6;:16;;;6200:17;:55;;6239:6;:16;;;6200:55;;;6220:6;:16;;;6200:55;6281:6;:18;;;6325:6;:24;;;6375:6;:25;;;6426:6;:16;;;6155:19;:309::i;:::-;6512;6558:6;:16;;;6557:17;:55;;6596:6;:16;;;6557:55;;;6577:6;:16;;;6557:55;6638:6;:18;;;6682:6;:24;;;6732:6;:25;;;6783:6;:16;;;6512:19;:309::i;:::-;5860:979;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;5817:1036;;5664:1196;;;;;:::o;3195:786::-;3262:13;3320:6;3287:24;;3368:144;3390:11;:18;3386:1;:22;;;3368:144;;;3433:11;3445:1;3433:14;;;;;;;;;;;;;;;;;-1:-1:-1;;;3433:21:15;3429:73;;;3474:13;;;;;3429:73;3410:3;;3368:144;;;-1:-1:-1;3525:15:15;;;;3521:431;;3556:25;3616:11;3594:34;;:11;:18;:34;3584:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3584:45:15;-1:-1:-1;3556:73:15;-1:-1:-1;3643:13:15;;3670:231;3692:11;:18;3688:1;:22;;;3670:231;;;3739:11;3751:1;3739:14;;;;;;;;;;;;;;;;;-1:-1:-1;;;3739:21:15;3735:96;;;3784:28;:12;3797:7;;;;;;3784:21;;;;;;;;;;;:28;-1:-1:-1;;;;;3784:28:15;;;;;;;;;3735:96;3872:11;3884:1;3872:14;;;;;;;;;;;;;;;;;;3848:12;3861:7;;;;;;3848:21;;;;;;;;;;;:38;-1:-1:-1;;;;;3848:38:15;;;;;;;;-1:-1:-1;3712:3:15;;3670:231;;;;3928:12;3914:27;;;;;;;;3521:431;-1:-1:-1;3968:6:15;;3195:786;-1:-1:-1;;3195:786:15:o;15332:132::-;15394:13;15426:31;-1:-1:-1;;;;;15427:13:15;;15454:2;15426:27;:31::i;3987:736::-;4165:13;4353:16;4416:15;4608:11;4668:16;4233:469;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;4190:526;;3987:736;;;;;;:::o;202:725:12:-;258:13;475:10;471:51;;-1:-1:-1;501:10:12;;;;;;;;;;;;-1:-1:-1;;;501:10:12;;;;;;471:51;546:5;531:12;585:75;592:9;;585:75;;617:8;;647:2;639:10;;;;585:75;;;669:19;701:6;691:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;691:17:12;-1:-1:-1;761:5:12;;-1:-1:-1;669:39:12;-1:-1:-1;;;734:10:12;;776:114;783:9;;776:114;;851:2;844:4;:9;839:2;:14;826:29;;808:6;815:7;;;;;;;808:15;;;;;;;;;;;:47;-1:-1:-1;;;;;808:47:12;;;;;;;;-1:-1:-1;877:2:12;869:10;;;;776:114;;;-1:-1:-1;913:6:12;202:725;-1:-1:-1;;;;202:725:12:o;4729:929:15:-;4975:13;5115:17;5181:15;5252:16;5327:7;5393;5043:594;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;5000:651;;4729:929;;;;;;;;:::o;15470:1795::-;15558:17;15587:33;15623:1588;;;;;;;;15666:41;15682:6;:24;;;15666:15;:41::i;:::-;15623:1588;;;;15732:40;15748:6;:23;;;15732:15;:40::i;:::-;15623:1588;;;;15799:6;:18;;;-1:-1:-1;;;;;15623:1588:15;;;;;15849:6;:23;;;15623:1588;;;;15903:6;:22;;;15623:1588;;;;15948:30;15967:6;:10;;;15948:18;:30::i;:::-;15623:1588;;;;16003:6;:16;;;15623:1588;;;;;;16044:6;:16;;;15623:1588;;;;;;16087:6;:18;;;15623:1588;;;;;;16130:65;16140:6;:16;;;16158:6;:16;;;16176:6;:18;;;16130:9;:65::i;:::-;15623:1588;;;;;;16218:6;:14;;;15623:1588;;;;16254:55;16278:6;:24;;;-1:-1:-1;;;;;16270:33:15;16305:3;16254:15;:55::i;:::-;15623:1588;;;;16331:54;16355:6;:23;;;-1:-1:-1;;;;;16347:32:15;16381:3;16331:15;:54::i;:::-;15623:1588;;;;16407:53;16431:6;:24;;;-1:-1:-1;;;;;16423:33:15;16458:1;16407:15;:53::i;:::-;15623:1588;;;;16482:52;16506:6;:23;;;-1:-1:-1;;;;;16498:32:15;16532:1;16482:15;:52::i;:::-;15623:1588;;;;16552:93;16558:69;16581:6;:24;;;-1:-1:-1;;;;;16573:33:15;16608:2;16612:6;:14;;;16558;:69::i;:::-;16629:1;16632:3;16637:2;16641:3;16552:5;:93::i;:::-;15623:1588;;;;16663:93;16669:68;16692:6;:23;;;-1:-1:-1;;;;;16684:32:15;16718:2;16722:6;:14;;;16669;:68::i;:::-;16739:1;16742:3;16747;16752;16663:5;:93::i;:::-;15623:1588;;;;16774:93;16780:69;16803:6;:24;;;-1:-1:-1;;;;;16795:33:15;16830:2;16834:6;:14;;;16780;:69::i;16774:93::-;15623:1588;;;;16885:93;16891:68;16914:6;:23;;;-1:-1:-1;;;;;16906:32:15;16940:2;16944:6;:14;;;16891;:68::i;16885:93::-;15623:1588;;;;16996:93;17002:69;17025:6;:24;;;-1:-1:-1;;;;;17017:33:15;17052:2;17056:6;:14;;;17002;:69::i;16996:93::-;15623:1588;;;;17107:93;17113:68;17136:6;:23;;;-1:-1:-1;;;;;17128:32:15;17162:2;17166:6;:14;;;17113;:68::i;17107:93::-;15623:1588;;15587:1624;-1:-1:-1;17229:29:15;15587:1624;17229:18;:29::i;293:1985:13:-;351:13;380:4;:11;395:1;380:16;376:31;;;-1:-1:-1;398:9:13;;;;;;;;;-1:-1:-1;398:9:13;;;;376:31;464:19;486:5;;;;;;;;;;;;;;;;;464:27;;540:18;586:1;567:4;:11;581:1;567:15;566:21;;;;;;561:1;:27;540:48;;668:20;702:10;715:2;702:15;691:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;691:27:13;;668:50;;811:10;803:6;796:26;915:1;908:5;904:13;983:4;1033;1027:11;1018:7;1014:25;1138:2;1130:6;1126:15;1220:794;1239:6;1230:7;1227:19;1220:794;;;1303:1;1290:15;;;1381:14;;1531:4;1519:2;1515:14;;;1511:25;;1497:40;;1491:47;1486:3;1482:57;;;1464:76;;1657:2;1653:14;;;1649:25;;1635:40;;1629:47;1620:57;;1584:1;1569:17;;1602:76;1796:1;1791:14;;;1787:25;;1773:40;;1767:47;1758:57;;1707:17;;;1740:76;1925:25;;1911:40;;1905:47;1896:57;;1845:17;;;1878:76;;;;1983:17;;1220:794;;;2096:1;2089:4;2083:11;2079:19;2116:1;2111:54;;;;2183:1;2178:52;;;;2072:158;;2111:54;2146:16;-1:-1:-1;;2127:17:13;;2120:43;2111:54;;2178:52;2213:14;-1:-1:-1;;2194:17:13;;2187:41;2072:158;-1:-1:-1;2265:6:13;;293:1985;-1:-1:-1;;;;;;;;293:1985:13:o;3128:155:10:-;3186:7;3218:1;3213;:6;;3205:49;;;;;-1:-1:-1;;;3205:49:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3271:5:10;;;3128:155::o;2682:175::-;2740:7;2771:5;;;2794:6;;;;2786:46;;;;;-1:-1:-1;;;2786:46:10;;;;;;;;;;;;;;;;;;;;;;;;;;;4209:150;4267:7;4298:1;4294;:5;4286:44;;;;;-1:-1:-1;;;4286:44:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;4351:1;4347;:5;;;;;;;4209:150;-1:-1:-1;;;4209:150:10:o;7599:967:15:-;7687:13;7712:19;7744:6;:19;;;7734:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7734:30:15;;7712:52;;7778:6;:16;;;7774:78;;;7810:31;:6;7833:1;7817:6;:13;:17;7810:25;;;;;;;;;;;:31;-1:-1:-1;;;;;7810:31:15;;;;;;;;;7774:78;7865:6;:20;;;7861:95;;;-1:-1:-1;;;7901:6:15;7908:1;7901:9;;;;;;;;;;;:15;-1:-1:-1;;;;;7901:15:15;;;;;;;;;-1:-1:-1;;;7930:6:15;7937:1;7930:9;;;;;;;;;;;:15;-1:-1:-1;;;;;7930:15:15;;;;;;;;;7861:95;8029:22;;;;8007:44;;8002:173;8067:20;;;;:27;;:24;;8092:1;8067:24;:27::i;:::-;8053:11;:41;8002:173;;;8160:2;8147:17;;8125:6;8132:11;8125:19;;;;;;;;;;;:39;-1:-1:-1;;;;;8125:39:15;;;;;;;;-1:-1:-1;8096:13:15;;8002:173;;;;8207:322;8214:14;;:18;8207:322;;8274:1;8252:6;:19;;;:23;;;:68;;;;;8301:6;:19;;;8279:41;;:6;:18;;;:41;;;8252:68;8248:141;;;8347:18;;;:20;;;-1:-1:-1;;8347:20:15;;;;;;;8340:28;;-1:-1:-1;;;8340:34:15;:6;;:28;;;;;;;;;;;:34;-1:-1:-1;;;;;8340:34:15;;;;;;;;;8248:141;8462:14;;8446:36;;8454:2;;8479;8462:19;;8446:15;:36::i;:::-;8433:51;;8402:6;8409;:18;;:20;;;;;;;;;;;;;;;8402:28;;;;;;;;;;;;;:82;-1:-1:-1;;;;;8402:82:15;;;;;;;;;8516:2;8498:6;:14;;:20;;;;;;;;;;;-1:-1:-1;8207:322:15;;8572:777;8768:13;8841:11;8806:31;;;;-1:-1:-1;;8806:31:15;;;;;;8805:47;8797:55;;:4;:55;;;8793:550;;;8876:9;8875:10;:26;;;;;;;;;;;;;;;-1:-1:-1;;;8875:26:15;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;8875:26:15;;;;8868:33;;;;8793:550;8966:11;8931:31;;;;644:9:9;8931:31:15;;;;;;8930:47;8922:55;;:4;:55;;;8918:425;;;9001:9;9000:10;:26;;;;;;;;;;;;;;;-1:-1:-1;;;9000:26:15;;;;;;-1:-1:-1;9000:26:15;;;;;;;;;;;;-1:-1:-1;;;9000:26:15;;;;8993:33;;8918:425;9057:20;9080:33;9108:4;9080:27;:33::i;:::-;9057:56;;9131:9;9127:107;;;9183:35;9191:8;-1:-1:-1;;;;;9183:35:15;;:21;:35::i;:::-;9160:59;;9127:107;9254:78;9280:12;9294:17;9313:18;9254:25;:78::i;:::-;9247:85;;;;;437:437:14;512:13;537:19;573:6;569:1;:10;582:1;569:14;559:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;559:25:14;;537:47;;-1:-1:-1;;;594:6:14;601:1;594:9;;;;;;;;;;;:15;-1:-1:-1;;;;;594:15:14;;;;;;;;;619;:6;626:1;619:9;;;;;;;;;;;:15;-1:-1:-1;;;;;619:15:14;;;;;;;;-1:-1:-1;674:1:14;661;:10;;:14;644:128;681:1;677;:5;644:128;;;715:8;724:5;732:3;724:11;715:21;;;;;;;;;;703:6;710:1;703:9;;;;;;;;;;;:33;-1:-1:-1;;;;;703:33:14;;;;;;;;-1:-1:-1;760:1:14;750:11;;;;;-1:-1:-1;;684:3:14;644:128;;;-1:-1:-1;789:10:14;;781:55;;;;;-1:-1:-1;;;781:55:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;17271:286:15;17365:4;17399:9;17385:23;;:11;:23;;;17381:170;;;-1:-1:-1;;;17424:9:15;;17381:170;17468:9;17454:23;;:11;:23;;;17450:101;;;-1:-1:-1;17500:1:15;17493:8;;17450:101;-1:-1:-1;17539:1:15;17532:8;;17837:170;17916:17;17959:40;17960:15;;;17997:1;17959:37;:40::i;18013:188::-;18115:7;18191:3;18180:7;18142:35;18156:12;18170:6;18142:13;:35::i;:::-;:45;18141:53;;;;;;;18013:188;-1:-1:-1;;;;18013:188:15:o;17563:268::-;17715:13;17747:77;17748:64;17806:5;17748:53;17786:14;:4;17795;17786:8;:14::i;:::-;17748:33;17764:16;:5;17774;17764:9;:16::i;:::-;17748:11;:1;17754:4;17748:5;:11::i;:::-;:15;;:33::i;:::-;:37;;:53::i;:64::-;17747:75;:77::i;:::-;17740:84;17563:268;-1:-1:-1;;;;;;17563:268:15:o;1427:1385:16:-;1496:17;1955:23;1971:6;1955:15;:23::i;:::-;2000:225;2047:6;:17;;;2090:6;:16;;;2132:6;:23;;;2181:6;:22;;;2000:21;:225::i;:::-;2247:86;2269:6;:23;;;2294:6;:22;;;2318:6;:14;;;2247:21;:86::i;:::-;2355:90;2372:6;:16;;;2390:6;:16;;;2408:6;:18;;;2428:6;:16;;;2355;:90::i;:::-;2467:196;2532:25;:6;:14;;;:23;:25::i;:::-;2583:6;:16;;;2625:6;:16;;;2467:39;:196::i;:::-;2685:58;2708:6;:14;;;2724:6;:18;;;2685:22;:58::i;:::-;1917:874;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1917:874:16;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1917:874:16;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1917:874:16;;;;;;;;;;;;;-1:-1:-1;;1917:874:16;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1917:874:16;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1917:874:16;;;;;;;;;;;;;-1:-1:-1;;1917:874:16;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1917:874:16;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1917:874:16;;;;;;;;;;;;;-1:-1:-1;;1917:874:16;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1917:874:16;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1917:874:16;;;;;;;;;;;;;-1:-1:-1;;1917:874:16;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1917:874:16;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1917:874:16;;;;;;;;;;;;;-1:-1:-1;;1917:874:16;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1917:874:16;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1917:874:16;;;;;;-1:-1:-1;;1917:874:16;;;;;;;;;;;-1:-1:-1;;;;;;;;;1427:1385:16:o;1362:2580:9:-;1425:20;1457:15;1482:1;1475:4;:8;;;:57;;1526:4;1519:12;;1475:57;;;1502:4;1495:12;;1494:13;;1475:57;1457:75;-1:-1:-1;644:9:9;1550:28;;;1542:42;;;;;-1:-1:-1;;;1542:42:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;1595:13;1621:3;1611:13;;:93;;-1:-1:-1;;;1611:93:9;;;1632:34;1611:93;1595:109;;;-1:-1:-1;1728:3:9;1718:13;;:18;1714:83;;1755:34;1747:42;1794:3;1746:51;1714:83;1821:3;1811:13;;:18;1807:83;;1848:34;1840:42;1887:3;1839:51;1807:83;1914:3;1904:13;;:18;1900:83;;1941:34;1933:42;1980:3;1932:51;1900:83;2007:4;1997:14;;:19;1993:84;;2035:34;2027:42;2074:3;2026:51;1993:84;2101:4;2091:14;;:19;2087:84;;2129:34;2121:42;2168:3;2120:51;2087:84;2195:4;2185:14;;:19;2181:84;;2223:34;2215:42;2262:3;2214:51;2181:84;2289:4;2279:14;;:19;2275:84;;2317:34;2309:42;2356:3;2308:51;2275:84;2383:5;2373:15;;:20;2369:85;;2412:34;2404:42;2451:3;2403:51;2369:85;2478:5;2468:15;;:20;2464:85;;2507:34;2499:42;2546:3;2498:51;2464:85;2573:5;2563:15;;:20;2559:85;;2602:34;2594:42;2641:3;2593:51;2559:85;2668:5;2658:15;;:20;2654:85;;2697:34;2689:42;2736:3;2688:51;2654:85;2763:6;2753:16;;:21;2749:86;;2793:34;2785:42;2832:3;2784:51;2749:86;2859:6;2849:16;;:21;2845:86;;2889:34;2881:42;2928:3;2880:51;2845:86;2955:6;2945:16;;:21;2941:86;;2985:34;2977:42;3024:3;2976:51;2941:86;3051:6;3041:16;;:21;3037:86;;3081:34;3073:42;3120:3;3072:51;3037:86;3147:7;3137:17;;:22;3133:86;;3178:33;3170:41;3216:3;3169:50;3133:86;3243:7;3233:17;;:22;3229:85;;3274:32;3266:40;3311:3;3265:49;3229:85;3338:7;3328:17;;:22;3324:83;;3369:30;3361:38;3404:3;3360:47;3324:83;3431:7;3421:17;;:22;3417:78;;3462:25;3454:33;3492:3;3453:42;3417:78;3517:1;3510:4;:8;;;3506:47;;;3548:5;-1:-1:-1;;3528:25:9;;;;;;3520:33;;3506:47;3912:7;3903:5;:17;:22;:30;;3932:1;3903:30;;;3928:1;3903:30;3886:48;;3896:2;3887:5;:11;;3886:48;3863:72;;1362:2580;;;;;:::o;11150:2269:15:-;11311:13;11336:28;11367:78;11393:12;11407:17;11426:18;11367:25;:78::i;:::-;11336:109;;11455:13;11471:68;11487:20;11509;11531:7;11471:15;:68::i;:::-;11455:84;-1:-1:-1;11592:7:15;11569:30;;11609:357;;;;11758:42;11774:5;11781:8;-1:-1:-1;;;11758:15:15;:42::i;:::-;11750:50;;11609:357;;;11914:41;11930:5;11937:7;-1:-1:-1;;;11914:15:15;:41::i;:::-;11906:49;;11609:357;12018:5;12003:12;12055:75;12062:9;;12055:75;;12087:8;;12117:2;12109:10;;;;12055:75;;;-1:-1:-1;;12201:10:15;12251:15;;12287:29;12302:5;12201:10;12287:14;:29::i;:::-;12250:66;;;;12330:10;12326:49;;;12356:8;;;;;12326:49;12385:33;;:::i;:::-;12432:11;12428:826;;;12552:35;12565:21;12571:2;12565:21;;;:13;:21::i;:::-;12558:1;;12552:12;:35::i;:::-;12524:64;;;;:19;;;:64;12627:1;12602:22;;;:26;12671:30;;12699:1;;12671:23;;12679:2;;12671:23;;:15;:23::i;:30::-;12642:60;;;;:20;;;:60;12743:19;;;;:26;;:23;12767:1;12743:23;:26::i;:::-;12716:54;;:18;;;:54;12428:826;;;12801:1;12791:6;:11;;;12787:467;;12888:13;:10;;;12899:1;12888:10;:13::i;:::-;12860:42;;:19;;;:42;;;12941:1;12916:22;;;:26;12985;;13009:1;12985:23;:26::i;:::-;12956:56;;:20;;;:56;13047:1;13026:18;;;:22;12787:467;;;13143:1;13121:19;;;:23;13179:1;13158:18;;;:22;;;13222:20;;13240:1;;13222:13;;13121:23;13222:10;;;;:13::i;:20::-;13194:49;;:19;;;:49;12787:467;13263:24;;;13297:34;;;:20;;;:34;13263:14;13341:16;;;:24;13383:29;13263:6;13383:21;:29::i;:::-;13376:36;11150:2269;-1:-1:-1;;;;;;;;;;;;11150:2269:15:o;880:329:14:-;963:13;988:19;1024:6;1020:1;:10;1010:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1010:21:14;-1:-1:-1;1058:13:14;;988:43;;-1:-1:-1;1041:131:14;1073:5;;1041:131;;1115:8;1124:5;1132:3;1124:11;1115:21;;;;;;;;;;1099:6;1110:1;1106;:5;1099:13;;;;;;;;;;;:37;-1:-1:-1;;;;;1099:37:14;;;;;;;;-1:-1:-1;1160:1:14;1150:11;;;;;-1:-1:-1;;1080:3:14;1041:131;;;-1:-1:-1;1195:6:14;880:329;-1:-1:-1;;;880:329:14:o;18207:141:15:-;18324:15;18310:31;;;18207:141::o;3530:215:10:-;3588:7;3611:6;3607:20;;-1:-1:-1;3626:1:10;3619:8;;3607:20;3649:5;;;3653:1;3649;:5;:1;3672:5;;;;;:10;3664:56;;;;-1:-1:-1;;;3664:56:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2818:5343:16;2890:17;3270:393;3543:6;:13;;;3336:287;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3336:287:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;3336:287:16;;;;;;;;;;;;;;;;;;;;3270:13;:393::i;:::-;3763:530;4006:6;:9;;;4083:6;:9;;;4173:6;:13;;;3829:424;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3829:424:16;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3829:424:16;;;;;;;;;;;-1:-1:-1;;;3829:424:16;;;;;;;;;;;;;;;;;-1:-1:-1;3829:424:16;;;;;;;;;;;;;-1:-1:-1;;3829:424:16;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3829:424:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3829:424:16;;;;;;;;;;;;;-1:-1:-1;;3829:424:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;3829:424:16;;;;;;;;;;;;;;;;;;;;;;3763:13;:530::i;:::-;4393;4636:6;:9;;;4713:6;:9;;;4803:6;:13;;;4459:424;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4459:424:16;;;;;;;;;;;;4393:530;5044;5287:6;:9;;;5364:6;:9;;;5454:6;:13;;;5110:424;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;5110:424:16;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;5110:424:16;;;;;;;;;;;-1:-1:-1;;;5110:424:16;;;;;;;;;;;;;;;;;-1:-1:-1;5110:424:16;;;;;;;;;;;;;-1:-1:-1;;5110:424:16;;;;;;;;;;;;;;;;-1:-1:-1;;5110:424:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5110:424:16;;;;;;;;;;;;-1:-1:-1;;5110:424:16;;;;;;;;;;;;5044:530;7513:13;;;;2945:5199;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2945:5199:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2945:5199:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2945:5199:16;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2945:5199:16;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2945:5199:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2945:5199:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2945:5199:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2919:5235;;2818:5343;;;:::o;8167:1935::-;8372:17;8665:9;8724:15;9054:9;9113:15;9444:10;9504:16;9836:10;9896:16;8427:1658;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;8427:1658:16;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;8427:1658:16;;;;;;;;;;;-1:-1:-1;;;8427:1658:16;;;;;;;;;;;;;;;;;-1:-1:-1;8427:1658:16;;;;;;;;;;;;;-1:-1:-1;;8427:1658:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;8427:1658:16;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;8427:1658:16;;;;;;;;;;;-1:-1:-1;;;8427:1658:16;;;;;;;;;;;;;;;;;-1:-1:-1;8427:1658:16;;;;;;;;;;;;;-1:-1:-1;;8427:1658:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;8427:1658:16;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;8427:1658:16;;;;;;;;;;;-1:-1:-1;;;8427:1658:16;;;;;;;;;;;;;;;;;-1:-1:-1;8427:1658:16;;;;;;;;;;;;;-1:-1:-1;;8427:1658:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;8427:1658:16;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;8427:1658:16;;;;;;;;;;;-1:-1:-1;;;8427:1658:16;;;;;;;;;;;;;;;;;-1:-1:-1;8427:1658:16;;;;;;;;;;;;;-1:-1:-1;;8427:1658:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8401:1694;;8167:1935;;;;;;:::o;10108:918::-;10277:17;10593:16;10648:15;10822:7;10332:677;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;10332:677:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;10332:677:16;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;10332:677:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;10332:677:16;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;10332:677:16;;;;;;;;;;;;;;-1:-1:-1;;;10332:677:16;;;;;-1:-1:-1;10332:677:16;;;;;;;;;;;;;;;;;;;;;;;;;10306:713;;10108:918;;;;;:::o;11032:1296::-;11187:17;11216:18;11237:9;:14;;11250:1;11237:14;:126;;11291:9;:15;;-1:-1:-1;;11291:15:16;:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11237:126;;;;;;;;;;;;;;;;;;;;;11216:147;;11373:19;11395:43;11404:9;11415;11426:11;11395:8;:43::i;:::-;11373:65;;11541:4;11762:5;11926:4;12149:5;12264:33;12287:9;12264:22;:33::i;:::-;11474:837;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;11474:837:16;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;11474:837:16;;;;;;;;;;;;;;-1:-1:-1;;;11474:837:16;;;;;-1:-1:-1;11474:837:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;11474:837:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;11474:837:16;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;11474:837:16;;;;;;;;;;;;;;-1:-1:-1;;;11474:837:16;;;;;-1:-1:-1;11474:837:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;11474:837:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;11474:837:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11448:873;;11032:1296;;;;;;;;:::o;14366:2549::-;14524:17;14553:26;14582:23;14595:9;14582:12;:23::i;:::-;14553:52;;14615:26;14644:23;14657:9;14644:12;:23::i;:::-;14698:21;;14754:26;;14816;;14615:52;;-1:-1:-1;14722:1:16;14698:25;;;;14783:2;14754:31;;;;14816;14677:18;;14904:35;14918:9;14929;14904:13;:35::i;:::-;14857:82;;;;15107:40;15120:10;15133:1;15120:14;15115:1;:20;15107:38;:40::i;:::-;15409:7;15563:40;15576:10;15589:1;15576:14;15571:1;:20;15563:38;:40::i;:::-;15871:12;16030:40;16043:10;16056:1;16043:14;16038:1;:20;16030:38;:40::i;:::-;16338:12;16756:6;16804;14975:1923;;;;;;;;;;;;;-1:-1:-1;;;14975:1923:16;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;14975:1923:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;14975:1923:16;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;14975:1923:16;;;;;;;;;;;;;;-1:-1:-1;;;14975:1923:16;;;;;-1:-1:-1;14975:1923:16;;;;;;;;;-1:-1:-1;;;14975:1923:16;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;14975:1923:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;14975:1923:16;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;14975:1923:16;;;;;;;;;;;;;;-1:-1:-1;;;14975:1923:16;;;;;-1:-1:-1;14975:1923:16;;;;;;;;;-1:-1:-1;;;14975:1923:16;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;14975:1923:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;14975:1923:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;14975:1923:16;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;14975:1923:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;14975:1923:16;;;;;;;;;;;;;-1:-1:-1;;14975:1923:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14949:1959;;14366:2549;;;;;;;;;;;;:::o;18086:1062::-;18178:17;18211:28;18218:7;18227:11;18211:6;:28::i;:::-;18207:935;;;18285:793;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18255:837;;18207:935;;;-1:-1:-1;19123:8:16;;;;;;;;;-1:-1:-1;19123:8:16;;18086:1062;;;;:::o;9888:1016:15:-;10048:28;;10109:62;10113:57;10143:26;10113:25;;;;10143:26;;10113:29;:57::i;:::-;10109:3;:62::i;:::-;10088:83;;10198:1;10185:10;:14;:34;;;;;10217:2;10203:10;:16;;10185:34;10181:717;;;10259:18;10239:38;;:17;:38;;;10235:578;;;10320:43;10344:17;:10;10359:1;10344:14;:17::i;:::-;-1:-1:-1;;;;;10320:16:15;;;10337:2;:25;10320:16;:43::i;:::-;10297:66;-1:-1:-1;10398:1:15;10385:10;:14;10403:1;10385:19;10381:148;;;10451:59;10467:20;1097:40;-1:-1:-1;;;10451:15:15;:59::i;:::-;10428:82;;10381:148;10235:578;;;10590:43;10614:17;:10;10629:1;10614:14;:17::i;:::-;-1:-1:-1;;;;;10590:16:15;;;10607:2;:25;10590:16;:43::i;:::-;10567:66;-1:-1:-1;10668:1:15;10655:10;:14;10673:1;10655:19;10651:148;;;10721:59;10737:20;-1:-1:-1;;;1097:40:15;10721:15;:59::i;:::-;10698:82;;10651:148;10181:717;;;-1:-1:-1;;;;;;;10866:21:15;;;;9888:1016;-1:-1:-1;;9888:1016:15:o;749:3746:8:-;831:14;;;-1:-1:-1;;1338:1:8;1335;1328:20;1370:9;;;;-1:-1:-1;1421:13:8;;;1405:14;;;;1401:34;;-1:-1:-1;1517:10:8;1513:179;;1565:1;1551:11;:15;1543:24;;;;;;-1:-1:-1;1618:23:8;;;;-1:-1:-1;1668:13:8;;1513:179;1819:5;1805:11;:19;1797:28;;;;;;2102:17;2178:11;2175:1;2172;2165:25;2530:12;2545;;;:26;;2665:22;;;;;3468:1;3449;:15;;3448:21;;3695:17;;;3691:21;;3684:28;3753:17;;;3749:21;;3742:28;3812:17;;;3808:21;;3801:28;3871:17;;;3867:21;;3860:28;3930:17;;;3926:21;;3919:28;3990:17;;;3986:21;;;3979:28;3037:12;;;;3033:23;;;3058:1;3029:31;2307:20;;;2296:32;;;3088:12;;;;2350:21;;;;2793:16;;;;3079:21;;;;4454:11;;;;;-1:-1:-1;;749:3746:8;;;;;:::o;9355:527:15:-;9430:7;9439:4;9455:15;9493:1;9484:6;:10;;;9480:80;;;9518:31;:5;9529:18;-1:-1:-1;;9536:10:15;;9529:18;:2;:18;9518:9;:31::i;:::-;9510:39;;9480:80;9569:12;9597:1;9592:2;9584:5;:10;:14;;-1:-1:-1;9616:13:15;:5;9626:2;9616:9;:13::i;:::-;9608:21;;9643:7;9639:55;;;9674:5;9682:1;9674:9;9666:17;;9639:55;9756:5;9765:6;9756:15;9752:88;;;9796:2;9787:11;;;;9825:4;9812:17;;9752:88;-1:-1:-1;9857:5:15;;-1:-1:-1;9864:10:15;-1:-1:-1;9355:527:15;;;;;;:::o;12334:697:16:-;12428:19;12459:15;12503:11;12477:37;;12490:9;12478;:21;12477:37;;;;;;;;12459:55;;12541:1;12528:9;:14;;;12524:501;;12566:6;;;;;;;;;;;;;;;;;12558:14;;12524:501;;;12606:1;12593:9;:14;;;12589:436;;12631:6;;;;;;;;;;;;;;;;;12623:14;;12589:436;;;12671:2;12658:9;:15;;;12654:371;;12697:6;;;;;;;;;;;;;;;;;12689:14;;12654:371;;;12737:2;12724:9;:15;;;12720:305;;12763:6;;;;;;;;;;;;;;;;;12755:14;;12720:305;;;12803:2;12790:9;:15;;;12786:239;;12829:6;;;;;;;;;;;;;;;;;12821:14;;12786:239;;;12869:3;12856:9;:16;;;12852:173;;12896:6;;;;;;;;;;;;;;;;;12888:14;;12852:173;;;12936:3;12923:9;:16;;;12919:106;;12963:6;;;;;;;;;;;;;;;;;12955:14;;12919:106;;;-1:-1:-1;;13008:6:16;;;;;;;;;;;;;;;;;;12334:697;-1:-1:-1;;;12334:697:16:o;13037:1323::-;13137:28;;;;;;;;;;;;;;;;;;;;13175:29;;;;;;;;;;;;;;;;13214;;;;;;;;;;;;;;;13253;;;;;;;;;;;;;;;;;;;13108:17;;13175:29;;13214;13309:1;13137:21;13296:14;;;;;:33;;;13314:9;:15;;-1:-1:-1;;13314:15:16;13296:33;13292:1062;;;13449:9;:15;;-1:-1:-1;;13449:15:16;:35;;13477:7;13449:35;;;13467:7;13449:35;13538:9;:15;;-1:-1:-1;;13538:15:16;:35;;13566:7;13538:35;;;13556:7;13538:35;13658:9;:15;;-1:-1:-1;;13658:15:16;:35;;13686:7;13658:35;;;13676:7;13658:35;13747:9;:15;;-1:-1:-1;;13747:15:16;:35;;13775:7;13747:35;;;13765:7;13747:35;13375:491;;;;;;-1:-1:-1;;;13375:491:16;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;13375:491:16;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;13375:491:16;;;;;;;;;;;-1:-1:-1;;;13375:491:16;;;;;;;;;;;;;;;;;-1:-1:-1;13375:491:16;;;;;;;;;;;;;-1:-1:-1;;13375:491:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;13375:491:16;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;13375:491:16;;;;;;;;;;;-1:-1:-1;;;13375:491:16;;;;;;;;;;;;;;;;;-1:-1:-1;13375:491:16;;;;;;;;;;;;;-1:-1:-1;;13375:491:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13345:535;;13292:1062;;;14015:7;14076;14192;14253;13941:388;;;;;;-1:-1:-1;;;13941:388:16;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;13941:388:16;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;13941:388:16;;;;;;;;;;;-1:-1:-1;;;13941:388:16;;;;;;;;;;;;;;;;;-1:-1:-1;13941:388:16;;;;;;;;;;;;;-1:-1:-1;;13941:388:16;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;13941:388:16;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;13941:388:16;;;;;;;;;;;;;;-1:-1:-1;13941:388:16;;;;;;;;;;;;;-1:-1:-1;;13941:388:16;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;13941:388:16;;;;;;;;;;;-1:-1:-1;;;13941:388:16;;;;;;;;;;;;;;;;;-1:-1:-1;13941:388:16;;;;;;;;;;;;;-1:-1:-1;;13941:388:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13911:432;;13292:1062;13037:1323;;;;;;;:::o;16921:272::-;16977:13;17002:18;:23;;;;;;;;;;;;;;17046:1;17039:4;:8;;;17035:79;;;17070:4;-1:-1:-1;;17070:9:16;17063:16;;17093:10;;;;;;;;;;;;;-1:-1:-1;;;17093:10:16;;;;;17035:79;17154:4;17160:24;17168:4;17160:13;;:22;:24::i;:::-;17137:48;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;17137:48:16;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;17137:48:16;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;17137:48:16;;;;;;;;;;;;;-1:-1:-1;;17137:48:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17123:63;;;16921:272;;;:::o;17199:881::-;17279:13;;17319:14;17362:1;17337:21;;;17336:27;;;17319:44;;-1:-1:-1;;17377:8:16;:19;;;17373:701;;;17412:17;;;;;;;;;;;;;-1:-1:-1;;;17412:17:16;;;;;;;;;;;;;;;;;;;;;;;;;;;17373:701;-1:-1:-1;;17450:8:16;:18;;;17446:628;;;17484:20;;;;;;;;;;;;;-1:-1:-1;;;17484:20:16;;;;;;;;;;;;;;;;;;;;;;;;;;;17446:628;-1:-1:-1;;17525:8:16;:18;;;17521:553;;;17559:21;;;;;;;;;;;;;-1:-1:-1;;;17559:21:16;;;;;;;;;;;;;;;;;;;;;;;;;;;17521:553;-1:-1:-1;;17601:8:16;:17;;;17597:477;;;17634:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;17634:19:16;;;;;;;;;;17597:477;17685:1;17674:8;:12;;;17670:404;;;17702:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;17702:19:16;;;;;;;;;;17670:404;17753:5;17742:8;:16;;;17738:336;;;17774:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17738:336;17825:6;17814:8;:17;;;17810:264;;;17847:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17810:264;17898:6;17887:8;:17;;;17883:191;;;17920:19;;;;;;;;;;;;;-1:-1:-1;;;17920:19:16;;;;;;;;;;;;;;;;;;;;;;;;;;;17883:191;17971:7;17960:8;:18;;;17956:118;;;17994:19;;;;;;;;;;;;;-1:-1:-1;;;17994:19:16;;;;;;;;;;;;;;;;-1:-1:-1;;;17994:19:16;;;;;;;;;;17956:118;18044:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;18044:19:16;;;;;;;;;;19154:256;19269:38;;;;;;;;;;-1:-1:-1;;19269:38:16;;;;;;;;;;;;;;;;;;;;;;;;;19259:49;;;;;19231:4;;19363:35;19286:7;19363:26;:35::i;:::-;19401:1;19363:39;19359:1;:43;19338:65;;-1:-1:-1;;19338:65:16;;;;;;-1:-1:-1;;19154:256:16;-1:-1:-1;;;19154:256:16:o;2000:213:11:-;2056:6;2085:5;;;2109:6;;;;;;:16;;;2124:1;2119;:6;;2109:16;2108:38;;;;2135:1;2131;:5;:14;;;;;2144:1;2140;:5;2131:14;2100:87;;;;-1:-1:-1;;;2100:87:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10910:102:15;10955:7;10994:1;10989;:6;;:15;;11003:1;11002:2;;10989:15;;;-1:-1:-1;10998:1:15;10910:102::o;671:731:7:-;733:7;764:1;760;:5;752:14;;;;;;-1:-1:-1;;;781:1:7;:40;777:102;;843:3;837:9;;;;860:8;777:102;897:19;892:1;:24;888:84;;938:2;932:8;;;;954:7;888:84;990:11;985:1;:16;981:76;;1023:2;1017:8;;;;1039:7;981:76;1075:7;1070:1;:12;1066:72;;1104:2;1098:8;;;;1120:7;1066:72;1156:5;1151:1;:10;1147:68;;1183:1;1177:7;;;;1198:6;1147:68;1233:4;1228:1;:9;1224:67;;1259:1;1253:7;;;;1274:6;1224:67;1309:3;1304:1;:8;1300:66;;1334:1;1328:7;;;;1349:6;1300:66;1384:3;1379:1;:8;1375:20;;1394:1;1389:6;671:731;;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;14:198:18:-;84:20;;-1:-1:-1;;;;;133:54:18;;123:65;;113:2;;202:1;199;192:12;217:162;284:20;;340:13;;333:21;323:32;;313:2;;369:1;366;359:12;384:162;452:20;;512:1;501:20;;;491:31;;481:2;;536:1;533;526:12;551:543;;649:3;642:4;634:6;630:17;626:27;616:2;;671:5;664;657:20;616:2;711:6;698:20;737:18;733:2;730:26;727:2;;;759:9;727:2;794:54;836:2;817:13;;-1:-1:-1;;813:27:18;842:4;809:38;794:54;:::i;:::-;873:2;864:7;857:19;919:3;912:4;907:2;899:6;895:15;891:26;888:35;885:2;;;940:5;933;926:20;885:2;1009;1002:4;994:6;990:17;983:4;974:7;970:18;957:55;1032:16;;;1050:4;1028:27;1021:42;;;;1036:7;606:488;-1:-1:-1;;606:488:18:o;1099:163::-;1168:20;;1228:8;1217:20;;1207:31;;1197:2;;1252:1;1249;1242:12;1267:158;1335:20;;1395:4;1384:16;;1374:27;;1364:2;;1415:1;1412;1405:12;1430:1779;;1583:2;1571:9;1562:7;1558:23;1554:32;1551:2;;;1604:6;1596;1589:22;1551:2;1649:9;1636:23;1678:18;1719:2;1711:6;1708:14;1705:2;;;1740:6;1732;1725:22;1705:2;1783:6;1772:9;1768:22;1758:32;;1809:6;1849:2;1844;1835:7;1831:16;1827:25;1824:2;;;1870:6;1862;1855:22;1824:2;1901:18;1916:2;1901:18;:::i;:::-;1888:31;;1955:2;1942:16;1935:5;1928:31;1991:33;2020:2;2016;2012:11;1991:33;:::i;:::-;1986:2;1979:5;1975:14;1968:57;2057:33;2086:2;2082;2078:11;2057:33;:::i;:::-;2052:2;2045:5;2041:14;2034:57;2137:2;2133;2129:11;2116:25;2166:2;2156:8;2153:16;2150:2;;;2187:6;2179;2172:22;2150:2;2228:47;2267:7;2256:8;2252:2;2248:17;2228:47;:::i;:::-;2223:2;2216:5;2212:14;2205:71;;2322:3;2318:2;2314:12;2301:26;2352:2;2342:8;2339:16;2336:2;;;2373:6;2365;2358:22;2336:2;2415:47;2454:7;2443:8;2439:2;2435:17;2415:47;:::i;:::-;2409:3;2402:5;2398:15;2391:72;;2496:32;2523:3;2519:2;2515:12;2496:32;:::i;:::-;2490:3;2483:5;2479:15;2472:57;2562:32;2589:3;2585:2;2581:12;2562:32;:::i;:::-;2556:3;2549:5;2545:15;2538:57;2628:31;2654:3;2650:2;2646:12;2628:31;:::i;:::-;2622:3;2615:5;2611:15;2604:56;2679:3;2669:13;;2714:31;2741:2;2737;2733:11;2714:31;:::i;:::-;2709:2;2702:5;2698:14;2691:55;2765:3;2755:13;;2800:31;2827:2;2823;2819:11;2800:31;:::i;:::-;2795:2;2788:5;2784:14;2777:55;2851:3;2841:13;;2886:31;2913:2;2909;2905:11;2886:31;:::i;:::-;2881:2;2874:5;2870:14;2863:55;2937:3;2927:13;;2972:31;2999:2;2995;2991:11;2972:31;:::i;:::-;2967:2;2960:5;2956:14;2949:55;3023:3;3013:13;;3058:32;3086:2;3082;3078:11;3058:32;:::i;:::-;3053:2;3046:5;3042:14;3035:56;3110:3;3100:13;;3145:33;3174:2;3170;3166:11;3145:33;:::i;:::-;3129:14;;;3122:57;;;;3133:5;1541:1668;-1:-1:-1;;;;1541:1668:18:o;3214:187::-;;3296:5;3290:12;3311:52;3356:6;3351:3;3344:4;3337:5;3333:16;3311:52;:::i;:::-;3379:16;;;;;3266:135;-1:-1:-1;;3266:135:18:o;3406:440::-;3485:66;3473:79;;3582:34;3577:2;3568:12;;3561:56;3647:34;3642:2;3633:12;;3626:56;3712:34;3707:2;3698:12;;3691:56;3778:32;3772:3;3763:13;;3756:55;3836:3;3827:13;;3463:383::o;3851:121::-;3930:8;3918:21;;3964:1;3955:11;;3908:64::o;3977:1834::-;;4787:66;4782:3;4775:79;4883:6;4877:13;4899:61;4953:6;4949:1;4944:3;4940:11;4933:4;4925:6;4921:17;4899:61;:::i;:::-;5023:66;5019:1;4979:16;;;5011:10;;;5004:86;5115:13;;5137:63;5115:13;5186:2;5178:11;;5171:4;5159:17;;5137:63;:::i;:::-;5261:13;;5219:17;;;5283:63;5261:13;5332:2;5324:11;;5317:4;5305:17;;5283:63;:::i;:::-;5411:66;5406:2;5365:17;;;;5398:11;;;5391:87;5507:28;5502:2;5494:11;;5487:49;5561:13;;5583:63;5561:13;5632:2;5624:11;;5617:4;5605:17;;5583:63;:::i;:::-;5711:66;5706:2;5665:17;;;;5698:11;;;5691:87;5802:2;5794:11;;4765:1046;-1:-1:-1;;;;;;4765:1046:18:o;5816:1760::-;;6674:10;6669:3;6662:23;6714:6;6708:13;6730:61;6784:6;6780:1;6775:3;6771:11;6764:4;6756:6;6752:17;6730:61;:::i;:::-;6819:6;6814:3;6810:16;6800:26;;6845:5;6878:2;6874:1;6870:2;6866:10;6859:22;6912:6;6906:13;6928:63;6982:8;6977:2;6973;6969:11;6962:4;6954:6;6950:17;6928:63;:::i;:::-;-1:-1:-1;;;7051:2:18;7010:17;;;;7043:11;;;7036:24;7085:13;;7107:63;7085:13;7156:2;7148:11;;7141:4;7129:17;;7107:63;:::i;:::-;7230:2;7189:17;;7222:11;;;7215:23;7263:13;;7285:63;7263:13;7334:2;7326:11;;7319:4;7307:17;;7285:63;:::i;:::-;7413:4;7408:2;7367:17;;;;7400:11;;;7393:25;7443:13;;7465:63;7443:13;7514:2;7506:11;;7499:4;7487:17;;7465:63;:::i;:::-;7548:17;7567:2;7544:26;;6652:924;-1:-1:-1;;;;;;;6652:924:18:o;7581:2055::-;;8639:12;8672:2;8667:3;8660:15;8704:6;8698:13;8720:62;8775:6;8770:2;8765:3;8761:12;8754:4;8746:6;8742:17;8720:62;:::i;:::-;-1:-1:-1;;;8841:2:18;8801:16;;;8833:11;;;8826:26;8877:13;;8899:63;8877:13;8948:2;8940:11;;8933:4;8921:17;;8899:63;:::i;:::-;8981:17;9022:2;9014:11;;9007:23;;;;9055:13;;;9077:63;9055:13;9126:2;9118:11;;9111:4;9099:17;;9077:63;:::i;:::-;9167:8;9163:2;9159:17;9149:27;;;9205:15;9200:2;9196;9192:11;9185:36;9252:6;9246:13;9268:63;9322:8;9317:2;9313;9309:11;9302:4;9294:6;9290:17;9268:63;:::i;:::-;9396:15;9391:2;9350:17;;;;9383:11;;;9376:36;9437:13;;9459:63;9437:13;9508:2;9500:11;;9493:4;9481:17;;9459:63;:::i;:::-;9538:92;9570:59;9625:2;9614:8;9610:2;9606:17;9602:26;9570:59;:::i;:::-;9538:92;:::i;:::-;9531:99;8619:1017;-1:-1:-1;;;;;;;;;8619:1017:18:o;9641:1778::-;;10552:34;10547:3;10540:47;10617:28;10612:2;10607:3;10603:12;10596:50;10675:6;10669:13;10691:60;10744:6;10739:2;10734:3;10730:12;10725:2;10717:6;10713:15;10691:60;:::i;:::-;-1:-1:-1;;;10810:2:18;10770:16;;;10802:11;;;10795:24;10844:13;;10866:61;10844:13;10913:2;10905:11;;10900:2;10888:15;;10866:61;:::i;:::-;10992:9;10987:2;10946:17;;;;10979:11;;;10972:30;11031:34;11026:2;11018:11;;11011:55;11095:29;11090:2;11082:11;;11075:50;11155:19;11149:3;11141:12;;11134:41;11200:13;;11222:62;11200:13;11269:3;11261:12;;11256:2;11244:15;;11222:62;:::i;:::-;-1:-1:-1;;;11344:3:18;11303:17;;;;11336:12;;;11329:27;11372:41;11408:3;11400:12;;11392:6;11372:41;:::i;11424:448::-;;11686:31;11681:3;11674:44;11747:6;11741:13;11763:62;11818:6;11813:2;11808:3;11804:12;11797:4;11789:6;11785:17;11763:62;:::i;:::-;11845:16;;;;11863:2;11841:25;;11664:208;-1:-1:-1;;11664:208:18:o;11877:391::-;;12034:2;12023:9;12016:21;12066:6;12060:13;12109:6;12104:2;12093:9;12089:18;12082:34;12125:66;12184:6;12179:2;12168:9;12164:18;12159:2;12151:6;12147:15;12125:66;:::i;:::-;12252:2;12231:15;-1:-1:-1;;12227:29:18;12212:45;;;;12259:2;12208:54;;12006:262;-1:-1:-1;;12006:262:18:o;12273:242::-;12343:2;12337:9;12373:17;;;12420:18;12405:34;;12441:22;;;12402:62;12399:2;;;12467:9;12399:2;12494;12487:22;12317:198;;-1:-1:-1;12317:198:18:o;12520:258::-;12592:1;12602:113;12616:6;12613:1;12610:13;12602:113;;;12692:11;;;12686:18;12673:11;;;12666:39;12638:2;12631:10;12602:113;;;12733:6;12730:1;12727:13;12724:2;;;12768:1;12759:6;12754:3;12750:16;12743:27;12724:2;;12573:205;;;:::o"},"methodIdentifiers":{"constructTokenURI(NFTDescriptor.ConstructTokenURIParams)":"c49917d7"}},"metadata":"{\"compiler\":{\"version\":\"0.7.6+commit.7338295f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"quoteTokenAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"baseTokenAddress\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"quoteTokenSymbol\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"baseTokenSymbol\",\"type\":\"string\"},{\"internalType\":\"uint8\",\"name\":\"quoteTokenDecimals\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"baseTokenDecimals\",\"type\":\"uint8\"},{\"internalType\":\"bool\",\"name\":\"flipRatio\",\"type\":\"bool\"},{\"internalType\":\"int24\",\"name\":\"tickLower\",\"type\":\"int24\"},{\"internalType\":\"int24\",\"name\":\"tickUpper\",\"type\":\"int24\"},{\"internalType\":\"int24\",\"name\":\"tickCurrent\",\"type\":\"int24\"},{\"internalType\":\"int24\",\"name\":\"tickSpacing\",\"type\":\"int24\"},{\"internalType\":\"uint24\",\"name\":\"fee\",\"type\":\"uint24\"},{\"internalType\":\"address\",\"name\":\"poolAddress\",\"type\":\"address\"}],\"internalType\":\"struct NFTDescriptor.ConstructTokenURIParams\",\"name\":\"params\",\"type\":\"tuple\"}],\"name\":\"constructTokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/libraries/NFTDescriptor.sol\":\"NFTDescriptor\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[]},\"sources\":{\"@airdao/astra-cl-core/contracts/interfaces/IAstraCLPool.sol\":{\"keccak256\":\"0xd86f876af8f4253bfc7564ae46cfad2d09d83290f4a6a4b133a44740e73d2640\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://bde092b2aba1f27df9701ff9ed1ec7370fb443b0373be6f468ae57dd1e433273\",\"dweb:/ipfs/Qmd3M893Bosob7PVUqC33hcoD2XYHTVFtjgAPhRQibWkFe\"]},\"@airdao/astra-cl-core/contracts/interfaces/pool/IAstraCLPoolActions.sol\":{\"keccak256\":\"0x29e91b8993d8df671a62aa4c3a861bac77990d2ac9f7b8ba883eacfb271964f0\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://d520d78a7d6ed69f53b72fcfea1267fd1d9fa517df6a4138df996f931f8161d8\",\"dweb:/ipfs/QmcRtZcqFBjs163wJxFZ9A4JE6CyR4ySSRqBcDe4KsL4dD\"]},\"@airdao/astra-cl-core/contracts/interfaces/pool/IAstraCLPoolDerivedState.sol\":{\"keccak256\":\"0x17b2c352ea0e1b5c8137c6f1c3aef7ef3b02ac95a6d9a7e165c573c45518748c\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://45af49340294535c5e28f80df0f3a2927a8a8f8b2d8a656197c36734ba018659\",\"dweb:/ipfs/QmYXJZArrZF93TaUMibWe8GDQEqAp4yP7oDMDjTqkaPzVW\"]},\"@airdao/astra-cl-core/contracts/interfaces/pool/IAstraCLPoolEvents.sol\":{\"keccak256\":\"0x33715230197f3b2e24a7d76c9b4ea78dacbde03d5b5e4614b118f59fad2ca004\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://1da6ef4e8c8549ea5836e040233afe78424b33de50bbf8a83bc521fc1ae0b7f5\",\"dweb:/ipfs/QmVt57cHvYNaQ94VrnTgRhDN81hq7zeV3UU1EQ3F8z2kw7\"]},\"@airdao/astra-cl-core/contracts/interfaces/pool/IAstraCLPoolImmutables.sol\":{\"keccak256\":\"0x366c9b646ed0a7e8a2ff3b01e61b078b0397b605459804948a3b5dbfadf87f07\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://4a211d5a178f08cd93b082fddd142fb144f4bc76a0d56f7bddc6b01b5433f864\",\"dweb:/ipfs/QmXbsAbdrcyiHZwksqvQ45m579Qc9C6ThPXQUttP72gUFa\"]},\"@airdao/astra-cl-core/contracts/interfaces/pool/IAstraCLPoolOwnerActions.sol\":{\"keccak256\":\"0xf783673049e12e1f5ab4784c9ffdbaef66d4cd7709ac7c43af3ab163dfcc4819\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://c64e566d63ff5e1cf081d718e5356810fedce220a473330c20aef166275cd9a9\",\"dweb:/ipfs/QmdsBonXzuaiQC8BxYVCvmcWUtnkKzp873poeH6jbsuidP\"]},\"@airdao/astra-cl-core/contracts/interfaces/pool/IAstraCLPoolState.sol\":{\"keccak256\":\"0xb41dbeb5a9faebd4222678080759032377f8dedf65388bfe1644dc6f2aaeef39\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://c7ebd43d4b1c485d5b536160d138b0206b985cf6c5f82c19dd945ff0d87ca350\",\"dweb:/ipfs/QmPuuoryMaBArNtHvNaY5PpDGmfNajoqjdyWBmGWCdbXkW\"]},\"@airdao/astra-cl-core/contracts/libraries/BitMath.sol\":{\"keccak256\":\"0x82e425066110aac05ed8a9fc90f9ee85142b6f434769447e49d4438a8d9fcd82\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://77a97078bc992c18c59cb61e07fa4632c8a26b6babf00f3b16eabb5dcaa953b4\",\"dweb:/ipfs/QmTj15ufLWk6AxedSVXBcLp5cYf2DCJAeDi94cVemCkm54\"]},\"@airdao/astra-cl-core/contracts/libraries/FullMath.sol\":{\"keccak256\":\"0x5340256039418f5d03512a44173d3dcf1da277a73a461e06fb5668f49cfc46f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://75dee99795d1125875233a7f1d356935099cc97b4085c0e451060d77db85d144\",\"dweb:/ipfs/QmTGqyrxVLQd8TBaarqSQDiYvq1QFutCdmTyXk6JpxzKTN\"]},\"@airdao/astra-cl-core/contracts/libraries/TickMath.sol\":{\"keccak256\":\"0xe22d07f1ebf9c8468c81cb6905bfc8f8a54fa2f9b4a50742202a47cdbcb5af80\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://d4773ca5008d2a2f496370695942c8ba3d6e1d487adbf5cda1149da12e3a6268\",\"dweb:/ipfs/QmcPYTLpEWfU8e3KAYBfHH7uYR4tGAkvnWrWS1CG8EkyLC\"]},\"@openzeppelin/contracts/math/SafeMath.sol\":{\"keccak256\":\"0xe22a1fc7400ae196eba2ad1562d0386462b00a6363b742d55a2fd2021a58586f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4a635cec58fb4141a16cfd408f1a21ac944c335a3beaba541c35d2e95c04536f\",\"dweb:/ipfs/QmXWcz73UenN1ji8jiWMbzxHjjfLbNQwLVKTEB5zNFE34K\"]},\"@openzeppelin/contracts/math/SignedSafeMath.sol\":{\"keccak256\":\"0xba085261d44cf28d2583f7c8cdb2f0a6a495ff1a640f86d995ea9d36b42b0046\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://03481543f67d854c94f73b006609ccd0e11a2461837296bf9d27b14b4bde7de6\",\"dweb:/ipfs/QmVt8ZoWv6jPdtoo5zikqrj7ijDvKoQ4BWYiufctStkXd3\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0x08e38e034333372aea8cb1b8846085b7fbab42c6b77a0af464d2c6827827c4f0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://22746e9348187309fb4fbd3f79f6ad88787103eac10f24bd18f67257fafdd8ad\",\"dweb:/ipfs/QmSLXfXg8b27Xstq58DFGvCpqgtTqpfrGbLMq19PtEKQJS\"]},\"base64-sol/base64.sol\":{\"keccak256\":\"0x0c8ad17afea99676d4dbab1857f52a7660b67602a79d03abd0a4c742074bbeb3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://692d64ac089a389d2e955d92c75e9f3ee642257a39c91c2efa7493a21e79d61a\",\"dweb:/ipfs/QmVSGRBRjeh4APNHjHD5GbYY7BrBhWRj8aHkmqHJQwQiK1\"]},\"contracts/libraries/HexStrings.sol\":{\"keccak256\":\"0x667d05bd5eb87dd445aee26790f8a96ad1fb339f324be97f85f20d6697533ebc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0deb463c872c0befbc355adabf6eedc42fdddbcbc43ec9baaa7a51fd7422992c\",\"dweb:/ipfs/QmW3Q9jSUCijLet37aLrV4jJcR5ZR3WgUhM3uCf9dDyeFC\"]},\"contracts/libraries/NFTDescriptor.sol\":{\"keccak256\":\"0x2f57a3e5e35059ef99c6390d46ced83b9b77834ee06ce10d00b09f3381b17d96\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://7e42934b3a7dd9093be4efa84ae2e113f5f91c2a00c4c1aec428b1d1514caba2\",\"dweb:/ipfs/QmVDcHMePtMgGkR1qANL8oQBgJXz6AB23c9vtSs6cKWm1p\"]},\"contracts/libraries/NFTSVG.sol\":{\"keccak256\":\"0x1ad3e059ed0fedde1bccd2006fec33c7da3ddc1355cdd86499c1bcb18e7f5fd3\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://22617c2261586fd19540e41ffaef1bbe35dd6f4133c0b319b2a4fa30b8d2819e\",\"dweb:/ipfs/QmfQPyA9w3N3jGUxYXkZT6HiKJQu5EkrKtiMyQTiztzmmU\"]}},\"version\":1}"}},"contracts/libraries/NFTSVG.sol":{"NFTSVG":{"abi":[],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{},"object":"602d6023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c6343000706000a","opcodes":"PUSH1 0x2D PUSH1 0x23 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x16 JUMPI INVALID JUMPDEST ADDRESS PUSH1 0x0 MSTORE PUSH1 0x73 DUP2 MSTORE8 DUP3 DUP2 RETURN INVALID PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG1 PUSH5 0x736F6C6343 STOP SMOD MOD STOP EXP ","sourceMap":"376:19036:16:-:0;;;;;;;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea164736f6c6343000706000a","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG1 PUSH5 0x736F6C6343 STOP SMOD MOD STOP EXP ","sourceMap":"376:19036:16:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.7.6+commit.7338295f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"title\":\"NFTSVG\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Provides a function for generating an SVG associated with a AstraDEX NFT\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/libraries/NFTSVG.sol\":\"NFTSVG\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[]},\"sources\":{\"@airdao/astra-cl-core/contracts/libraries/BitMath.sol\":{\"keccak256\":\"0x82e425066110aac05ed8a9fc90f9ee85142b6f434769447e49d4438a8d9fcd82\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://77a97078bc992c18c59cb61e07fa4632c8a26b6babf00f3b16eabb5dcaa953b4\",\"dweb:/ipfs/QmTj15ufLWk6AxedSVXBcLp5cYf2DCJAeDi94cVemCkm54\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0x08e38e034333372aea8cb1b8846085b7fbab42c6b77a0af464d2c6827827c4f0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://22746e9348187309fb4fbd3f79f6ad88787103eac10f24bd18f67257fafdd8ad\",\"dweb:/ipfs/QmSLXfXg8b27Xstq58DFGvCpqgtTqpfrGbLMq19PtEKQJS\"]},\"base64-sol/base64.sol\":{\"keccak256\":\"0x0c8ad17afea99676d4dbab1857f52a7660b67602a79d03abd0a4c742074bbeb3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://692d64ac089a389d2e955d92c75e9f3ee642257a39c91c2efa7493a21e79d61a\",\"dweb:/ipfs/QmVSGRBRjeh4APNHjHD5GbYY7BrBhWRj8aHkmqHJQwQiK1\"]},\"contracts/libraries/NFTSVG.sol\":{\"keccak256\":\"0x1ad3e059ed0fedde1bccd2006fec33c7da3ddc1355cdd86499c1bcb18e7f5fd3\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://22617c2261586fd19540e41ffaef1bbe35dd6f4133c0b319b2a4fa30b8d2819e\",\"dweb:/ipfs/QmfQPyA9w3N3jGUxYXkZT6HiKJQu5EkrKtiMyQTiztzmmU\"]}},\"version\":1}"}},"contracts/test/NFTDescriptorTest.sol":{"NFTDescriptorTest":{"abi":[{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"addressToString","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"components":[{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"address","name":"quoteTokenAddress","type":"address"},{"internalType":"address","name":"baseTokenAddress","type":"address"},{"internalType":"string","name":"quoteTokenSymbol","type":"string"},{"internalType":"string","name":"baseTokenSymbol","type":"string"},{"internalType":"uint8","name":"quoteTokenDecimals","type":"uint8"},{"internalType":"uint8","name":"baseTokenDecimals","type":"uint8"},{"internalType":"bool","name":"flipRatio","type":"bool"},{"internalType":"int24","name":"tickLower","type":"int24"},{"internalType":"int24","name":"tickUpper","type":"int24"},{"internalType":"int24","name":"tickCurrent","type":"int24"},{"internalType":"int24","name":"tickSpacing","type":"int24"},{"internalType":"uint24","name":"fee","type":"uint24"},{"internalType":"address","name":"poolAddress","type":"address"}],"internalType":"struct NFTDescriptor.ConstructTokenURIParams","name":"params","type":"tuple"}],"name":"constructTokenURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint24","name":"fee","type":"uint24"}],"name":"feeToPercentString","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint160","name":"sqrtRatioX96","type":"uint160"},{"internalType":"uint8","name":"token0Decimals","type":"uint8"},{"internalType":"uint8","name":"token1Decimals","type":"uint8"}],"name":"fixedPointToDecimalString","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"components":[{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"address","name":"quoteTokenAddress","type":"address"},{"internalType":"address","name":"baseTokenAddress","type":"address"},{"internalType":"string","name":"quoteTokenSymbol","type":"string"},{"internalType":"string","name":"baseTokenSymbol","type":"string"},{"internalType":"uint8","name":"quoteTokenDecimals","type":"uint8"},{"internalType":"uint8","name":"baseTokenDecimals","type":"uint8"},{"internalType":"bool","name":"flipRatio","type":"bool"},{"internalType":"int24","name":"tickLower","type":"int24"},{"internalType":"int24","name":"tickUpper","type":"int24"},{"internalType":"int24","name":"tickCurrent","type":"int24"},{"internalType":"int24","name":"tickSpacing","type":"int24"},{"internalType":"uint24","name":"fee","type":"uint24"},{"internalType":"address","name":"poolAddress","type":"address"}],"internalType":"struct NFTDescriptor.ConstructTokenURIParams","name":"params","type":"tuple"}],"name":"generateSVGImage","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"components":[{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"address","name":"quoteTokenAddress","type":"address"},{"internalType":"address","name":"baseTokenAddress","type":"address"},{"internalType":"string","name":"quoteTokenSymbol","type":"string"},{"internalType":"string","name":"baseTokenSymbol","type":"string"},{"internalType":"uint8","name":"quoteTokenDecimals","type":"uint8"},{"internalType":"uint8","name":"baseTokenDecimals","type":"uint8"},{"internalType":"bool","name":"flipRatio","type":"bool"},{"internalType":"int24","name":"tickLower","type":"int24"},{"internalType":"int24","name":"tickUpper","type":"int24"},{"internalType":"int24","name":"tickCurrent","type":"int24"},{"internalType":"int24","name":"tickSpacing","type":"int24"},{"internalType":"uint24","name":"fee","type":"uint24"},{"internalType":"address","name":"poolAddress","type":"address"}],"internalType":"struct NFTDescriptor.ConstructTokenURIParams","name":"params","type":"tuple"}],"name":"getGasCostOfConstructTokenURI","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"address","name":"poolAddress","type":"address"}],"name":"isRare","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"int24","name":"tickLower","type":"int24"},{"internalType":"int24","name":"tickUpper","type":"int24"}],"name":"rangeLocation","outputs":[{"internalType":"string","name":"","type":"string"},{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"offset","type":"uint256"}],"name":"sliceTokenHex","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"int24","name":"tick","type":"int24"},{"internalType":"int24","name":"tickSpacing","type":"int24"},{"internalType":"uint8","name":"token0Decimals","type":"uint8"},{"internalType":"uint8","name":"token1Decimals","type":"uint8"},{"internalType":"bool","name":"flipRatio","type":"bool"}],"name":"tickToDecimalString","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"offset","type":"uint256"}],"name":"tokenToColorHex","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"}],"evm":{"bytecode":{"generatedSources":[],"linkReferences":{"contracts/libraries/NFTDescriptor.sol":{"NFTDescriptor":[{"length":20,"start":605},{"length":20,"start":862}]}},"object":"608060405234801561001057600080fd5b50615e3c806100206000396000f3fe608060405234801561001057600080fd5b50600436106100c95760003560e01c8063d5c0bdd811610081578063e73869061161005b578063e738690614610197578063ea4d3bcd146101b7578063f93a7911146101ca576100c9565b8063d5c0bdd81461015e578063d6986d4514610171578063e1649fcf14610184576100c9565b80635e57966d116100b25780635e57966d14610118578063854924ab1461012b5780639288c2181461014b576100c9565b80632fa2af10146100ce5780633a0cdee2146100f8575b600080fd5b6100e16100dc366004613ec7565b6101dd565b6040516100ef929190614296565b60405180910390f35b61010b610106366004613e9c565b6101f6565b6040516100ef9190614283565b61010b610126366004613e80565b610214565b61013e610139366004613fc7565b610227565b6040516100ef9190614454565b61010b610159366004613ef9565b6102c3565b61010b61016c36600461416b565b6102de565b61013e61017f366004613e9c565b6102f5565b61010b610192366004614000565b61030a565b6101aa6101a53660046141c9565b610315565b6040516100ef9190614278565b61010b6101c53660046141af565b610321565b61010b6101d8366004613fc7565b61032c565b6060806101ea84846103ba565b915091505b9250929050565b606061020b836001600160a01b0316836107eb565b90505b92915050565b606061021f826107fa565b90505b919050565b6000805a60405163c49917d760e01b815290915073__$cea9be979eee3d87fb124d6cbb244bb0b5$__9063c49917d7906102659086906004016142bb565b60006040518083038186803b15801561027d57600080fd5b505af4158015610291573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526102b99190810190613f5d565b505a900392915050565b60606102d28686868686610810565b90505b95945050505050565b60606102eb84848461093a565b90505b9392505050565b600061020b836001600160a01b031683610b0e565b606061021f82610b15565b600061020b8383610d50565b606061021f82610db3565b60405163c49917d760e01b815260609073__$cea9be979eee3d87fb124d6cbb244bb0b5$__9063c49917d7906103669085906004016142bb565b60006040518083038186803b15801561037e57600080fd5b505af4158015610392573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261021f9190810190613f5d565b60608060006002858501810b0590506201e847198160020b121561043257604051806040016040528060018152602001600760fb1b8152506040518060400160405280600181526020017f370000000000000000000000000000000000000000000000000000000000000081525092509250506101ef565b620124f7198160020b121561049b57604051806040016040528060018152602001600760fb1b8152506040518060400160405280600481526020017f31302e350000000000000000000000000000000000000000000000000000000081525092509250506101ef565b6161a7198160020b121561050357604051806040016040528060018152602001600760fb1b8152506040518060400160405280600581526020017f31342e323500000000000000000000000000000000000000000000000000000081525092509250506101ef565b611387198160020b121561056c576040518060400160405280600281526020017f313000000000000000000000000000000000000000000000000000000000000081525060405180604001604052806002815260200161062760f31b81525092509250506101ef565b60008160020b12156105d3576040518060400160405280600281526020017f313100000000000000000000000000000000000000000000000000000000000081525060405180604001604052806002815260200161323160f01b81525092509250506101ef565b6113888160020b1215610656576040518060400160405280600281526020017f31330000000000000000000000000000000000000000000000000000000000008152506040518060400160405280600281526020017f323300000000000000000000000000000000000000000000000000000000000081525092509250506101ef565b6161a88160020b12156106d9576040518060400160405280600281526020017f31350000000000000000000000000000000000000000000000000000000000008152506040518060400160405280600281526020017f323500000000000000000000000000000000000000000000000000000000000081525092509250506101ef565b620124f88160020b12156107425760405180604001604052806002815260200161062760f31b8152506040518060400160405280600281526020017f323600000000000000000000000000000000000000000000000000000000000081525092509250506101ef565b6201e8488160020b12156107905760405180604001604052806002815260200161323160f01b81525060405180604001604052806002815260200161323760f01b81525092509250506101ef565b6040518060400160405280600281526020017f323400000000000000000000000000000000000000000000000000000000000081525060405180604001604052806002815260200161323760f01b81525092509250506101ef565b606061020b83831c600361100e565b606061021f6001600160a01b03831660146110d5565b606084600281900b620d89e7198161082457fe5b050260020b8660020b141561087e57811561085a576040518060400160405280600381526020016209a82b60eb1b815250610877565b6040518060400160405280600381526020016226a4a760e91b8152505b90506102d5565b84600281900b620d89e88161088f57fe5b050260020b8660020b14156108e55781156108c5576040518060400160405280600381526020016226a4a760e91b815250610877565b5060408051808201909152600381526209a82b60eb1b60208201526102d5565b60006108f08761125d565b905082156109275761092478010000000000000000000000000000000000000000000000006001600160a01b0383166115ab565b90505b61093281868661093a565b9150506102d5565b60606000610949858585611612565b90506000610961828368010000000000000000611714565b90506c01000000000000000000000000821080156109a25761099b8272047bf19673df52e37f2410011d100000000000600160801b611714565b91506109b7565b6109b482620186a0600160801b611714565b91505b8160005b81156109cf57600101600a820491506109bb565b600019016000806109e086846117c3565b9150915080156109f1576001909201915b6109f9613d9a565b8515610a6c57610a18610a10602b60ff871661182f565b60079061188c565b60ff908116602083015260026080830152610a4490600190610a3e90602b90881661182f565b9061188c565b60ff90811660a08301526020820151610a5f9116600161182f565b60ff166040820152610ae3565b60098460ff1610610ab557610a8560ff8516600461182f565b60ff166020820181905260056080830152610aa190600161182f565b60ff1660a082015260046040820152610ae3565b60066020820152600560408201819052610ada90600190610a3e9060ff88169061182f565b60ff1660608201525b82815285151560c0820152600060e0820152610afe816118e6565b9c9b505050505050505050505050565b1c60ff1690565b60606000604051806102a00160405280610b3285602001516107fa565b8152602001610b4485604001516107fa565b8152602001846101a001516001600160a01b031681526020018460600151815260200184608001518152602001610b7f856101800151610db3565b815260200184610100015160020b815260200184610120015160020b815260200184610160015160020b8152602001610bc8856101000151866101200151876101400151611b12565b60000b815260200184600001518152602001610bf285602001516001600160a01b031660886107eb565b8152602001610c0f85604001516001600160a01b031660886107eb565b8152602001610c2c85602001516001600160a01b031660006107eb565b8152602001610c4985604001516001600160a01b031660006107eb565b8152602001610c7c610c6e86602001516001600160a01b031660108860000151611b49565b600060ff6010610112611b69565b8152602001610caf610ca186604001516001600160a01b031660108860000151611b49565b600060ff60646101e4611b69565b8152602001610cd4610c6e86602001516001600160a01b031660208860000151611b49565b8152602001610cf9610ca186604001516001600160a01b031660208860000151611b49565b8152602001610d1e610c6e86602001516001600160a01b031660308860000151611b49565b8152602001610d43610ca186604001516001600160a01b031660308860000151611b49565b905290506102ee81611ba7565b6040805160208082018590526bffffffffffffffffffffffff19606085901b16828401528251603481840301815260549092019092528051910120600090610d9784611e36565b60020260010160ff1660001981610daa57fe5b04119392505050565b606062ffffff8216610df9575060408051808201909152600281527f30250000000000000000000000000000000000000000000000000000000000006020820152610222565b816000805b62ffffff831615610e495760ff811615610e1a57600101610e33565b600a62ffffff84160662ffffff16600014610e33576001015b600190910190600a62ffffff8416049250610dfe565b610e51613d9a565b600060058410610f405760006004610e6c8660ff871661182f565b1015610e79576001610e7c565b60005b60ff9081169150610e90908516600161182f565b610e9b86600561182f565b10610ec757610ec2610eb160ff8616600161182f565b610ebc87600561182f565b9061182f565b610eca565b60005b60ff851660808501819052909250610ee990600190610ebc908561188c565b60ff90811660a08501526080840151610f0a918391610a3e9116600161182f565b60ff9081166040850152610f32908290610a3e90610f2b908816600161188c565b859061188c565b60ff16602084015250610fb0565b610f4b60058561182f565b600260808401819052909150610f6990600190610ebc90849061188c565b60ff90811660a0840152610f8b90610f84908516600261188c565b829061188c565b60ff1660208301819052610fa090600261182f565b60ff166040830152600160c08301525b610fcf610fc08560ff861661182f565b62ffffff891690600a0a6115ab565b8252600160e083015260048411610fe7576000610ff2565b610ff284600461182f565b60ff166060830152611003826118e6565b979650505050505050565b606060008260020267ffffffffffffffff8111801561102c57600080fd5b506040519080825280601f01601f191660200182016040528015611057576020820181803683370190505b5080519091505b80156110cd577f303132333435363738396162636465660000000000000000000000000000000085600f166010811061109357fe5b1a60f81b8260018303815181106110a657fe5b60200101906001600160f81b031916908160001a90535060049490941c936000190161105e565b509392505050565b606060008260020260020167ffffffffffffffff811180156110f657600080fd5b506040519080825280601f01601f191660200182016040528015611121576020820181803683370190505b509050600360fc1b8160008151811061113657fe5b60200101906001600160f81b031916908160001a9053507f78000000000000000000000000000000000000000000000000000000000000008160018151811061117b57fe5b60200101906001600160f81b031916908160001a905350600160028402015b6001811115611209577f303132333435363738396162636465660000000000000000000000000000000085600f16601081106111d257fe5b1a60f81b8282815181106111e257fe5b60200101906001600160f81b031916908160001a90535060049490941c936000190161119a565b50831561020b576040805162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e74604482015290519081900360640190fd5b60008060008360020b12611274578260020b61127c565b8260020b6000035b9050620d89e88111156112d6576040805162461bcd60e51b815260206004820152600160248201527f5400000000000000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b6000600182166112ea57600160801b6112fc565b6ffffcb933bd6fad37aa2d162d1a5940015b70ffffffffffffffffffffffffffffffffff1690506002821615611330576ffff97272373d413259a46990580e213a0260801c5b600482161561134f576ffff2e50f5f656932ef12357cf3c7fdcc0260801c5b600882161561136e576fffe5caca7e10e4e61c3624eaa0941cd00260801c5b601082161561138d576fffcb9843d60f6159c9db58835c9266440260801c5b60208216156113ac576fff973b41fa98c081472e6896dfb254c00260801c5b60408216156113cb576fff2ea16466c96a3843ec78b326b528610260801c5b60808216156113ea576ffe5dee046a99a2a811c461f1969c30530260801c5b61010082161561140a576ffcbe86c7900a88aedcffc83b479aa3a40260801c5b61020082161561142a576ff987a7253ac413176f2b074cf7815e540260801c5b61040082161561144a576ff3392b0822b70005940c7a398e4b70f30260801c5b61080082161561146a576fe7159475a2c29b7443b29c7fa6e889d90260801c5b61100082161561148a576fd097f3bdfd2022b8845ad8f792aa58250260801c5b6120008216156114aa576fa9f746462d870fdf8a65dc1f90e061e50260801c5b6140008216156114ca576f70d869a156d2a1b890bb3df62baf32f70260801c5b6180008216156114ea576f31be135f97d08fd981231505542fcfa60260801c5b6201000082161561150b576f09aa508b5b7a84e1c677de54f3e99bc90260801c5b6202000082161561152b576e5d6af8dedb81196699c329225ee6040260801c5b6204000082161561154a576d2216e584f5fa1ea926041bedfe980260801c5b62080000821615611567576b048a170391f7dc42444e8fa20260801c5b60008460020b131561158257806000198161157e57fe5b0490505b640100000000810615611596576001611599565b60005b60ff16602082901c0192505050919050565b6000808211611601576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b81838161160a57fe5b049392505050565b60008061162d61162860ff868116908616611ed6565b611f3b565b9050600081118015611640575060128111155b15611701578260ff168460ff1611156116aa576116746116618260026115ab565b6001600160a01b03871690600a0a611f52565b915060028106600114156116a5576116a2827003298b075b4b6a5240945790619b37fd4a600160801b611714565b91505b6116fc565b6116cb6116b88260026115ab565b6001600160a01b03871690600a0a6115ab565b915060028106600114156116fc576116f982600160801b7003298b075b4b6a5240945790619b37fd4a611714565b91505b6110cd565b50506001600160a01b0390921692915050565b600080806000198587098686029250828110908390030390508061174a576000841161173f57600080fd5b5082900490506102ee565b80841161175657600080fd5b6000848688096000868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010186841190950394909402919094039290920491909117919091029150509392505050565b600080600060058460ff1611156117eb576117e88560ff600419870116600a0a6115ab565b94505b60006004600a870611905061180186600a6115ab565b95508015611810578560010195505b85620186a0141561182657600a86049550600191505b50939492505050565b600082821115611886576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b60008282018381101561020b576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b60606000826020015160ff1667ffffffffffffffff8111801561190857600080fd5b506040519080825280601f01601f191660200182016040528015611933576020820181803683370190505b5090508260e0015115611989577f25000000000000000000000000000000000000000000000000000000000000008160018351038151811061197157fe5b60200101906001600160f81b031916908160001a9053505b8260c00151156119e657600360fc1b816000815181106119a557fe5b60200101906001600160f81b031916908160001a905350601760f91b816001815181106119ce57fe5b60200101906001600160f81b031916908160001a9053505b608083015160ff165b60a0840151611a029060ff16600161188c565b811015611a3957603060f81b828281518110611a1a57fe5b60200101906001600160f81b031916908160001a9053506001016119ef565b505b82511561021f576000836060015160ff16118015611a665750826060015160ff16836040015160ff16145b15611aa95760408301805160ff600019820181169092528251601760f91b92849216908110611a9157fe5b60200101906001600160f81b031916908160001a9053505b8251611abb90603090600a900661188c565b60f81b818460400180518091906001900360ff1660ff1681525060ff1681518110611ae257fe5b60200101906001600160f81b031916908160001a905350600a8360000181815181611b0957fe5b04905250611a3b565b60008360020b8260020b1215611b2b57506000196102ee565b8260020b8260020b1315611b41575060016102ee565b5060006102ee565b600060ff82611b588686610b0e565b0281611b6057fe5b06949350505050565b60606102d2611ba284610a3e611b7f888a61182f565b611b9c611b8c888a61182f565b611b968d8d61182f565b90611f52565b906115ab565b611fab565b6060611bb282612086565b611bce836000015184602001518560600151866080015161273a565b611be5846060015185608001518660a00151612a65565b611c038560c001518660e00151876101000151886101200151612bd1565b611c23611c14876101400151611fab565b8760c001518860e00151612f24565b611c368761014001518860400151613355565b6040516020018087805190602001908083835b60208310611c685780518252601f199092019160209182019101611c49565b51815160209384036101000a600019018019909216911617905289519190930192890191508083835b60208310611cb05780518252601f199092019160209182019101611c91565b51815160209384036101000a600019018019909216911617905288519190930192880191508083835b60208310611cf85780518252601f199092019160209182019101611cd9565b51815160209384036101000a600019018019909216911617905287519190930192870191508083835b60208310611d405780518252601f199092019160209182019101611d21565b51815160209384036101000a600019018019909216911617905286519190930192860191508083835b60208310611d885780518252601f199092019160209182019101611d69565b51815160209384036101000a600019018019909216911617905285519190930192850191508083835b60208310611dd05780518252601f199092019160209182019101611db1565b5181516020939093036101000a60001901801990911692169190911790527f3c2f7376673e000000000000000000000000000000000000000000000000000092019182525060408051808303601919018152600690920190529998505050505050505050565b6000808211611e4457600080fd5b600160801b8210611e5757608091821c91015b680100000000000000008210611e6f57604091821c91015b6401000000008210611e8357602091821c91015b620100008210611e9557601091821c91015b6101008210611ea657600891821c91015b60108210611eb657600491821c91015b60048210611ec657600291821c91015b6002821061022257600101919050565b6000818303818312801590611eeb5750838113155b80611f005750600083128015611f0057508381135b61020b5760405162461bcd60e51b8152600401808060200182810382526024815260200180615bd06024913960400191505060405180910390fd5b600080821215611f4e578160000361021f565b5090565b600082611f615750600061020e565b82820282848281611f6e57fe5b041461020b5760405162461bcd60e51b81526004018080602001828103825260218152602001806152e96021913960400191505060405180910390fd5b606081611fd057506040805180820190915260018152600360fc1b6020820152610222565b8160005b8115611fe857600101600a82049150611fd4565b60008167ffffffffffffffff8111801561200157600080fd5b506040519080825280601f01601f19166020018201604052801561202c576020820181803683370190505b50859350905060001982015b831561207d57600a840660300160f81b8282806001900393508151811061205b57fe5b60200101906001600160f81b031916908160001a905350600a84049350612038565b50949350505050565b606061211b8261016001516040516020018080614ea36081913960810182805190602001908083835b602083106120ce5780518252601f1990920191602091820191016120af565b6001836020036101000a038019825116818451168082178552505050505050905001806813979f1e17b9bb339f60b91b8152506009019150506040516020818303038152906040526133cd565b612287836101e0015184610200015185610180015160405160200180806149e06063913960630184805190602001908083835b6020831061216d5780518252601f19909201916020918201910161214e565b51815160209384036101000a600019018019909216911617905265272063793d2760d01b919093019081528551600690910192860191508083835b602083106121c75780518252601f1990920191602091820191016121a8565b51815160209384036101000a60001901801990921691161790527f2720723d273132307078272066696c6c3d272300000000000000000000000000919093019081528451601390910192850191508083835b602083106122385780518252601f199092019160209182019101612219565b6001836020036101000a038019825116818451168082178552505050505050905001806813979f1e17b9bb339f60b91b81525060090193505050506040516020818303038152906040526133cd565b6122d8846102200151856102400151866101a0015160405160200180806149e06063913960630184805190602001908083836020831061216d5780518252601f19909201916020918201910161214e565b6123f7856102600151866102800151876101c0015160405160200180806149e06063913960630184805190602001908083835b6020831061232a5780518252601f19909201916020918201910161230b565b51815160209384036101000a600019018019909216911617905265272063793d2760d01b919093019081528551600690910192860191508083835b602083106123845780518252601f199092019160209182019101612365565b51815160001960209485036101000a019081169019919091161790527f2720723d273130307078272066696c6c3d2723000000000000000000000000009390910192835284516013909301929085019150808383602083106122385780518252601f199092019160209182019101612219565b61016086015160405160200180605661475b8239605601602c61510a82397f3c646566733e0000000000000000000000000000000000000000000000000000602c820152603201604b614e588239604b0186805190602001908083835b602083106124735780518252601f199092019160209182019101612454565b6001836020036101000a03801982511681845116808217855250505050505090500180615990603e9139603e0185805190602001908083835b602083106124cb5780518252601f1990920191602091820191016124ac565b6001836020036101000a03801982511681845116808217855250505050505090500180614f24603e9139603e0184805190602001908083835b602083106125235780518252601f199092019160209182019101612504565b5181516020939093036101000a60001901801990911692169190911790527f22202f3e00000000000000000000000000000000000000000000000000000000920191825250600401603b6146538239603b0183805190602001908083835b602083106125a05780518252601f199092019160209182019101612581565b6001836020036101000a03801982511681845116808217855250505050505090500180614aa060999139609901607f6155418239607f01608861590882396088016041614b398239604101605d615ac88239605d0160726155ed823960720160496145bc823960490160be614d9a823960be01607161486c8239607101607561548482396075016066614b7a823960660160a4615136823960a40160856159ce82397f3c6720636c69702d706174683d2275726c2823636f726e65727329223e00000060858201527f3c726563742066696c6c3d22000000000000000000000000000000000000000060a2820152825160ae9091019060208401908083835b602083106126be5780518252601f19909201916020918201910161269f565b6001836020036101000a03801982511681845116808217855250505050505090500180614be060319139603101604e6146058239604e01605d614a438239605d01604161508982396041016052614f6282396052016075615a538239607501955050505050506040516020818303038152906040529050919050565b60608382858488878a896040516020018080615bab60259139602501607d614d1d8239607d0189805190602001908083835b6020831061278b5780518252601f19909201916020918201910161276c565b51815160209384036101000a600019018019909216911617905264010714051160dd1b919093019081528a516005909101928b0191508083835b602083106127e45780518252601f1990920191602091820191016127c5565b6001836020036101000a03801982511681845116808217855250505050505090500180614c11607991396079016086615b25823960860187805190602001908083835b602083106128465780518252601f199092019160209182019101612827565b51815160209384036101000a600019018019909216911617905264010714051160dd1b919093019081528851600590910192890191508083835b6020831061289f5780518252601f199092019160209182019101612880565b6001836020036101000a038019825116818451168082178552505050505050905001806147e760859139608501607b6157768239607b0185805190602001908083835b602083106129015780518252601f1990920191602091820191016128e2565b51815160209384036101000a600019018019909216911617905264010714051160dd1b919093019081528651600590910192870191508083835b6020831061295a5780518252601f19909201916020918201910161293b565b6001836020036101000a03801982511681845116808217855250505050505090500180614931605d9139605d0160a36153e1823960a30183805190602001908083835b602083106129bc5780518252601f19909201916020918201910161299d565b51815160209384036101000a600019018019909216911617905264010714051160dd1b919093019081528451600590910192850191508083835b60208310612a155780518252601f1990920191602091820191016129f6565b6001836020036101000a03801982511681845116808217855250505050505090500180614531608b9139608b01985050505050505050506040516020818303038152906040529050949350505050565b6060838383604051602001808061468e60cd913960cd0184805190602001908083835b60208310612aa75780518252601f199092019160209182019101612a88565b6001836020036101000a038019825116818451168082178552505050505050905001807f2f0000000000000000000000000000000000000000000000000000000000000081525060010183805190602001908083835b60208310612b1c5780518252601f199092019160209182019101612afd565b6001836020036101000a03801982511681845116808217855250505050505090500180615d546077913960770182805190602001908083835b60208310612b745780518252601f199092019160209182019101612b55565b5181516020939093036101000a60001901801990911692169190911790526a1e17ba32bc3a1f1e17b39f60a91b920191825250600b016073615bf48239607301935050505060405160208183030381529060405290509392505050565b606060008260000b600114612c63578260000b60001914612c27576040518060400160405280600581526020017f236e6f6e65000000000000000000000000000000000000000000000000000000815250612c5e565b6040518060400160405280600a81526020017f23666164652d646f776e000000000000000000000000000000000000000000008152505b612c9a565b6040518060400160405280600881526020017f23666164652d75700000000000000000000000000000000000000000000000008152505b90506000612ca9878787613552565b905081818383612cb8886137a0565b60405160200180807f3c67206d61736b3d2275726c2800000000000000000000000000000000000000815250600d0186805190602001908083835b60208310612d125780518252601f199092019160209182019101612cf3565b5181516020939093036101000a600019018019909116921691909117905261149160f11b92019182525060020160776151da823960770185805190602001908083835b60208310612d745780518252601f199092019160209182019101612d55565b6001836020036101000a038019825116818451168082178552505050505050905001806148dd60549139605401807f3c2f673e3c67206d61736b3d2275726c2800000000000000000000000000000081525060110184805190602001908083835b60208310612df45780518252601f199092019160209182019101612dd5565b5181516020939093036101000a600019018019909116921691909117905261149160f11b9201918252506002016029615251823960290160456152a48239604501807f3c7061746820643d22000000000000000000000000000000000000000000000081525060090183805190602001908083835b60208310612e885780518252601f199092019160209182019101612e69565b6001836020036101000a038019825116818451168082178552505050505050905001806154f96048913960480182805190602001908083835b60208310612ee05780518252601f199092019160209182019101612ec1565b6001836020036101000a0380198251168184511680821785525050505050509050019550505050505060405160208183030381529060405292505050949350505050565b60606000612f3184613c74565b90506000612f3e84613c74565b865183518251929350600490910191600a9182019101600080612f618a8a6103ba565b91509150612f7485600401600702611fab565b8b612f8486600401600702611fab565b89612f9487600401600702611fab565b8a878760405160200180806155c0602d9139602d01806c1e3932b1ba103bb4b23a341e9160991b815250600d0189805190602001908083835b60208310612fec5780518252601f199092019160209182019101612fcd565b6001836020036101000a03801982511681845116808217855250505050505090500180614fb4603d9139603d01608d615c678239608d0188805190602001908083835b6020831061304e5780518252601f19909201916020918201910161302f565b5181516020939093036101000a60001901801990911692169190911790526a1e17ba32bc3a1f1e17b39f60a91b920191825250600b01602d615e038239602d01806c1e3932b1ba103bb4b23a341e9160991b815250600d0187805190602001908083835b602083106130d15780518252601f1990920191602091820191016130b2565b6001836020036101000a03801982511681845116808217855250505050505090500180614fb4603d9139603d016093614c8a823960930186805190602001908083835b602083106131335780518252601f199092019160209182019101613114565b5181516020939093036101000a60001901801990911692169190911790526a1e17ba32bc3a1f1e17b39f60a91b920191825250600b01602d61498e8239602d01806c1e3932b1ba103bb4b23a341e9160991b815250600d0185805190602001908083835b602083106131b65780518252601f199092019160209182019101613197565b6001836020036101000a03801982511681845116808217855250505050505090500180614fb4603d9139603d0160936157f1823960930184805190602001908083835b602083106132185780518252601f1990920191602091820191016131f9565b6001836020036101000a03801982511681845116808217855250505050505090500180615dcb603891396038016060615cf48239606001606461537d823960640160256149bb823960250183805190602001908083835b6020831061328e5780518252601f19909201916020918201910161326f565b51815160209384036101000a60001901801990921691161790527f70782c2000000000000000000000000000000000000000000000000000000000919093019081528451600490910192850191508083835b602083106132ff5780518252601f1990920191602091820191016132e0565b6001836020036101000a038019825116818451168082178552505050505050905001806147b160369139603601985050505050505050506040516020818303038152906040529750505050505050509392505050565b60606133618383610d50565b156133b75760405160200180608d6156e98239608d01607361530a823960730160716150188239607101608a61565f8239608a01608461588482396084019050604051602081830303815290604052905061020e565b5060408051602081019091526000815292915050565b60608151600014156133ee5750604080516020810190915260008152610222565b60006040518060600160405280604081526020016150ca6040913990506000600384516002018161341b57fe5b04600402905060008160200167ffffffffffffffff8111801561343d57600080fd5b506040519080825280601f01601f191660200182016040528015613468576020820181803683370190505b509050818152600183018586518101602084015b818310156134d65760039283018051603f601282901c811687015160f890811b8552600c83901c8216880151811b6001860152600683901c8216880151811b60028601529116860151901b9382019390935260040161347c565b6003895106600181146134f0576002811461351c57613544565b7f3d3d000000000000000000000000000000000000000000000000000000000000600119830152613544565b7f3d000000000000000000000000000000000000000000000000000000000000006000198301525b509398975050505050505050565b606060008260020b85850360020b8161356757fe5b05905060048160020b136135b2576040518060400160405280601a81526020017f4d3120314334312034312031303520313035203134352031343500000000000081525091506110cd565b60088160020b136135fa576040518060400160405280601981526020017f4d3120314333332034392039372031313320313435203134350000000000000081525091506110cd565b60108160020b13613642576040518060400160405280601981526020017f4d3120314333332035372038392031313320313435203134350000000000000081525091506110cd565b60208160020b1361368a576040518060400160405280601981526020017f4d3120314332352036352038312031323120313435203134350000000000000081525091506110cd565b60408160020b136136d2576040518060400160405280601981526020017f4d3120314331372037332037332031323920313435203134350000000000000081525091506110cd565b60808160020b1361371a576040518060400160405280601881526020017f4d3120314339203831203635203133372031343520313435000000000000000081525091506110cd565b6101008160020b13613763576040518060400160405280601a81526020017f4d31203143312038392035372e3520313435203134352031343500000000000081525091506110cd565b505060408051808201909152601881527f4d3120314331203937203439203134352031343520313435000000000000000060208201529392505050565b604080518082018252600281527f37330000000000000000000000000000000000000000000000000000000000006020808301919091528251808401845260038082527f313930000000000000000000000000000000000000000000000000000000000082840152845180860186528181527f32313700000000000000000000000000000000000000000000000000000000008185015285518087019096529085527f3333340000000000000000000000000000000000000000000000000000000000928501929092526060939091906001600087900b148061388757508560000b600019145b15613a7e578560000b6000191461389e57816138a0565b835b8660000b600019146138b257816138b4565b835b8760000b600019146138c657836138c8565b855b8860000b600019146138da57836138dc565b855b60405160200180806b1e31b4b931b6329031bc1e9160a11b815250600c0185805190602001908083835b602083106139255780518252601f199092019160209182019101613906565b51815160209384036101000a600019018019909216911617905267383c111031bc9e9160c11b919093019081528651600890910192870191508083835b602083106139815780518252601f199092019160209182019101613962565b6001836020036101000a03801982511681845116808217855250505050505090500180614ff16027913960270183805190602001908083835b602083106139d95780518252601f1990920191602091820191016139ba565b51815160209384036101000a600019018019909216911617905267383c111031bc9e9160c11b919093019081528451600890910192850191508083835b60208310613a355780518252601f199092019160209182019101613a16565b6001836020036101000a0380198251168184511680821785525050505050509050018061527a602a9139602a019450505050506040516020818303038152906040529450613c6b565b8383838360405160200180806b1e31b4b931b6329031bc1e9160a11b815250600c0185805190602001908083835b60208310613acb5780518252601f199092019160209182019101613aac565b51815160209384036101000a600019018019909216911617905267383c111031bc9e9160c11b919093019081528651600890910192870191508083835b60208310613b275780518252601f199092019160209182019101613b08565b51815160209384036101000a60001901801990921691161790527f70782220723d22347078222066696c6c3d22776869746522202f3e0000000000919093019081526b1e31b4b931b6329031bc1e9160a11b601b8201528551602790910192860191508083835b60208310613bad5780518252601f199092019160209182019101613b8e565b51815160209384036101000a600019018019909216911617905267383c111031bc9e9160c11b919093019081528451600890910192850191508083835b60208310613c095780518252601f199092019160209182019101613bea565b6001836020036101000a038019825116818451168082178552505050505050905001807f70782220723d22347078222066696c6c3d22776869746522202f3e0000000000815250601b0194505050505060405160208183030381529060405294505b50505050919050565b6060600060405180602001604052806000815250905060008360020b1215613cd657826000190292506040518060400160405280600181526020017f2d0000000000000000000000000000000000000000000000000000000000000081525090505b80613ce38460020b611fab565b6040516020018083805190602001908083835b60208310613d155780518252601f199092019160209182019101613cf6565b51815160209384036101000a600019018019909216911617905285519190930192850191508083835b60208310613d5d5780518252601f199092019160209182019101613d3e565b6001836020036101000a03801982511681845116808217855250505050505090500192505050604051602081830303815290604052915050919050565b6040805161010081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e081019190915290565b803561022281614518565b8035801515811461022257600080fd5b8035600281900b811461022257600080fd5b600082601f830112613e1b578081fd5b8135613e2e613e2982614481565b61445d565b818152846020838601011115613e42578283fd5b816020850160208301379081016020019190915292915050565b803562ffffff8116811461022257600080fd5b803560ff8116811461022257600080fd5b600060208284031215613e91578081fd5b813561020b81614518565b60008060408385031215613eae578081fd5b8235613eb981614518565b946020939093013593505050565b60008060408385031215613ed9578182fd5b613ee283613df9565b9150613ef060208401613df9565b90509250929050565b600080600080600060a08688031215613f10578081fd5b613f1986613df9565b9450613f2760208701613df9565b9350613f3560408701613e6f565b9250613f4360608701613e6f565b9150613f5160808701613de9565b90509295509295909350565b600060208284031215613f6e578081fd5b815167ffffffffffffffff811115613f84578182fd5b8201601f81018413613f94578182fd5b8051613fa2613e2982614481565b818152856020838501011115613fb6578384fd5b6102d58260208301602086016144e8565b600060208284031215613fd8578081fd5b813567ffffffffffffffff811115613fee578182fd5b82016101c0818503121561020b578182fd5b600060208284031215614011578081fd5b813567ffffffffffffffff80821115614028578283fd5b81840191506101c080838703121561403e578384fd5b6140478161445d565b90508235815261405960208401613dde565b602082015261406a60408401613dde565b6040820152606083013582811115614080578485fd5b61408c87828601613e0b565b6060830152506080830135828111156140a3578485fd5b6140af87828601613e0b565b6080830152506140c160a08401613e6f565b60a08201526140d260c08401613e6f565b60c08201526140e360e08401613de9565b60e082015261010091506140f8828401613df9565b82820152610120915061410c828401613df9565b828201526101409150614120828401613df9565b828201526101609150614134828401613df9565b828201526101809150614148828401613e5c565b828201526101a0915061415c828401613dde565b91810191909152949350505050565b60008060006060848603121561417f578283fd5b833561418a81614518565b925061419860208501613e6f565b91506141a660408501613e6f565b90509250925092565b6000602082840312156141c0578081fd5b61020b82613e5c565b600080604083850312156141db578182fd5b8235915060208301356141ed81614518565b809150509250929050565b6001600160a01b03169052565b15159052565b60020b9052565b60008284528282602086013780602084860101526020601f19601f85011685010190509392505050565b600081518084526142548160208601602086016144e8565b601f01601f19169290920160200192915050565b62ffffff169052565b60ff169052565b901515815260200190565b60006020825261020b602083018461423c565b6000604082526142a9604083018561423c565b82810360208401526102d5818561423c565b600060208252823560208301526142d460208401613dde565b6142e160408401826141f8565b506142ee60408401613dde565b6142fb60608401826141f8565b5061430960608401846144a3565b6101c08060808601526143216101e086018385614212565b925061433060808701876144a3565b868503601f190160a08801529250614349848483614212565b93505061435860a08701613e6f565b915061436760c0860183614271565b61437360c08701613e6f565b915061438260e0860183614271565b61438e60e08701613de9565b915061010061439f81870184614205565b6143aa818801613df9565b9250506101206143bc8187018461420b565b6143c7818801613df9565b9250506101406143d98187018461420b565b6143e4818801613df9565b9250506101606143f68187018461420b565b614401818801613df9565b9250506101806144138187018461420b565b61441e818801613e5c565b9250506101a061443081870184614268565b61443b818801613dde565b92505061444a818601836141f8565b5090949350505050565b90815260200190565b60405181810167ffffffffffffffff8111828210171561447957fe5b604052919050565b600067ffffffffffffffff82111561449557fe5b50601f01601f191660200190565b6000808335601e198436030181126144b9578283fd5b830160208101925035905067ffffffffffffffff8111156144d957600080fd5b8036038313156101ef57600080fd5b60005b838110156145035781810151838201526020016144eb565b83811115614512576000848401525b50505050565b6001600160a01b038116811461452d57600080fd5b5056fe203c616e696d6174652061646469746976653d2273756d22206174747269627574654e616d653d2273746172744f6666736574222066726f6d3d2230252220746f3d22313030252220626567696e3d22307322206475723d223330732220726570656174436f756e743d22696e646566696e69746522202f3e3c2f74657874506174683e3c2f746578743e3c73746f70206f66667365743d222e39222073746f702d636f6c6f723d227768697465222073746f702d6f7061636974793d223022202f3e3c2f6c696e6561724772616469656e743e3c72656374207374796c653d2266696c7465723a2075726c28236631292220783d223070782220793d22307078222077696474683d22323930707822206865696768743d22353030707822202f3e3c6665496d61676520726573756c743d2270332220786c696e6b3a687265663d22646174613a696d6167652f7376672b786d6c3b6261736536342c3c67206d61736b3d2275726c2823666164652d73796d626f6c29223e3c726563742066696c6c3d226e6f6e652220783d223070782220793d22307078222077696474683d22323930707822206865696768743d22323030707822202f3e203c7465787420793d22373070782220783d2233327078222066696c6c3d2277686974652220666f6e742d66616d696c793d2227436f7572696572204e6577272c206d6f6e6f73706163652220666f6e742d7765696768743d223230302220666f6e742d73697a653d2233367078223e3c7376672077696474683d2232393022206865696768743d22353030222076696577426f783d2230203020323930203530302220786d6c6e733d22687474703a2f2f7777772e77332e6f72672f323030302f7376672270782c2030707829222063783d22307078222063793d223070782220723d22347078222066696c6c3d227768697465222f3e3c2f673e203c616e696d6174652061646469746976653d2273756d22206174747269627574654e616d653d2273746172744f6666736574222066726f6d3d2230252220746f3d22313030252220626567696e3d22307322206475723d223330732220726570656174436f756e743d22696e646566696e69746522202f3e203c2f74657874506174683e3c6d61736b2069643d22666164652d757022206d61736b436f6e74656e74556e6974733d226f626a656374426f756e64696e67426f78223e3c726563742077696474683d223122206865696768743d2231222066696c6c3d2275726c2823677261642d75702922202f3e3c2f6d61736b3e22207374726f6b653d227267626128302c302c302c302e332922207374726f6b652d77696474683d2233327078222066696c6c3d226e6f6e6522207374726f6b652d6c696e656361703d22726f756e6422202f3e203c616e696d6174652061646469746976653d2273756d22206174747269627574654e616d653d2273746172744f6666736574222066726f6d3d2230252220746f3d22313030252220626567696e3d22307322206475723d2233307322203c67207374796c653d227472616e73666f726d3a7472616e736c61746528323970782c20343434707829223e3c636972636c65207374796c653d227472616e73666f726d3a7472616e736c6174653364283c7376672077696474683d2732393027206865696768743d27353030272076696577426f783d2730203020323930203530302720786d6c6e733d27687474703a2f2f7777772e77332e6f72672f323030302f737667273e3c636972636c652063783d27203c67207374796c653d2266696c7465723a75726c2823746f702d726567696f6e2d626c7572293b207472616e73666f726d3a7363616c6528312e35293b207472616e73666f726d2d6f726967696e3a63656e74657220746f703b223e22202f3e3c6665426c656e64206d6f64653d226f7665726c61792220696e3d2270302220696e323d22703122202f3e3c6665426c656e64206d6f64653d226578636c7573696f6e2220696e323d22703222202f3e3c6665426c656e64206d6f64653d226f7665726c61792220696e323d2270332220726573756c743d22626c656e644f757422202f3e3c6665476175737369616e426c7572203c706174682069643d226d696e696d61702220643d224d3233342034343443323334203435372e393439203234322e323120343633203235332034363322202f3e3c6d61736b2069643d226e6f6e6522206d61736b436f6e74656e74556e6974733d226f626a656374426f756e64696e67426f78223e3c726563742077696474683d223122206865696768743d2231222066696c6c3d22776869746522202f3e3c2f6d61736b3e2220783d223070782220793d22307078222077696474683d22323930707822206865696768743d22353030707822202f3e203c616e696d6174652061646469746976653d2273756d22206174747269627574654e616d653d2273746172744f6666736574222066726f6d3d2230252220746f3d22313030252220626567696e3d22307322206475723d223330732220726570656174436f756e743d22696e646566696e69746522202f3e3c7465787420783d22313270782220793d22313770782220666f6e742d66616d696c793d2227436f7572696572204e6577272c206d6f6e6f73706163652220666f6e742d73697a653d2231327078222066696c6c3d227768697465223e3c747370616e2066696c6c3d2272676261283235352c3235352c3235352c302e3629223e4d696e205469636b3a203c2f747370616e3e3c74657874506174682073746172744f66667365743d222d31303025222066696c6c3d2277686974652220666f6e742d66616d696c793d2227436f7572696572204e6577272c206d6f6e6f73706163652220666f6e742d73697a653d22313070782220786c696e6b3a687265663d2223746578742d706174682d61223e3c6c696e6561724772616469656e742069643d22677261642d646f776e222078313d2230222078323d2231222079313d2230222079323d2231223e3c73746f70206f66667365743d22302e30222073746f702d636f6c6f723d227768697465222073746f702d6f7061636974793d223122202f3e3c73746f70206f66667365743d22302e39222073746f702d636f6c6f723d227768697465222073746f702d6f7061636974793d223022202f3e3c2f6c696e6561724772616469656e743e3c66696c7465722069643d226631223e3c6665496d61676520726573756c743d2270302220786c696e6b3a687265663d22646174613a696d6167652f7376672b786d6c3b6261736536342c3c7376672077696474683d2732393027206865696768743d27353030272076696577426f783d2730203020323930203530302720786d6c6e733d27687474703a2f2f7777772e77332e6f72672f323030302f737667273e3c726563742077696474683d27323930707827206865696768743d273530307078272066696c6c3d2723222f3e3c6665496d61676520726573756c743d2270322220786c696e6b3a687265663d22646174613a696d6167652f7376672b786d6c3b6261736536342c3c656c6c697073652063783d22353025222063793d22307078222072783d223138307078222072793d223132307078222066696c6c3d222330303022206f7061636974793d22302e383522202f3e3c2f673e707822206865696768743d2232367078222072783d22387078222072793d22387078222066696c6c3d227267626128302c302c302c302e362922202f3e70782220723d22347078222066696c6c3d22776869746522202f3e3c636972636c652063783d2231312e333437384c32342031324c31342e343334312031322e363532324c32322e333932332031384c31332e373831392031332e373831394c31382032322e333932334c31322e363532322031342e343334314c31322032344c31312e333437382031342e343334314c362032322e33393c726563742066696c6c3d226e6f6e652220783d223070782220793d22307078222077696474683d22323930707822206865696768743d22353030707822202f3e4142434445464748494a4b4c4d4e4f505152535455565758595a6162636465666768696a6b6c6d6e6f707172737475767778797a303132333435363738392b2f20786d6c6e733a786c696e6b3d27687474703a2f2f7777772e77332e6f72672f313939392f786c696e6b273e3c6c696e6561724772616469656e742069643d22677261642d73796d626f6c223e3c73746f70206f66667365743d22302e37222073746f702d636f6c6f723d227768697465222073746f702d6f7061636974793d223122202f3e3c73746f70206f66667365743d222e3935222073746f702d636f6c6f723d227768697465222073746f702d6f7061636974793d223022202f3e3c2f6c696e6561724772616469656e743e207374796c653d227472616e73666f726d3a7472616e736c61746528373270782c313839707829223e3c7265637420783d222d313670782220793d222d31367078222077696474683d22313830707822206865696768743d223138307078222066696c6c3d226e6f6e6522202f3e3c7061746820643d22207374796c653d227472616e73666f726d3a7472616e736c61746528373270782c313839707829223e70782220723d2232347078222066696c6c3d226e6f6e6522207374726f6b653d22776869746522202f3e3c7265637420783d222d313670782220793d222d31367078222077696474683d22313830707822206865696768743d223138307078222066696c6c3d226e6f6e6522202f3e536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f773c673e3c70617468207374796c653d227472616e73666f726d3a7472616e736c617465283670782c367078292220643d224d313220304c31322e3635323220392e35363538374c313820312e363037374c31332e373831392031302e323138314c32322e3339323320364c31342e34333431203c70617468207374726f6b652d6c696e656361703d22726f756e642220643d224d38203943382e30303030342032322e393439342031362e32303939203238203237203238222066696c6c3d226e6f6e6522207374726f6b653d22776869746522202f3e20726570656174436f756e743d22696e646566696e69746522202f3e3c2f74657874506174683e3c74657874506174682073746172744f66667365743d222d353025222066696c6c3d2277686974652220666f6e742d66616d696c793d2227436f7572696572204e6577272c206d6f6e6f73706163652220666f6e742d73697a653d22313070782220786c696e6b3a687265663d2223746578742d706174682d61223e3c6d61736b2069643d22666164652d646f776e22206d61736b436f6e74656e74556e6974733d226f626a656374426f756e64696e67426f78223e3c726563742077696474683d223122206865696768743d2231222066696c6c3d2275726c2823677261642d646f776e2922202f3e3c2f6d61736b3e22207374726f6b653d2272676261283235352c3235352c3235352c3129222066696c6c3d226e6f6e6522207374726f6b652d6c696e656361703d22726f756e6422202f3e3c2f673e696e3d22626c656e644f75742220737464446576696174696f6e3d22343222202f3e3c2f66696c7465723e203c636c6970506174682069643d22636f726e657273223e3c726563742077696474683d2232393022206865696768743d22353030222072783d223432222072793d22343222202f3e3c2f636c6970506174683e203c67207374796c653d227472616e73666f726d3a7472616e736c61746528323970782c20333834707829223e3c6c696e6561724772616469656e742069643d22677261642d7570222078313d2231222078323d2230222079313d2231222079323d2230223e3c73746f70206f66667365743d22302e30222073746f702d636f6c6f723d227768697465222073746f702d6f7061636974793d223122202f3e32334c31302e323138312031332e373831394c312e363037372031384c392e35363538372031322e363532324c302031324c392e35363538372031312e333437384c312e3630373720364c31302e323138312031302e323138314c3620312e363037374c31312e3334373820392e35363538374c313220305a222066696c6c3d22776869746522202f3e3c67207374796c653d227472616e73666f726d3a7472616e736c6174652832323670782c20333932707829223e3c726563742077696474683d223336707822206865696768743d2233367078222072783d22387078222072793d22387078222066696c6c3d226e6f6e6522207374726f6b653d2272676261283235352c3235352c3235352c302e322922202f3e3c74657874506174682073746172744f66667365743d22353025222066696c6c3d2277686974652220666f6e742d66616d696c793d2227436f7572696572204e6577272c206d6f6e6f73706163652220666f6e742d73697a653d22313070782220786c696e6b3a687265663d2223746578742d706174682d61223e3c7465787420783d22313270782220793d22313770782220666f6e742d66616d696c793d2227436f7572696572204e6577272c206d6f6e6f73706163652220666f6e742d73697a653d2231327078222066696c6c3d227768697465223e3c747370616e2066696c6c3d2272676261283235352c3235352c3235352c302e3629223e4d6178205469636b3a203c2f747370616e3e3c616e696d6174655472616e73666f726d206174747269627574654e616d653d227472616e73666f726d2220747970653d22726f74617465222066726f6d3d22302031382031382220746f3d2233363020313820313822206475723d223130732220726570656174436f756e743d22696e646566696e697465222f3e3c2f673e3c2f673e3c706174682069643d22746578742d706174682d612220643d224d34302031322048323530204132382032382030203020312032373820343020563436302041323820323820302030203120323530203438382048343020413238203238203020302031203132203436302056343020413238203238203020302031203430203132207a22202f3e222f3e3c6665496d61676520726573756c743d2270312220786c696e6b3a687265663d22646174613a696d6167652f7376672b786d6c3b6261736536342c3c6d61736b2069643d22666164652d73796d626f6c22206d61736b436f6e74656e74556e6974733d227573657253706163654f6e557365223e3c726563742077696474683d22323930707822206865696768743d223230307078222066696c6c3d2275726c2823677261642d73796d626f6c2922202f3e3c2f6d61736b3e3c2f646566733e3c7265637420783d22302220793d2230222077696474683d2232393022206865696768743d22353030222072783d223432222072793d223432222066696c6c3d227267626128302c302c302c302922207374726f6b653d2272676261283235352c3235352c3235352c302e322922202f3e3c2f673e3c66696c7465722069643d22746f702d726567696f6e2d626c7572223e3c6665476175737369616e426c757220696e3d22536f75726365477261706869632220737464446576696174696f6e3d22323422202f3e3c2f66696c7465723e3c2f74657874506174683e203c74657874506174682073746172744f66667365743d223025222066696c6c3d2277686974652220666f6e742d66616d696c793d2227436f7572696572204e6577272c206d6f6e6f73706163652220666f6e742d73697a653d22313070782220786c696e6b3a687265663d2223746578742d706174682d61223e3c7465787420746578742d72656e646572696e673d226f7074696d697a655370656564223e5369676e6564536166654d6174683a207375627472616374696f6e206f766572666c6f773c7265637420783d2231362220793d223136222077696474683d2232353822206865696768743d22343638222072783d223236222072793d223236222066696c6c3d227267626128302c302c302c302922207374726f6b653d2272676261283235352c3235352c3235352c302e322922202f3e3c7465787420783d22313270782220793d22313770782220666f6e742d66616d696c793d2227436f7572696572204e6577272c206d6f6e6f73706163652220666f6e742d73697a653d2231327078222066696c6c3d227768697465223e3c747370616e2066696c6c3d2272676261283235352c3235352c3235352c302e3629223e49443a203c2f747370616e3e3c726563742077696474683d223336707822206865696768743d2233367078222072783d22387078222072793d22387078222066696c6c3d226e6f6e6522207374726f6b653d2272676261283235352c3235352c3235352c302e322922202f3e3c2f746578743e3c7465787420793d2231313570782220783d2233327078222066696c6c3d2277686974652220666f6e742d66616d696c793d2227436f7572696572204e6577272c206d6f6e6f73706163652220666f6e742d7765696768743d223230302220666f6e742d73697a653d2233367078223e3c2f746578743e3c2f673e3c67207374796c653d227472616e73666f726d3a7472616e736c6174652832323670782c20343333707829223e203c67207374796c653d227472616e73666f726d3a7472616e736c61746528323970782c20343134707829223ea164736f6c6343000706000a","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x5E3C DUP1 PUSH2 0x20 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xC9 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xD5C0BDD8 GT PUSH2 0x81 JUMPI DUP1 PUSH4 0xE7386906 GT PUSH2 0x5B JUMPI DUP1 PUSH4 0xE7386906 EQ PUSH2 0x197 JUMPI DUP1 PUSH4 0xEA4D3BCD EQ PUSH2 0x1B7 JUMPI DUP1 PUSH4 0xF93A7911 EQ PUSH2 0x1CA JUMPI PUSH2 0xC9 JUMP JUMPDEST DUP1 PUSH4 0xD5C0BDD8 EQ PUSH2 0x15E JUMPI DUP1 PUSH4 0xD6986D45 EQ PUSH2 0x171 JUMPI DUP1 PUSH4 0xE1649FCF EQ PUSH2 0x184 JUMPI PUSH2 0xC9 JUMP JUMPDEST DUP1 PUSH4 0x5E57966D GT PUSH2 0xB2 JUMPI DUP1 PUSH4 0x5E57966D EQ PUSH2 0x118 JUMPI DUP1 PUSH4 0x854924AB EQ PUSH2 0x12B JUMPI DUP1 PUSH4 0x9288C218 EQ PUSH2 0x14B JUMPI PUSH2 0xC9 JUMP JUMPDEST DUP1 PUSH4 0x2FA2AF10 EQ PUSH2 0xCE JUMPI DUP1 PUSH4 0x3A0CDEE2 EQ PUSH2 0xF8 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xE1 PUSH2 0xDC CALLDATASIZE PUSH1 0x4 PUSH2 0x3EC7 JUMP JUMPDEST PUSH2 0x1DD JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xEF SWAP3 SWAP2 SWAP1 PUSH2 0x4296 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x10B PUSH2 0x106 CALLDATASIZE PUSH1 0x4 PUSH2 0x3E9C JUMP JUMPDEST PUSH2 0x1F6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xEF SWAP2 SWAP1 PUSH2 0x4283 JUMP JUMPDEST PUSH2 0x10B PUSH2 0x126 CALLDATASIZE PUSH1 0x4 PUSH2 0x3E80 JUMP JUMPDEST PUSH2 0x214 JUMP JUMPDEST PUSH2 0x13E PUSH2 0x139 CALLDATASIZE PUSH1 0x4 PUSH2 0x3FC7 JUMP JUMPDEST PUSH2 0x227 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xEF SWAP2 SWAP1 PUSH2 0x4454 JUMP JUMPDEST PUSH2 0x10B PUSH2 0x159 CALLDATASIZE PUSH1 0x4 PUSH2 0x3EF9 JUMP JUMPDEST PUSH2 0x2C3 JUMP JUMPDEST PUSH2 0x10B PUSH2 0x16C CALLDATASIZE PUSH1 0x4 PUSH2 0x416B JUMP JUMPDEST PUSH2 0x2DE JUMP JUMPDEST PUSH2 0x13E PUSH2 0x17F CALLDATASIZE PUSH1 0x4 PUSH2 0x3E9C JUMP JUMPDEST PUSH2 0x2F5 JUMP JUMPDEST PUSH2 0x10B PUSH2 0x192 CALLDATASIZE PUSH1 0x4 PUSH2 0x4000 JUMP JUMPDEST PUSH2 0x30A JUMP JUMPDEST PUSH2 0x1AA PUSH2 0x1A5 CALLDATASIZE PUSH1 0x4 PUSH2 0x41C9 JUMP JUMPDEST PUSH2 0x315 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xEF SWAP2 SWAP1 PUSH2 0x4278 JUMP JUMPDEST PUSH2 0x10B PUSH2 0x1C5 CALLDATASIZE PUSH1 0x4 PUSH2 0x41AF JUMP JUMPDEST PUSH2 0x321 JUMP JUMPDEST PUSH2 0x10B PUSH2 0x1D8 CALLDATASIZE PUSH1 0x4 PUSH2 0x3FC7 JUMP JUMPDEST PUSH2 0x32C JUMP JUMPDEST PUSH1 0x60 DUP1 PUSH2 0x1EA DUP5 DUP5 PUSH2 0x3BA JUMP JUMPDEST SWAP2 POP SWAP2 POP JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x20B DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH2 0x7EB JUMP JUMPDEST SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x21F DUP3 PUSH2 0x7FA JUMP JUMPDEST SWAP1 POP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 GAS PUSH1 0x40 MLOAD PUSH4 0xC49917D7 PUSH1 0xE0 SHL DUP2 MSTORE SWAP1 SWAP2 POP PUSH20 0x0 SWAP1 PUSH4 0xC49917D7 SWAP1 PUSH2 0x265 SWAP1 DUP7 SWAP1 PUSH1 0x4 ADD PUSH2 0x42BB JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x27D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS DELEGATECALL ISZERO DUP1 ISZERO PUSH2 0x291 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x2B9 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x3F5D JUMP JUMPDEST POP GAS SWAP1 SUB SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x2D2 DUP7 DUP7 DUP7 DUP7 DUP7 PUSH2 0x810 JUMP JUMPDEST SWAP1 POP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x2EB DUP5 DUP5 DUP5 PUSH2 0x93A JUMP JUMPDEST SWAP1 POP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x20B DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH2 0xB0E JUMP JUMPDEST PUSH1 0x60 PUSH2 0x21F DUP3 PUSH2 0xB15 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x20B DUP4 DUP4 PUSH2 0xD50 JUMP JUMPDEST PUSH1 0x60 PUSH2 0x21F DUP3 PUSH2 0xDB3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xC49917D7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x60 SWAP1 PUSH20 0x0 SWAP1 PUSH4 0xC49917D7 SWAP1 PUSH2 0x366 SWAP1 DUP6 SWAP1 PUSH1 0x4 ADD PUSH2 0x42BB JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x37E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS DELEGATECALL ISZERO DUP1 ISZERO PUSH2 0x392 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x21F SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x3F5D JUMP JUMPDEST PUSH1 0x60 DUP1 PUSH1 0x0 PUSH1 0x2 DUP6 DUP6 ADD DUP2 SIGNEXTEND SDIV SWAP1 POP PUSH3 0x1E847 NOT DUP2 PUSH1 0x2 SIGNEXTEND SLT ISZERO PUSH2 0x432 JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x7 PUSH1 0xFB SHL DUP2 MSTORE POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x3700000000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP SWAP3 POP SWAP3 POP POP PUSH2 0x1EF JUMP JUMPDEST PUSH3 0x124F7 NOT DUP2 PUSH1 0x2 SIGNEXTEND SLT ISZERO PUSH2 0x49B JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x7 PUSH1 0xFB SHL DUP2 MSTORE POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x4 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x31302E3500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP SWAP3 POP SWAP3 POP POP PUSH2 0x1EF JUMP JUMPDEST PUSH2 0x61A7 NOT DUP2 PUSH1 0x2 SIGNEXTEND SLT ISZERO PUSH2 0x503 JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x7 PUSH1 0xFB SHL DUP2 MSTORE POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x5 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x31342E3235000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP SWAP3 POP SWAP3 POP POP PUSH2 0x1EF JUMP JUMPDEST PUSH2 0x1387 NOT DUP2 PUSH1 0x2 SIGNEXTEND SLT ISZERO PUSH2 0x56C JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x2 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x3130000000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x2 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x627 PUSH1 0xF3 SHL DUP2 MSTORE POP SWAP3 POP SWAP3 POP POP PUSH2 0x1EF JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x2 SIGNEXTEND SLT ISZERO PUSH2 0x5D3 JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x2 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x3131000000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x2 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x3231 PUSH1 0xF0 SHL DUP2 MSTORE POP SWAP3 POP SWAP3 POP POP PUSH2 0x1EF JUMP JUMPDEST PUSH2 0x1388 DUP2 PUSH1 0x2 SIGNEXTEND SLT ISZERO PUSH2 0x656 JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x2 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x3133000000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x2 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x3233000000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP SWAP3 POP SWAP3 POP POP PUSH2 0x1EF JUMP JUMPDEST PUSH2 0x61A8 DUP2 PUSH1 0x2 SIGNEXTEND SLT ISZERO PUSH2 0x6D9 JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x2 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x3135000000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x2 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x3235000000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP SWAP3 POP SWAP3 POP POP PUSH2 0x1EF JUMP JUMPDEST PUSH3 0x124F8 DUP2 PUSH1 0x2 SIGNEXTEND SLT ISZERO PUSH2 0x742 JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x2 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x627 PUSH1 0xF3 SHL DUP2 MSTORE POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x2 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x3236000000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP SWAP3 POP SWAP3 POP POP PUSH2 0x1EF JUMP JUMPDEST PUSH3 0x1E848 DUP2 PUSH1 0x2 SIGNEXTEND SLT ISZERO PUSH2 0x790 JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x2 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x3231 PUSH1 0xF0 SHL DUP2 MSTORE POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x2 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x3237 PUSH1 0xF0 SHL DUP2 MSTORE POP SWAP3 POP SWAP3 POP POP PUSH2 0x1EF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x2 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x3234000000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x2 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x3237 PUSH1 0xF0 SHL DUP2 MSTORE POP SWAP3 POP SWAP3 POP POP PUSH2 0x1EF JUMP JUMPDEST PUSH1 0x60 PUSH2 0x20B DUP4 DUP4 SHR PUSH1 0x3 PUSH2 0x100E JUMP JUMPDEST PUSH1 0x60 PUSH2 0x21F PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x14 PUSH2 0x10D5 JUMP JUMPDEST PUSH1 0x60 DUP5 PUSH1 0x2 DUP2 SWAP1 SIGNEXTEND PUSH3 0xD89E7 NOT DUP2 PUSH2 0x824 JUMPI INVALID JUMPDEST SDIV MUL PUSH1 0x2 SIGNEXTEND DUP7 PUSH1 0x2 SIGNEXTEND EQ ISZERO PUSH2 0x87E JUMPI DUP2 ISZERO PUSH2 0x85A JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x3 DUP2 MSTORE PUSH1 0x20 ADD PUSH3 0x9A82B PUSH1 0xEB SHL DUP2 MSTORE POP PUSH2 0x877 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x3 DUP2 MSTORE PUSH1 0x20 ADD PUSH3 0x26A4A7 PUSH1 0xE9 SHL DUP2 MSTORE POP JUMPDEST SWAP1 POP PUSH2 0x2D5 JUMP JUMPDEST DUP5 PUSH1 0x2 DUP2 SWAP1 SIGNEXTEND PUSH3 0xD89E8 DUP2 PUSH2 0x88F JUMPI INVALID JUMPDEST SDIV MUL PUSH1 0x2 SIGNEXTEND DUP7 PUSH1 0x2 SIGNEXTEND EQ ISZERO PUSH2 0x8E5 JUMPI DUP2 ISZERO PUSH2 0x8C5 JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x3 DUP2 MSTORE PUSH1 0x20 ADD PUSH3 0x26A4A7 PUSH1 0xE9 SHL DUP2 MSTORE POP PUSH2 0x877 JUMP JUMPDEST POP PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x3 DUP2 MSTORE PUSH3 0x9A82B PUSH1 0xEB SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH2 0x2D5 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x8F0 DUP8 PUSH2 0x125D JUMP JUMPDEST SWAP1 POP DUP3 ISZERO PUSH2 0x927 JUMPI PUSH2 0x924 PUSH25 0x1000000000000000000000000000000000000000000000000 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x15AB JUMP JUMPDEST SWAP1 POP JUMPDEST PUSH2 0x932 DUP2 DUP7 DUP7 PUSH2 0x93A JUMP JUMPDEST SWAP2 POP POP PUSH2 0x2D5 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH2 0x949 DUP6 DUP6 DUP6 PUSH2 0x1612 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x961 DUP3 DUP4 PUSH9 0x10000000000000000 PUSH2 0x1714 JUMP JUMPDEST SWAP1 POP PUSH13 0x1000000000000000000000000 DUP3 LT DUP1 ISZERO PUSH2 0x9A2 JUMPI PUSH2 0x99B DUP3 PUSH19 0x47BF19673DF52E37F2410011D100000000000 PUSH1 0x1 PUSH1 0x80 SHL PUSH2 0x1714 JUMP JUMPDEST SWAP2 POP PUSH2 0x9B7 JUMP JUMPDEST PUSH2 0x9B4 DUP3 PUSH3 0x186A0 PUSH1 0x1 PUSH1 0x80 SHL PUSH2 0x1714 JUMP JUMPDEST SWAP2 POP JUMPDEST DUP2 PUSH1 0x0 JUMPDEST DUP2 ISZERO PUSH2 0x9CF JUMPI PUSH1 0x1 ADD PUSH1 0xA DUP3 DIV SWAP2 POP PUSH2 0x9BB JUMP JUMPDEST PUSH1 0x0 NOT ADD PUSH1 0x0 DUP1 PUSH2 0x9E0 DUP7 DUP5 PUSH2 0x17C3 JUMP JUMPDEST SWAP2 POP SWAP2 POP DUP1 ISZERO PUSH2 0x9F1 JUMPI PUSH1 0x1 SWAP1 SWAP3 ADD SWAP2 JUMPDEST PUSH2 0x9F9 PUSH2 0x3D9A JUMP JUMPDEST DUP6 ISZERO PUSH2 0xA6C JUMPI PUSH2 0xA18 PUSH2 0xA10 PUSH1 0x2B PUSH1 0xFF DUP8 AND PUSH2 0x182F JUMP JUMPDEST PUSH1 0x7 SWAP1 PUSH2 0x188C JUMP JUMPDEST PUSH1 0xFF SWAP1 DUP2 AND PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x2 PUSH1 0x80 DUP4 ADD MSTORE PUSH2 0xA44 SWAP1 PUSH1 0x1 SWAP1 PUSH2 0xA3E SWAP1 PUSH1 0x2B SWAP1 DUP9 AND PUSH2 0x182F JUMP JUMPDEST SWAP1 PUSH2 0x188C JUMP JUMPDEST PUSH1 0xFF SWAP1 DUP2 AND PUSH1 0xA0 DUP4 ADD MSTORE PUSH1 0x20 DUP3 ADD MLOAD PUSH2 0xA5F SWAP2 AND PUSH1 0x1 PUSH2 0x182F JUMP JUMPDEST PUSH1 0xFF AND PUSH1 0x40 DUP3 ADD MSTORE PUSH2 0xAE3 JUMP JUMPDEST PUSH1 0x9 DUP5 PUSH1 0xFF AND LT PUSH2 0xAB5 JUMPI PUSH2 0xA85 PUSH1 0xFF DUP6 AND PUSH1 0x4 PUSH2 0x182F JUMP JUMPDEST PUSH1 0xFF AND PUSH1 0x20 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x5 PUSH1 0x80 DUP4 ADD MSTORE PUSH2 0xAA1 SWAP1 PUSH1 0x1 PUSH2 0x182F JUMP JUMPDEST PUSH1 0xFF AND PUSH1 0xA0 DUP3 ADD MSTORE PUSH1 0x4 PUSH1 0x40 DUP3 ADD MSTORE PUSH2 0xAE3 JUMP JUMPDEST PUSH1 0x6 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x5 PUSH1 0x40 DUP3 ADD DUP2 SWAP1 MSTORE PUSH2 0xADA SWAP1 PUSH1 0x1 SWAP1 PUSH2 0xA3E SWAP1 PUSH1 0xFF DUP9 AND SWAP1 PUSH2 0x182F JUMP JUMPDEST PUSH1 0xFF AND PUSH1 0x60 DUP3 ADD MSTORE JUMPDEST DUP3 DUP2 MSTORE DUP6 ISZERO ISZERO PUSH1 0xC0 DUP3 ADD MSTORE PUSH1 0x0 PUSH1 0xE0 DUP3 ADD MSTORE PUSH2 0xAFE DUP2 PUSH2 0x18E6 JUMP JUMPDEST SWAP13 SWAP12 POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST SHR PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 PUSH2 0x2A0 ADD PUSH1 0x40 MSTORE DUP1 PUSH2 0xB32 DUP6 PUSH1 0x20 ADD MLOAD PUSH2 0x7FA JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xB44 DUP6 PUSH1 0x40 ADD MLOAD PUSH2 0x7FA JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD DUP5 PUSH2 0x1A0 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP5 PUSH1 0x60 ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD DUP5 PUSH1 0x80 ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xB7F DUP6 PUSH2 0x180 ADD MLOAD PUSH2 0xDB3 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD DUP5 PUSH2 0x100 ADD MLOAD PUSH1 0x2 SIGNEXTEND DUP2 MSTORE PUSH1 0x20 ADD DUP5 PUSH2 0x120 ADD MLOAD PUSH1 0x2 SIGNEXTEND DUP2 MSTORE PUSH1 0x20 ADD DUP5 PUSH2 0x160 ADD MLOAD PUSH1 0x2 SIGNEXTEND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xBC8 DUP6 PUSH2 0x100 ADD MLOAD DUP7 PUSH2 0x120 ADD MLOAD DUP8 PUSH2 0x140 ADD MLOAD PUSH2 0x1B12 JUMP JUMPDEST PUSH1 0x0 SIGNEXTEND DUP2 MSTORE PUSH1 0x20 ADD DUP5 PUSH1 0x0 ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xBF2 DUP6 PUSH1 0x20 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x88 PUSH2 0x7EB JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xC0F DUP6 PUSH1 0x40 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x88 PUSH2 0x7EB JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xC2C DUP6 PUSH1 0x20 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 PUSH2 0x7EB JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xC49 DUP6 PUSH1 0x40 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 PUSH2 0x7EB JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xC7C PUSH2 0xC6E DUP7 PUSH1 0x20 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x10 DUP9 PUSH1 0x0 ADD MLOAD PUSH2 0x1B49 JUMP JUMPDEST PUSH1 0x0 PUSH1 0xFF PUSH1 0x10 PUSH2 0x112 PUSH2 0x1B69 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xCAF PUSH2 0xCA1 DUP7 PUSH1 0x40 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x10 DUP9 PUSH1 0x0 ADD MLOAD PUSH2 0x1B49 JUMP JUMPDEST PUSH1 0x0 PUSH1 0xFF PUSH1 0x64 PUSH2 0x1E4 PUSH2 0x1B69 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xCD4 PUSH2 0xC6E DUP7 PUSH1 0x20 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x20 DUP9 PUSH1 0x0 ADD MLOAD PUSH2 0x1B49 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xCF9 PUSH2 0xCA1 DUP7 PUSH1 0x40 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x20 DUP9 PUSH1 0x0 ADD MLOAD PUSH2 0x1B49 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xD1E PUSH2 0xC6E DUP7 PUSH1 0x20 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x30 DUP9 PUSH1 0x0 ADD MLOAD PUSH2 0x1B49 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xD43 PUSH2 0xCA1 DUP7 PUSH1 0x40 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x30 DUP9 PUSH1 0x0 ADD MLOAD PUSH2 0x1B49 JUMP JUMPDEST SWAP1 MSTORE SWAP1 POP PUSH2 0x2EE DUP2 PUSH2 0x1BA7 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP1 DUP3 ADD DUP6 SWAP1 MSTORE PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF NOT PUSH1 0x60 DUP6 SWAP1 SHL AND DUP3 DUP5 ADD MSTORE DUP3 MLOAD PUSH1 0x34 DUP2 DUP5 SUB ADD DUP2 MSTORE PUSH1 0x54 SWAP1 SWAP3 ADD SWAP1 SWAP3 MSTORE DUP1 MLOAD SWAP2 ADD KECCAK256 PUSH1 0x0 SWAP1 PUSH2 0xD97 DUP5 PUSH2 0x1E36 JUMP JUMPDEST PUSH1 0x2 MUL PUSH1 0x1 ADD PUSH1 0xFF AND PUSH1 0x0 NOT DUP2 PUSH2 0xDAA JUMPI INVALID JUMPDEST DIV GT SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH3 0xFFFFFF DUP3 AND PUSH2 0xDF9 JUMPI POP PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x2 DUP2 MSTORE PUSH32 0x3025000000000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH2 0x222 JUMP JUMPDEST DUP2 PUSH1 0x0 DUP1 JUMPDEST PUSH3 0xFFFFFF DUP4 AND ISZERO PUSH2 0xE49 JUMPI PUSH1 0xFF DUP2 AND ISZERO PUSH2 0xE1A JUMPI PUSH1 0x1 ADD PUSH2 0xE33 JUMP JUMPDEST PUSH1 0xA PUSH3 0xFFFFFF DUP5 AND MOD PUSH3 0xFFFFFF AND PUSH1 0x0 EQ PUSH2 0xE33 JUMPI PUSH1 0x1 ADD JUMPDEST PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 PUSH1 0xA PUSH3 0xFFFFFF DUP5 AND DIV SWAP3 POP PUSH2 0xDFE JUMP JUMPDEST PUSH2 0xE51 PUSH2 0x3D9A JUMP JUMPDEST PUSH1 0x0 PUSH1 0x5 DUP5 LT PUSH2 0xF40 JUMPI PUSH1 0x0 PUSH1 0x4 PUSH2 0xE6C DUP7 PUSH1 0xFF DUP8 AND PUSH2 0x182F JUMP JUMPDEST LT ISZERO PUSH2 0xE79 JUMPI PUSH1 0x1 PUSH2 0xE7C JUMP JUMPDEST PUSH1 0x0 JUMPDEST PUSH1 0xFF SWAP1 DUP2 AND SWAP2 POP PUSH2 0xE90 SWAP1 DUP6 AND PUSH1 0x1 PUSH2 0x182F JUMP JUMPDEST PUSH2 0xE9B DUP7 PUSH1 0x5 PUSH2 0x182F JUMP JUMPDEST LT PUSH2 0xEC7 JUMPI PUSH2 0xEC2 PUSH2 0xEB1 PUSH1 0xFF DUP7 AND PUSH1 0x1 PUSH2 0x182F JUMP JUMPDEST PUSH2 0xEBC DUP8 PUSH1 0x5 PUSH2 0x182F JUMP JUMPDEST SWAP1 PUSH2 0x182F JUMP JUMPDEST PUSH2 0xECA JUMP JUMPDEST PUSH1 0x0 JUMPDEST PUSH1 0xFF DUP6 AND PUSH1 0x80 DUP6 ADD DUP2 SWAP1 MSTORE SWAP1 SWAP3 POP PUSH2 0xEE9 SWAP1 PUSH1 0x1 SWAP1 PUSH2 0xEBC SWAP1 DUP6 PUSH2 0x188C JUMP JUMPDEST PUSH1 0xFF SWAP1 DUP2 AND PUSH1 0xA0 DUP6 ADD MSTORE PUSH1 0x80 DUP5 ADD MLOAD PUSH2 0xF0A SWAP2 DUP4 SWAP2 PUSH2 0xA3E SWAP2 AND PUSH1 0x1 PUSH2 0x182F JUMP JUMPDEST PUSH1 0xFF SWAP1 DUP2 AND PUSH1 0x40 DUP6 ADD MSTORE PUSH2 0xF32 SWAP1 DUP3 SWAP1 PUSH2 0xA3E SWAP1 PUSH2 0xF2B SWAP1 DUP9 AND PUSH1 0x1 PUSH2 0x188C JUMP JUMPDEST DUP6 SWAP1 PUSH2 0x188C JUMP JUMPDEST PUSH1 0xFF AND PUSH1 0x20 DUP5 ADD MSTORE POP PUSH2 0xFB0 JUMP JUMPDEST PUSH2 0xF4B PUSH1 0x5 DUP6 PUSH2 0x182F JUMP JUMPDEST PUSH1 0x2 PUSH1 0x80 DUP5 ADD DUP2 SWAP1 MSTORE SWAP1 SWAP2 POP PUSH2 0xF69 SWAP1 PUSH1 0x1 SWAP1 PUSH2 0xEBC SWAP1 DUP5 SWAP1 PUSH2 0x188C JUMP JUMPDEST PUSH1 0xFF SWAP1 DUP2 AND PUSH1 0xA0 DUP5 ADD MSTORE PUSH2 0xF8B SWAP1 PUSH2 0xF84 SWAP1 DUP6 AND PUSH1 0x2 PUSH2 0x188C JUMP JUMPDEST DUP3 SWAP1 PUSH2 0x188C JUMP JUMPDEST PUSH1 0xFF AND PUSH1 0x20 DUP4 ADD DUP2 SWAP1 MSTORE PUSH2 0xFA0 SWAP1 PUSH1 0x2 PUSH2 0x182F JUMP JUMPDEST PUSH1 0xFF AND PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x1 PUSH1 0xC0 DUP4 ADD MSTORE JUMPDEST PUSH2 0xFCF PUSH2 0xFC0 DUP6 PUSH1 0xFF DUP7 AND PUSH2 0x182F JUMP JUMPDEST PUSH3 0xFFFFFF DUP10 AND SWAP1 PUSH1 0xA EXP PUSH2 0x15AB JUMP JUMPDEST DUP3 MSTORE PUSH1 0x1 PUSH1 0xE0 DUP4 ADD MSTORE PUSH1 0x4 DUP5 GT PUSH2 0xFE7 JUMPI PUSH1 0x0 PUSH2 0xFF2 JUMP JUMPDEST PUSH2 0xFF2 DUP5 PUSH1 0x4 PUSH2 0x182F JUMP JUMPDEST PUSH1 0xFF AND PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x1003 DUP3 PUSH2 0x18E6 JUMP JUMPDEST SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP3 PUSH1 0x2 MUL PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP1 ISZERO PUSH2 0x102C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x1057 JUMPI PUSH1 0x20 DUP3 ADD DUP2 DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP DUP1 MLOAD SWAP1 SWAP2 POP JUMPDEST DUP1 ISZERO PUSH2 0x10CD JUMPI PUSH32 0x3031323334353637383961626364656600000000000000000000000000000000 DUP6 PUSH1 0xF AND PUSH1 0x10 DUP2 LT PUSH2 0x1093 JUMPI INVALID JUMPDEST BYTE PUSH1 0xF8 SHL DUP3 PUSH1 0x1 DUP4 SUB DUP2 MLOAD DUP2 LT PUSH2 0x10A6 JUMPI INVALID JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH1 0x4 SWAP5 SWAP1 SWAP5 SHR SWAP4 PUSH1 0x0 NOT ADD PUSH2 0x105E JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP3 PUSH1 0x2 MUL PUSH1 0x2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP1 ISZERO PUSH2 0x10F6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x1121 JUMPI PUSH1 0x20 DUP3 ADD DUP2 DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP PUSH1 0x3 PUSH1 0xFC SHL DUP2 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x1136 JUMPI INVALID JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH32 0x7800000000000000000000000000000000000000000000000000000000000000 DUP2 PUSH1 0x1 DUP2 MLOAD DUP2 LT PUSH2 0x117B JUMPI INVALID JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH1 0x1 PUSH1 0x2 DUP5 MUL ADD JUMPDEST PUSH1 0x1 DUP2 GT ISZERO PUSH2 0x1209 JUMPI PUSH32 0x3031323334353637383961626364656600000000000000000000000000000000 DUP6 PUSH1 0xF AND PUSH1 0x10 DUP2 LT PUSH2 0x11D2 JUMPI INVALID JUMPDEST BYTE PUSH1 0xF8 SHL DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x11E2 JUMPI INVALID JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH1 0x4 SWAP5 SWAP1 SWAP5 SHR SWAP4 PUSH1 0x0 NOT ADD PUSH2 0x119A JUMP JUMPDEST POP DUP4 ISZERO PUSH2 0x20B JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x537472696E67733A20686578206C656E67746820696E73756666696369656E74 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 PUSH1 0x2 SIGNEXTEND SLT PUSH2 0x1274 JUMPI DUP3 PUSH1 0x2 SIGNEXTEND PUSH2 0x127C JUMP JUMPDEST DUP3 PUSH1 0x2 SIGNEXTEND PUSH1 0x0 SUB JUMPDEST SWAP1 POP PUSH3 0xD89E8 DUP2 GT ISZERO PUSH2 0x12D6 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5400000000000000000000000000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x1 DUP3 AND PUSH2 0x12EA JUMPI PUSH1 0x1 PUSH1 0x80 SHL PUSH2 0x12FC JUMP JUMPDEST PUSH16 0xFFFCB933BD6FAD37AA2D162D1A594001 JUMPDEST PUSH17 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP PUSH1 0x2 DUP3 AND ISZERO PUSH2 0x1330 JUMPI PUSH16 0xFFF97272373D413259A46990580E213A MUL PUSH1 0x80 SHR JUMPDEST PUSH1 0x4 DUP3 AND ISZERO PUSH2 0x134F JUMPI PUSH16 0xFFF2E50F5F656932EF12357CF3C7FDCC MUL PUSH1 0x80 SHR JUMPDEST PUSH1 0x8 DUP3 AND ISZERO PUSH2 0x136E JUMPI PUSH16 0xFFE5CACA7E10E4E61C3624EAA0941CD0 MUL PUSH1 0x80 SHR JUMPDEST PUSH1 0x10 DUP3 AND ISZERO PUSH2 0x138D JUMPI PUSH16 0xFFCB9843D60F6159C9DB58835C926644 MUL PUSH1 0x80 SHR JUMPDEST PUSH1 0x20 DUP3 AND ISZERO PUSH2 0x13AC JUMPI PUSH16 0xFF973B41FA98C081472E6896DFB254C0 MUL PUSH1 0x80 SHR JUMPDEST PUSH1 0x40 DUP3 AND ISZERO PUSH2 0x13CB JUMPI PUSH16 0xFF2EA16466C96A3843EC78B326B52861 MUL PUSH1 0x80 SHR JUMPDEST PUSH1 0x80 DUP3 AND ISZERO PUSH2 0x13EA JUMPI PUSH16 0xFE5DEE046A99A2A811C461F1969C3053 MUL PUSH1 0x80 SHR JUMPDEST PUSH2 0x100 DUP3 AND ISZERO PUSH2 0x140A JUMPI PUSH16 0xFCBE86C7900A88AEDCFFC83B479AA3A4 MUL PUSH1 0x80 SHR JUMPDEST PUSH2 0x200 DUP3 AND ISZERO PUSH2 0x142A JUMPI PUSH16 0xF987A7253AC413176F2B074CF7815E54 MUL PUSH1 0x80 SHR JUMPDEST PUSH2 0x400 DUP3 AND ISZERO PUSH2 0x144A JUMPI PUSH16 0xF3392B0822B70005940C7A398E4B70F3 MUL PUSH1 0x80 SHR JUMPDEST PUSH2 0x800 DUP3 AND ISZERO PUSH2 0x146A JUMPI PUSH16 0xE7159475A2C29B7443B29C7FA6E889D9 MUL PUSH1 0x80 SHR JUMPDEST PUSH2 0x1000 DUP3 AND ISZERO PUSH2 0x148A JUMPI PUSH16 0xD097F3BDFD2022B8845AD8F792AA5825 MUL PUSH1 0x80 SHR JUMPDEST PUSH2 0x2000 DUP3 AND ISZERO PUSH2 0x14AA JUMPI PUSH16 0xA9F746462D870FDF8A65DC1F90E061E5 MUL PUSH1 0x80 SHR JUMPDEST PUSH2 0x4000 DUP3 AND ISZERO PUSH2 0x14CA JUMPI PUSH16 0x70D869A156D2A1B890BB3DF62BAF32F7 MUL PUSH1 0x80 SHR JUMPDEST PUSH2 0x8000 DUP3 AND ISZERO PUSH2 0x14EA JUMPI PUSH16 0x31BE135F97D08FD981231505542FCFA6 MUL PUSH1 0x80 SHR JUMPDEST PUSH3 0x10000 DUP3 AND ISZERO PUSH2 0x150B JUMPI PUSH16 0x9AA508B5B7A84E1C677DE54F3E99BC9 MUL PUSH1 0x80 SHR JUMPDEST PUSH3 0x20000 DUP3 AND ISZERO PUSH2 0x152B JUMPI PUSH15 0x5D6AF8DEDB81196699C329225EE604 MUL PUSH1 0x80 SHR JUMPDEST PUSH3 0x40000 DUP3 AND ISZERO PUSH2 0x154A JUMPI PUSH14 0x2216E584F5FA1EA926041BEDFE98 MUL PUSH1 0x80 SHR JUMPDEST PUSH3 0x80000 DUP3 AND ISZERO PUSH2 0x1567 JUMPI PUSH12 0x48A170391F7DC42444E8FA2 MUL PUSH1 0x80 SHR JUMPDEST PUSH1 0x0 DUP5 PUSH1 0x2 SIGNEXTEND SGT ISZERO PUSH2 0x1582 JUMPI DUP1 PUSH1 0x0 NOT DUP2 PUSH2 0x157E JUMPI INVALID JUMPDEST DIV SWAP1 POP JUMPDEST PUSH5 0x100000000 DUP2 MOD ISZERO PUSH2 0x1596 JUMPI PUSH1 0x1 PUSH2 0x1599 JUMP JUMPDEST PUSH1 0x0 JUMPDEST PUSH1 0xFF AND PUSH1 0x20 DUP3 SWAP1 SHR ADD SWAP3 POP POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 GT PUSH2 0x1601 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x536166654D6174683A206469766973696F6E206279207A65726F000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP2 DUP4 DUP2 PUSH2 0x160A JUMPI INVALID JUMPDEST DIV SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x162D PUSH2 0x1628 PUSH1 0xFF DUP7 DUP2 AND SWAP1 DUP7 AND PUSH2 0x1ED6 JUMP JUMPDEST PUSH2 0x1F3B JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 GT DUP1 ISZERO PUSH2 0x1640 JUMPI POP PUSH1 0x12 DUP2 GT ISZERO JUMPDEST ISZERO PUSH2 0x1701 JUMPI DUP3 PUSH1 0xFF AND DUP5 PUSH1 0xFF AND GT ISZERO PUSH2 0x16AA JUMPI PUSH2 0x1674 PUSH2 0x1661 DUP3 PUSH1 0x2 PUSH2 0x15AB JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 AND SWAP1 PUSH1 0xA EXP PUSH2 0x1F52 JUMP JUMPDEST SWAP2 POP PUSH1 0x2 DUP2 MOD PUSH1 0x1 EQ ISZERO PUSH2 0x16A5 JUMPI PUSH2 0x16A2 DUP3 PUSH17 0x3298B075B4B6A5240945790619B37FD4A PUSH1 0x1 PUSH1 0x80 SHL PUSH2 0x1714 JUMP JUMPDEST SWAP2 POP JUMPDEST PUSH2 0x16FC JUMP JUMPDEST PUSH2 0x16CB PUSH2 0x16B8 DUP3 PUSH1 0x2 PUSH2 0x15AB JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 AND SWAP1 PUSH1 0xA EXP PUSH2 0x15AB JUMP JUMPDEST SWAP2 POP PUSH1 0x2 DUP2 MOD PUSH1 0x1 EQ ISZERO PUSH2 0x16FC JUMPI PUSH2 0x16F9 DUP3 PUSH1 0x1 PUSH1 0x80 SHL PUSH17 0x3298B075B4B6A5240945790619B37FD4A PUSH2 0x1714 JUMP JUMPDEST SWAP2 POP JUMPDEST PUSH2 0x10CD JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 PUSH1 0x0 NOT DUP6 DUP8 MULMOD DUP7 DUP7 MUL SWAP3 POP DUP3 DUP2 LT SWAP1 DUP4 SWAP1 SUB SUB SWAP1 POP DUP1 PUSH2 0x174A JUMPI PUSH1 0x0 DUP5 GT PUSH2 0x173F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP3 SWAP1 DIV SWAP1 POP PUSH2 0x2EE JUMP JUMPDEST DUP1 DUP5 GT PUSH2 0x1756 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP5 DUP7 DUP9 MULMOD PUSH1 0x0 DUP7 DUP2 SUB DUP8 AND SWAP7 DUP8 SWAP1 DIV SWAP7 PUSH1 0x2 PUSH1 0x3 DUP10 MUL DUP2 XOR DUP1 DUP11 MUL DUP3 SUB MUL DUP1 DUP11 MUL DUP3 SUB MUL DUP1 DUP11 MUL DUP3 SUB MUL DUP1 DUP11 MUL DUP3 SUB MUL DUP1 DUP11 MUL DUP3 SUB MUL DUP1 DUP11 MUL SWAP1 SWAP2 SUB MUL SWAP2 DUP2 SWAP1 SUB DUP2 SWAP1 DIV PUSH1 0x1 ADD DUP7 DUP5 GT SWAP1 SWAP6 SUB SWAP5 SWAP1 SWAP5 MUL SWAP2 SWAP1 SWAP5 SUB SWAP3 SWAP1 SWAP3 DIV SWAP2 SWAP1 SWAP2 OR SWAP2 SWAP1 SWAP2 MUL SWAP2 POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x5 DUP5 PUSH1 0xFF AND GT ISZERO PUSH2 0x17EB JUMPI PUSH2 0x17E8 DUP6 PUSH1 0xFF PUSH1 0x4 NOT DUP8 ADD AND PUSH1 0xA EXP PUSH2 0x15AB JUMP JUMPDEST SWAP5 POP JUMPDEST PUSH1 0x0 PUSH1 0x4 PUSH1 0xA DUP8 MOD GT SWAP1 POP PUSH2 0x1801 DUP7 PUSH1 0xA PUSH2 0x15AB JUMP JUMPDEST SWAP6 POP DUP1 ISZERO PUSH2 0x1810 JUMPI DUP6 PUSH1 0x1 ADD SWAP6 POP JUMPDEST DUP6 PUSH3 0x186A0 EQ ISZERO PUSH2 0x1826 JUMPI PUSH1 0xA DUP7 DIV SWAP6 POP PUSH1 0x1 SWAP2 POP JUMPDEST POP SWAP4 SWAP5 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 GT ISZERO PUSH2 0x1886 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x536166654D6174683A207375627472616374696F6E206F766572666C6F770000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP SWAP1 SUB SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 ADD DUP4 DUP2 LT ISZERO PUSH2 0x20B JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x536166654D6174683A206164646974696F6E206F766572666C6F770000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP3 PUSH1 0x20 ADD MLOAD PUSH1 0xFF AND PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP1 ISZERO PUSH2 0x1908 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x1933 JUMPI PUSH1 0x20 DUP3 ADD DUP2 DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP DUP3 PUSH1 0xE0 ADD MLOAD ISZERO PUSH2 0x1989 JUMPI PUSH32 0x2500000000000000000000000000000000000000000000000000000000000000 DUP2 PUSH1 0x1 DUP4 MLOAD SUB DUP2 MLOAD DUP2 LT PUSH2 0x1971 JUMPI INVALID JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP JUMPDEST DUP3 PUSH1 0xC0 ADD MLOAD ISZERO PUSH2 0x19E6 JUMPI PUSH1 0x3 PUSH1 0xFC SHL DUP2 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x19A5 JUMPI INVALID JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH1 0x17 PUSH1 0xF9 SHL DUP2 PUSH1 0x1 DUP2 MLOAD DUP2 LT PUSH2 0x19CE JUMPI INVALID JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP JUMPDEST PUSH1 0x80 DUP4 ADD MLOAD PUSH1 0xFF AND JUMPDEST PUSH1 0xA0 DUP5 ADD MLOAD PUSH2 0x1A02 SWAP1 PUSH1 0xFF AND PUSH1 0x1 PUSH2 0x188C JUMP JUMPDEST DUP2 LT ISZERO PUSH2 0x1A39 JUMPI PUSH1 0x30 PUSH1 0xF8 SHL DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x1A1A JUMPI INVALID JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH1 0x1 ADD PUSH2 0x19EF JUMP JUMPDEST POP JUMPDEST DUP3 MLOAD ISZERO PUSH2 0x21F JUMPI PUSH1 0x0 DUP4 PUSH1 0x60 ADD MLOAD PUSH1 0xFF AND GT DUP1 ISZERO PUSH2 0x1A66 JUMPI POP DUP3 PUSH1 0x60 ADD MLOAD PUSH1 0xFF AND DUP4 PUSH1 0x40 ADD MLOAD PUSH1 0xFF AND EQ JUMPDEST ISZERO PUSH2 0x1AA9 JUMPI PUSH1 0x40 DUP4 ADD DUP1 MLOAD PUSH1 0xFF PUSH1 0x0 NOT DUP3 ADD DUP2 AND SWAP1 SWAP3 MSTORE DUP3 MLOAD PUSH1 0x17 PUSH1 0xF9 SHL SWAP3 DUP5 SWAP3 AND SWAP1 DUP2 LT PUSH2 0x1A91 JUMPI INVALID JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP JUMPDEST DUP3 MLOAD PUSH2 0x1ABB SWAP1 PUSH1 0x30 SWAP1 PUSH1 0xA SWAP1 MOD PUSH2 0x188C JUMP JUMPDEST PUSH1 0xF8 SHL DUP2 DUP5 PUSH1 0x40 ADD DUP1 MLOAD DUP1 SWAP2 SWAP1 PUSH1 0x1 SWAP1 SUB PUSH1 0xFF AND PUSH1 0xFF AND DUP2 MSTORE POP PUSH1 0xFF AND DUP2 MLOAD DUP2 LT PUSH2 0x1AE2 JUMPI INVALID JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH1 0xA DUP4 PUSH1 0x0 ADD DUP2 DUP2 MLOAD DUP2 PUSH2 0x1B09 JUMPI INVALID JUMPDEST DIV SWAP1 MSTORE POP PUSH2 0x1A3B JUMP JUMPDEST PUSH1 0x0 DUP4 PUSH1 0x2 SIGNEXTEND DUP3 PUSH1 0x2 SIGNEXTEND SLT ISZERO PUSH2 0x1B2B JUMPI POP PUSH1 0x0 NOT PUSH2 0x2EE JUMP JUMPDEST DUP3 PUSH1 0x2 SIGNEXTEND DUP3 PUSH1 0x2 SIGNEXTEND SGT ISZERO PUSH2 0x1B41 JUMPI POP PUSH1 0x1 PUSH2 0x2EE JUMP JUMPDEST POP PUSH1 0x0 PUSH2 0x2EE JUMP JUMPDEST PUSH1 0x0 PUSH1 0xFF DUP3 PUSH2 0x1B58 DUP7 DUP7 PUSH2 0xB0E JUMP JUMPDEST MUL DUP2 PUSH2 0x1B60 JUMPI INVALID JUMPDEST MOD SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x2D2 PUSH2 0x1BA2 DUP5 PUSH2 0xA3E PUSH2 0x1B7F DUP9 DUP11 PUSH2 0x182F JUMP JUMPDEST PUSH2 0x1B9C PUSH2 0x1B8C DUP9 DUP11 PUSH2 0x182F JUMP JUMPDEST PUSH2 0x1B96 DUP14 DUP14 PUSH2 0x182F JUMP JUMPDEST SWAP1 PUSH2 0x1F52 JUMP JUMPDEST SWAP1 PUSH2 0x15AB JUMP JUMPDEST PUSH2 0x1FAB JUMP JUMPDEST PUSH1 0x60 PUSH2 0x1BB2 DUP3 PUSH2 0x2086 JUMP JUMPDEST PUSH2 0x1BCE DUP4 PUSH1 0x0 ADD MLOAD DUP5 PUSH1 0x20 ADD MLOAD DUP6 PUSH1 0x60 ADD MLOAD DUP7 PUSH1 0x80 ADD MLOAD PUSH2 0x273A JUMP JUMPDEST PUSH2 0x1BE5 DUP5 PUSH1 0x60 ADD MLOAD DUP6 PUSH1 0x80 ADD MLOAD DUP7 PUSH1 0xA0 ADD MLOAD PUSH2 0x2A65 JUMP JUMPDEST PUSH2 0x1C03 DUP6 PUSH1 0xC0 ADD MLOAD DUP7 PUSH1 0xE0 ADD MLOAD DUP8 PUSH2 0x100 ADD MLOAD DUP9 PUSH2 0x120 ADD MLOAD PUSH2 0x2BD1 JUMP JUMPDEST PUSH2 0x1C23 PUSH2 0x1C14 DUP8 PUSH2 0x140 ADD MLOAD PUSH2 0x1FAB JUMP JUMPDEST DUP8 PUSH1 0xC0 ADD MLOAD DUP9 PUSH1 0xE0 ADD MLOAD PUSH2 0x2F24 JUMP JUMPDEST PUSH2 0x1C36 DUP8 PUSH2 0x140 ADD MLOAD DUP9 PUSH1 0x40 ADD MLOAD PUSH2 0x3355 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD DUP1 DUP8 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x1C68 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x1C49 JUMP JUMPDEST MLOAD DUP2 MLOAD PUSH1 0x20 SWAP4 DUP5 SUB PUSH2 0x100 EXP PUSH1 0x0 NOT ADD DUP1 NOT SWAP1 SWAP3 AND SWAP2 AND OR SWAP1 MSTORE DUP10 MLOAD SWAP2 SWAP1 SWAP4 ADD SWAP3 DUP10 ADD SWAP2 POP DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x1CB0 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x1C91 JUMP JUMPDEST MLOAD DUP2 MLOAD PUSH1 0x20 SWAP4 DUP5 SUB PUSH2 0x100 EXP PUSH1 0x0 NOT ADD DUP1 NOT SWAP1 SWAP3 AND SWAP2 AND OR SWAP1 MSTORE DUP9 MLOAD SWAP2 SWAP1 SWAP4 ADD SWAP3 DUP9 ADD SWAP2 POP DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x1CF8 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x1CD9 JUMP JUMPDEST MLOAD DUP2 MLOAD PUSH1 0x20 SWAP4 DUP5 SUB PUSH2 0x100 EXP PUSH1 0x0 NOT ADD DUP1 NOT SWAP1 SWAP3 AND SWAP2 AND OR SWAP1 MSTORE DUP8 MLOAD SWAP2 SWAP1 SWAP4 ADD SWAP3 DUP8 ADD SWAP2 POP DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x1D40 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x1D21 JUMP JUMPDEST MLOAD DUP2 MLOAD PUSH1 0x20 SWAP4 DUP5 SUB PUSH2 0x100 EXP PUSH1 0x0 NOT ADD DUP1 NOT SWAP1 SWAP3 AND SWAP2 AND OR SWAP1 MSTORE DUP7 MLOAD SWAP2 SWAP1 SWAP4 ADD SWAP3 DUP7 ADD SWAP2 POP DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x1D88 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x1D69 JUMP JUMPDEST MLOAD DUP2 MLOAD PUSH1 0x20 SWAP4 DUP5 SUB PUSH2 0x100 EXP PUSH1 0x0 NOT ADD DUP1 NOT SWAP1 SWAP3 AND SWAP2 AND OR SWAP1 MSTORE DUP6 MLOAD SWAP2 SWAP1 SWAP4 ADD SWAP3 DUP6 ADD SWAP2 POP DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x1DD0 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x1DB1 JUMP JUMPDEST MLOAD DUP2 MLOAD PUSH1 0x20 SWAP4 SWAP1 SWAP4 SUB PUSH2 0x100 EXP PUSH1 0x0 NOT ADD DUP1 NOT SWAP1 SWAP2 AND SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 MSTORE PUSH32 0x3C2F7376673E0000000000000000000000000000000000000000000000000000 SWAP3 ADD SWAP2 DUP3 MSTORE POP PUSH1 0x40 DUP1 MLOAD DUP1 DUP4 SUB PUSH1 0x19 NOT ADD DUP2 MSTORE PUSH1 0x6 SWAP1 SWAP3 ADD SWAP1 MSTORE SWAP10 SWAP9 POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 GT PUSH2 0x1E44 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x80 SHL DUP3 LT PUSH2 0x1E57 JUMPI PUSH1 0x80 SWAP2 DUP3 SHR SWAP2 ADD JUMPDEST PUSH9 0x10000000000000000 DUP3 LT PUSH2 0x1E6F JUMPI PUSH1 0x40 SWAP2 DUP3 SHR SWAP2 ADD JUMPDEST PUSH5 0x100000000 DUP3 LT PUSH2 0x1E83 JUMPI PUSH1 0x20 SWAP2 DUP3 SHR SWAP2 ADD JUMPDEST PUSH3 0x10000 DUP3 LT PUSH2 0x1E95 JUMPI PUSH1 0x10 SWAP2 DUP3 SHR SWAP2 ADD JUMPDEST PUSH2 0x100 DUP3 LT PUSH2 0x1EA6 JUMPI PUSH1 0x8 SWAP2 DUP3 SHR SWAP2 ADD JUMPDEST PUSH1 0x10 DUP3 LT PUSH2 0x1EB6 JUMPI PUSH1 0x4 SWAP2 DUP3 SHR SWAP2 ADD JUMPDEST PUSH1 0x4 DUP3 LT PUSH2 0x1EC6 JUMPI PUSH1 0x2 SWAP2 DUP3 SHR SWAP2 ADD JUMPDEST PUSH1 0x2 DUP3 LT PUSH2 0x222 JUMPI PUSH1 0x1 ADD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 SUB DUP2 DUP4 SLT DUP1 ISZERO SWAP1 PUSH2 0x1EEB JUMPI POP DUP4 DUP2 SGT ISZERO JUMPDEST DUP1 PUSH2 0x1F00 JUMPI POP PUSH1 0x0 DUP4 SLT DUP1 ISZERO PUSH2 0x1F00 JUMPI POP DUP4 DUP2 SGT JUMPDEST PUSH2 0x20B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x24 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x5BD0 PUSH1 0x24 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP3 SLT ISZERO PUSH2 0x1F4E JUMPI DUP2 PUSH1 0x0 SUB PUSH2 0x21F JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x1F61 JUMPI POP PUSH1 0x0 PUSH2 0x20E JUMP JUMPDEST DUP3 DUP3 MUL DUP3 DUP5 DUP3 DUP2 PUSH2 0x1F6E JUMPI INVALID JUMPDEST DIV EQ PUSH2 0x20B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x21 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x52E9 PUSH1 0x21 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x60 DUP2 PUSH2 0x1FD0 JUMPI POP PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x1 DUP2 MSTORE PUSH1 0x3 PUSH1 0xFC SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH2 0x222 JUMP JUMPDEST DUP2 PUSH1 0x0 JUMPDEST DUP2 ISZERO PUSH2 0x1FE8 JUMPI PUSH1 0x1 ADD PUSH1 0xA DUP3 DIV SWAP2 POP PUSH2 0x1FD4 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP1 ISZERO PUSH2 0x2001 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x202C JUMPI PUSH1 0x20 DUP3 ADD DUP2 DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP DUP6 SWAP4 POP SWAP1 POP PUSH1 0x0 NOT DUP3 ADD JUMPDEST DUP4 ISZERO PUSH2 0x207D JUMPI PUSH1 0xA DUP5 MOD PUSH1 0x30 ADD PUSH1 0xF8 SHL DUP3 DUP3 DUP1 PUSH1 0x1 SWAP1 SUB SWAP4 POP DUP2 MLOAD DUP2 LT PUSH2 0x205B JUMPI INVALID JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH1 0xA DUP5 DIV SWAP4 POP PUSH2 0x2038 JUMP JUMPDEST POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x211B DUP3 PUSH2 0x160 ADD MLOAD PUSH1 0x40 MLOAD PUSH1 0x20 ADD DUP1 DUP1 PUSH2 0x4EA3 PUSH1 0x81 SWAP2 CODECOPY PUSH1 0x81 ADD DUP3 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x20CE JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x20AF JUMP JUMPDEST PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP3 MLOAD AND DUP2 DUP5 MLOAD AND DUP1 DUP3 OR DUP6 MSTORE POP POP POP POP POP POP SWAP1 POP ADD DUP1 PUSH9 0x13979F1E17B9BB339F PUSH1 0xB9 SHL DUP2 MSTORE POP PUSH1 0x9 ADD SWAP2 POP POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH2 0x33CD JUMP JUMPDEST PUSH2 0x2287 DUP4 PUSH2 0x1E0 ADD MLOAD DUP5 PUSH2 0x200 ADD MLOAD DUP6 PUSH2 0x180 ADD MLOAD PUSH1 0x40 MLOAD PUSH1 0x20 ADD DUP1 DUP1 PUSH2 0x49E0 PUSH1 0x63 SWAP2 CODECOPY PUSH1 0x63 ADD DUP5 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x216D JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x214E JUMP JUMPDEST MLOAD DUP2 MLOAD PUSH1 0x20 SWAP4 DUP5 SUB PUSH2 0x100 EXP PUSH1 0x0 NOT ADD DUP1 NOT SWAP1 SWAP3 AND SWAP2 AND OR SWAP1 MSTORE PUSH6 0x272063793D27 PUSH1 0xD0 SHL SWAP2 SWAP1 SWAP4 ADD SWAP1 DUP2 MSTORE DUP6 MLOAD PUSH1 0x6 SWAP1 SWAP2 ADD SWAP3 DUP7 ADD SWAP2 POP DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x21C7 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x21A8 JUMP JUMPDEST MLOAD DUP2 MLOAD PUSH1 0x20 SWAP4 DUP5 SUB PUSH2 0x100 EXP PUSH1 0x0 NOT ADD DUP1 NOT SWAP1 SWAP3 AND SWAP2 AND OR SWAP1 MSTORE PUSH32 0x2720723D273132307078272066696C6C3D272300000000000000000000000000 SWAP2 SWAP1 SWAP4 ADD SWAP1 DUP2 MSTORE DUP5 MLOAD PUSH1 0x13 SWAP1 SWAP2 ADD SWAP3 DUP6 ADD SWAP2 POP DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x2238 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x2219 JUMP JUMPDEST PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP3 MLOAD AND DUP2 DUP5 MLOAD AND DUP1 DUP3 OR DUP6 MSTORE POP POP POP POP POP POP SWAP1 POP ADD DUP1 PUSH9 0x13979F1E17B9BB339F PUSH1 0xB9 SHL DUP2 MSTORE POP PUSH1 0x9 ADD SWAP4 POP POP POP POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH2 0x33CD JUMP JUMPDEST PUSH2 0x22D8 DUP5 PUSH2 0x220 ADD MLOAD DUP6 PUSH2 0x240 ADD MLOAD DUP7 PUSH2 0x1A0 ADD MLOAD PUSH1 0x40 MLOAD PUSH1 0x20 ADD DUP1 DUP1 PUSH2 0x49E0 PUSH1 0x63 SWAP2 CODECOPY PUSH1 0x63 ADD DUP5 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x20 DUP4 LT PUSH2 0x216D JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x214E JUMP JUMPDEST PUSH2 0x23F7 DUP6 PUSH2 0x260 ADD MLOAD DUP7 PUSH2 0x280 ADD MLOAD DUP8 PUSH2 0x1C0 ADD MLOAD PUSH1 0x40 MLOAD PUSH1 0x20 ADD DUP1 DUP1 PUSH2 0x49E0 PUSH1 0x63 SWAP2 CODECOPY PUSH1 0x63 ADD DUP5 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x232A JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x230B JUMP JUMPDEST MLOAD DUP2 MLOAD PUSH1 0x20 SWAP4 DUP5 SUB PUSH2 0x100 EXP PUSH1 0x0 NOT ADD DUP1 NOT SWAP1 SWAP3 AND SWAP2 AND OR SWAP1 MSTORE PUSH6 0x272063793D27 PUSH1 0xD0 SHL SWAP2 SWAP1 SWAP4 ADD SWAP1 DUP2 MSTORE DUP6 MLOAD PUSH1 0x6 SWAP1 SWAP2 ADD SWAP3 DUP7 ADD SWAP2 POP DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x2384 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x2365 JUMP JUMPDEST MLOAD DUP2 MLOAD PUSH1 0x0 NOT PUSH1 0x20 SWAP5 DUP6 SUB PUSH2 0x100 EXP ADD SWAP1 DUP2 AND SWAP1 NOT SWAP2 SWAP1 SWAP2 AND OR SWAP1 MSTORE PUSH32 0x2720723D273130307078272066696C6C3D272300000000000000000000000000 SWAP4 SWAP1 SWAP2 ADD SWAP3 DUP4 MSTORE DUP5 MLOAD PUSH1 0x13 SWAP1 SWAP4 ADD SWAP3 SWAP1 DUP6 ADD SWAP2 POP DUP1 DUP4 DUP4 PUSH1 0x20 DUP4 LT PUSH2 0x2238 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x2219 JUMP JUMPDEST PUSH2 0x160 DUP7 ADD MLOAD PUSH1 0x40 MLOAD PUSH1 0x20 ADD DUP1 PUSH1 0x56 PUSH2 0x475B DUP3 CODECOPY PUSH1 0x56 ADD PUSH1 0x2C PUSH2 0x510A DUP3 CODECOPY PUSH32 0x3C646566733E0000000000000000000000000000000000000000000000000000 PUSH1 0x2C DUP3 ADD MSTORE PUSH1 0x32 ADD PUSH1 0x4B PUSH2 0x4E58 DUP3 CODECOPY PUSH1 0x4B ADD DUP7 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x2473 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x2454 JUMP JUMPDEST PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP3 MLOAD AND DUP2 DUP5 MLOAD AND DUP1 DUP3 OR DUP6 MSTORE POP POP POP POP POP POP SWAP1 POP ADD DUP1 PUSH2 0x5990 PUSH1 0x3E SWAP2 CODECOPY PUSH1 0x3E ADD DUP6 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x24CB JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x24AC JUMP JUMPDEST PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP3 MLOAD AND DUP2 DUP5 MLOAD AND DUP1 DUP3 OR DUP6 MSTORE POP POP POP POP POP POP SWAP1 POP ADD DUP1 PUSH2 0x4F24 PUSH1 0x3E SWAP2 CODECOPY PUSH1 0x3E ADD DUP5 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x2523 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x2504 JUMP JUMPDEST MLOAD DUP2 MLOAD PUSH1 0x20 SWAP4 SWAP1 SWAP4 SUB PUSH2 0x100 EXP PUSH1 0x0 NOT ADD DUP1 NOT SWAP1 SWAP2 AND SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 MSTORE PUSH32 0x22202F3E00000000000000000000000000000000000000000000000000000000 SWAP3 ADD SWAP2 DUP3 MSTORE POP PUSH1 0x4 ADD PUSH1 0x3B PUSH2 0x4653 DUP3 CODECOPY PUSH1 0x3B ADD DUP4 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x25A0 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x2581 JUMP JUMPDEST PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP3 MLOAD AND DUP2 DUP5 MLOAD AND DUP1 DUP3 OR DUP6 MSTORE POP POP POP POP POP POP SWAP1 POP ADD DUP1 PUSH2 0x4AA0 PUSH1 0x99 SWAP2 CODECOPY PUSH1 0x99 ADD PUSH1 0x7F PUSH2 0x5541 DUP3 CODECOPY PUSH1 0x7F ADD PUSH1 0x88 PUSH2 0x5908 DUP3 CODECOPY PUSH1 0x88 ADD PUSH1 0x41 PUSH2 0x4B39 DUP3 CODECOPY PUSH1 0x41 ADD PUSH1 0x5D PUSH2 0x5AC8 DUP3 CODECOPY PUSH1 0x5D ADD PUSH1 0x72 PUSH2 0x55ED DUP3 CODECOPY PUSH1 0x72 ADD PUSH1 0x49 PUSH2 0x45BC DUP3 CODECOPY PUSH1 0x49 ADD PUSH1 0xBE PUSH2 0x4D9A DUP3 CODECOPY PUSH1 0xBE ADD PUSH1 0x71 PUSH2 0x486C DUP3 CODECOPY PUSH1 0x71 ADD PUSH1 0x75 PUSH2 0x5484 DUP3 CODECOPY PUSH1 0x75 ADD PUSH1 0x66 PUSH2 0x4B7A DUP3 CODECOPY PUSH1 0x66 ADD PUSH1 0xA4 PUSH2 0x5136 DUP3 CODECOPY PUSH1 0xA4 ADD PUSH1 0x85 PUSH2 0x59CE DUP3 CODECOPY PUSH32 0x3C6720636C69702D706174683D2275726C2823636F726E65727329223E000000 PUSH1 0x85 DUP3 ADD MSTORE PUSH32 0x3C726563742066696C6C3D220000000000000000000000000000000000000000 PUSH1 0xA2 DUP3 ADD MSTORE DUP3 MLOAD PUSH1 0xAE SWAP1 SWAP2 ADD SWAP1 PUSH1 0x20 DUP5 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x26BE JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x269F JUMP JUMPDEST PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP3 MLOAD AND DUP2 DUP5 MLOAD AND DUP1 DUP3 OR DUP6 MSTORE POP POP POP POP POP POP SWAP1 POP ADD DUP1 PUSH2 0x4BE0 PUSH1 0x31 SWAP2 CODECOPY PUSH1 0x31 ADD PUSH1 0x4E PUSH2 0x4605 DUP3 CODECOPY PUSH1 0x4E ADD PUSH1 0x5D PUSH2 0x4A43 DUP3 CODECOPY PUSH1 0x5D ADD PUSH1 0x41 PUSH2 0x5089 DUP3 CODECOPY PUSH1 0x41 ADD PUSH1 0x52 PUSH2 0x4F62 DUP3 CODECOPY PUSH1 0x52 ADD PUSH1 0x75 PUSH2 0x5A53 DUP3 CODECOPY PUSH1 0x75 ADD SWAP6 POP POP POP POP POP POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 DUP4 DUP3 DUP6 DUP5 DUP9 DUP8 DUP11 DUP10 PUSH1 0x40 MLOAD PUSH1 0x20 ADD DUP1 DUP1 PUSH2 0x5BAB PUSH1 0x25 SWAP2 CODECOPY PUSH1 0x25 ADD PUSH1 0x7D PUSH2 0x4D1D DUP3 CODECOPY PUSH1 0x7D ADD DUP10 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x278B JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x276C JUMP JUMPDEST MLOAD DUP2 MLOAD PUSH1 0x20 SWAP4 DUP5 SUB PUSH2 0x100 EXP PUSH1 0x0 NOT ADD DUP1 NOT SWAP1 SWAP3 AND SWAP2 AND OR SWAP1 MSTORE PUSH5 0x107140511 PUSH1 0xDD SHL SWAP2 SWAP1 SWAP4 ADD SWAP1 DUP2 MSTORE DUP11 MLOAD PUSH1 0x5 SWAP1 SWAP2 ADD SWAP3 DUP12 ADD SWAP2 POP DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x27E4 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x27C5 JUMP JUMPDEST PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP3 MLOAD AND DUP2 DUP5 MLOAD AND DUP1 DUP3 OR DUP6 MSTORE POP POP POP POP POP POP SWAP1 POP ADD DUP1 PUSH2 0x4C11 PUSH1 0x79 SWAP2 CODECOPY PUSH1 0x79 ADD PUSH1 0x86 PUSH2 0x5B25 DUP3 CODECOPY PUSH1 0x86 ADD DUP8 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x2846 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x2827 JUMP JUMPDEST MLOAD DUP2 MLOAD PUSH1 0x20 SWAP4 DUP5 SUB PUSH2 0x100 EXP PUSH1 0x0 NOT ADD DUP1 NOT SWAP1 SWAP3 AND SWAP2 AND OR SWAP1 MSTORE PUSH5 0x107140511 PUSH1 0xDD SHL SWAP2 SWAP1 SWAP4 ADD SWAP1 DUP2 MSTORE DUP9 MLOAD PUSH1 0x5 SWAP1 SWAP2 ADD SWAP3 DUP10 ADD SWAP2 POP DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x289F JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x2880 JUMP JUMPDEST PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP3 MLOAD AND DUP2 DUP5 MLOAD AND DUP1 DUP3 OR DUP6 MSTORE POP POP POP POP POP POP SWAP1 POP ADD DUP1 PUSH2 0x47E7 PUSH1 0x85 SWAP2 CODECOPY PUSH1 0x85 ADD PUSH1 0x7B PUSH2 0x5776 DUP3 CODECOPY PUSH1 0x7B ADD DUP6 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x2901 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x28E2 JUMP JUMPDEST MLOAD DUP2 MLOAD PUSH1 0x20 SWAP4 DUP5 SUB PUSH2 0x100 EXP PUSH1 0x0 NOT ADD DUP1 NOT SWAP1 SWAP3 AND SWAP2 AND OR SWAP1 MSTORE PUSH5 0x107140511 PUSH1 0xDD SHL SWAP2 SWAP1 SWAP4 ADD SWAP1 DUP2 MSTORE DUP7 MLOAD PUSH1 0x5 SWAP1 SWAP2 ADD SWAP3 DUP8 ADD SWAP2 POP DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x295A JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x293B JUMP JUMPDEST PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP3 MLOAD AND DUP2 DUP5 MLOAD AND DUP1 DUP3 OR DUP6 MSTORE POP POP POP POP POP POP SWAP1 POP ADD DUP1 PUSH2 0x4931 PUSH1 0x5D SWAP2 CODECOPY PUSH1 0x5D ADD PUSH1 0xA3 PUSH2 0x53E1 DUP3 CODECOPY PUSH1 0xA3 ADD DUP4 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x29BC JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x299D JUMP JUMPDEST MLOAD DUP2 MLOAD PUSH1 0x20 SWAP4 DUP5 SUB PUSH2 0x100 EXP PUSH1 0x0 NOT ADD DUP1 NOT SWAP1 SWAP3 AND SWAP2 AND OR SWAP1 MSTORE PUSH5 0x107140511 PUSH1 0xDD SHL SWAP2 SWAP1 SWAP4 ADD SWAP1 DUP2 MSTORE DUP5 MLOAD PUSH1 0x5 SWAP1 SWAP2 ADD SWAP3 DUP6 ADD SWAP2 POP DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x2A15 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x29F6 JUMP JUMPDEST PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP3 MLOAD AND DUP2 DUP5 MLOAD AND DUP1 DUP3 OR DUP6 MSTORE POP POP POP POP POP POP SWAP1 POP ADD DUP1 PUSH2 0x4531 PUSH1 0x8B SWAP2 CODECOPY PUSH1 0x8B ADD SWAP9 POP POP POP POP POP POP POP POP POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP4 DUP4 DUP4 PUSH1 0x40 MLOAD PUSH1 0x20 ADD DUP1 DUP1 PUSH2 0x468E PUSH1 0xCD SWAP2 CODECOPY PUSH1 0xCD ADD DUP5 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x2AA7 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x2A88 JUMP JUMPDEST PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP3 MLOAD AND DUP2 DUP5 MLOAD AND DUP1 DUP3 OR DUP6 MSTORE POP POP POP POP POP POP SWAP1 POP ADD DUP1 PUSH32 0x2F00000000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP PUSH1 0x1 ADD DUP4 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x2B1C JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x2AFD JUMP JUMPDEST PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP3 MLOAD AND DUP2 DUP5 MLOAD AND DUP1 DUP3 OR DUP6 MSTORE POP POP POP POP POP POP SWAP1 POP ADD DUP1 PUSH2 0x5D54 PUSH1 0x77 SWAP2 CODECOPY PUSH1 0x77 ADD DUP3 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x2B74 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x2B55 JUMP JUMPDEST MLOAD DUP2 MLOAD PUSH1 0x20 SWAP4 SWAP1 SWAP4 SUB PUSH2 0x100 EXP PUSH1 0x0 NOT ADD DUP1 NOT SWAP1 SWAP2 AND SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 MSTORE PUSH11 0x1E17BA32BC3A1F1E17B39F PUSH1 0xA9 SHL SWAP3 ADD SWAP2 DUP3 MSTORE POP PUSH1 0xB ADD PUSH1 0x73 PUSH2 0x5BF4 DUP3 CODECOPY PUSH1 0x73 ADD SWAP4 POP POP POP POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP3 PUSH1 0x0 SIGNEXTEND PUSH1 0x1 EQ PUSH2 0x2C63 JUMPI DUP3 PUSH1 0x0 SIGNEXTEND PUSH1 0x0 NOT EQ PUSH2 0x2C27 JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x5 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x236E6F6E65000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP PUSH2 0x2C5E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0xA DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x23666164652D646F776E00000000000000000000000000000000000000000000 DUP2 MSTORE POP JUMPDEST PUSH2 0x2C9A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x8 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x23666164652D7570000000000000000000000000000000000000000000000000 DUP2 MSTORE POP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x2CA9 DUP8 DUP8 DUP8 PUSH2 0x3552 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 DUP4 DUP4 PUSH2 0x2CB8 DUP9 PUSH2 0x37A0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD DUP1 DUP1 PUSH32 0x3C67206D61736B3D2275726C2800000000000000000000000000000000000000 DUP2 MSTORE POP PUSH1 0xD ADD DUP7 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x2D12 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x2CF3 JUMP JUMPDEST MLOAD DUP2 MLOAD PUSH1 0x20 SWAP4 SWAP1 SWAP4 SUB PUSH2 0x100 EXP PUSH1 0x0 NOT ADD DUP1 NOT SWAP1 SWAP2 AND SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 MSTORE PUSH2 0x1491 PUSH1 0xF1 SHL SWAP3 ADD SWAP2 DUP3 MSTORE POP PUSH1 0x2 ADD PUSH1 0x77 PUSH2 0x51DA DUP3 CODECOPY PUSH1 0x77 ADD DUP6 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x2D74 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x2D55 JUMP JUMPDEST PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP3 MLOAD AND DUP2 DUP5 MLOAD AND DUP1 DUP3 OR DUP6 MSTORE POP POP POP POP POP POP SWAP1 POP ADD DUP1 PUSH2 0x48DD PUSH1 0x54 SWAP2 CODECOPY PUSH1 0x54 ADD DUP1 PUSH32 0x3C2F673E3C67206D61736B3D2275726C28000000000000000000000000000000 DUP2 MSTORE POP PUSH1 0x11 ADD DUP5 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x2DF4 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x2DD5 JUMP JUMPDEST MLOAD DUP2 MLOAD PUSH1 0x20 SWAP4 SWAP1 SWAP4 SUB PUSH2 0x100 EXP PUSH1 0x0 NOT ADD DUP1 NOT SWAP1 SWAP2 AND SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 MSTORE PUSH2 0x1491 PUSH1 0xF1 SHL SWAP3 ADD SWAP2 DUP3 MSTORE POP PUSH1 0x2 ADD PUSH1 0x29 PUSH2 0x5251 DUP3 CODECOPY PUSH1 0x29 ADD PUSH1 0x45 PUSH2 0x52A4 DUP3 CODECOPY PUSH1 0x45 ADD DUP1 PUSH32 0x3C7061746820643D220000000000000000000000000000000000000000000000 DUP2 MSTORE POP PUSH1 0x9 ADD DUP4 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x2E88 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x2E69 JUMP JUMPDEST PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP3 MLOAD AND DUP2 DUP5 MLOAD AND DUP1 DUP3 OR DUP6 MSTORE POP POP POP POP POP POP SWAP1 POP ADD DUP1 PUSH2 0x54F9 PUSH1 0x48 SWAP2 CODECOPY PUSH1 0x48 ADD DUP3 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x2EE0 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x2EC1 JUMP JUMPDEST PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP3 MLOAD AND DUP2 DUP5 MLOAD AND DUP1 DUP3 OR DUP6 MSTORE POP POP POP POP POP POP SWAP1 POP ADD SWAP6 POP POP POP POP POP POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP3 POP POP POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH2 0x2F31 DUP5 PUSH2 0x3C74 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x2F3E DUP5 PUSH2 0x3C74 JUMP JUMPDEST DUP7 MLOAD DUP4 MLOAD DUP3 MLOAD SWAP3 SWAP4 POP PUSH1 0x4 SWAP1 SWAP2 ADD SWAP2 PUSH1 0xA SWAP2 DUP3 ADD SWAP2 ADD PUSH1 0x0 DUP1 PUSH2 0x2F61 DUP11 DUP11 PUSH2 0x3BA JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH2 0x2F74 DUP6 PUSH1 0x4 ADD PUSH1 0x7 MUL PUSH2 0x1FAB JUMP JUMPDEST DUP12 PUSH2 0x2F84 DUP7 PUSH1 0x4 ADD PUSH1 0x7 MUL PUSH2 0x1FAB JUMP JUMPDEST DUP10 PUSH2 0x2F94 DUP8 PUSH1 0x4 ADD PUSH1 0x7 MUL PUSH2 0x1FAB JUMP JUMPDEST DUP11 DUP8 DUP8 PUSH1 0x40 MLOAD PUSH1 0x20 ADD DUP1 DUP1 PUSH2 0x55C0 PUSH1 0x2D SWAP2 CODECOPY PUSH1 0x2D ADD DUP1 PUSH13 0x1E3932B1BA103BB4B23A341E91 PUSH1 0x99 SHL DUP2 MSTORE POP PUSH1 0xD ADD DUP10 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x2FEC JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x2FCD JUMP JUMPDEST PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP3 MLOAD AND DUP2 DUP5 MLOAD AND DUP1 DUP3 OR DUP6 MSTORE POP POP POP POP POP POP SWAP1 POP ADD DUP1 PUSH2 0x4FB4 PUSH1 0x3D SWAP2 CODECOPY PUSH1 0x3D ADD PUSH1 0x8D PUSH2 0x5C67 DUP3 CODECOPY PUSH1 0x8D ADD DUP9 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x304E JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x302F JUMP JUMPDEST MLOAD DUP2 MLOAD PUSH1 0x20 SWAP4 SWAP1 SWAP4 SUB PUSH2 0x100 EXP PUSH1 0x0 NOT ADD DUP1 NOT SWAP1 SWAP2 AND SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 MSTORE PUSH11 0x1E17BA32BC3A1F1E17B39F PUSH1 0xA9 SHL SWAP3 ADD SWAP2 DUP3 MSTORE POP PUSH1 0xB ADD PUSH1 0x2D PUSH2 0x5E03 DUP3 CODECOPY PUSH1 0x2D ADD DUP1 PUSH13 0x1E3932B1BA103BB4B23A341E91 PUSH1 0x99 SHL DUP2 MSTORE POP PUSH1 0xD ADD DUP8 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x30D1 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x30B2 JUMP JUMPDEST PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP3 MLOAD AND DUP2 DUP5 MLOAD AND DUP1 DUP3 OR DUP6 MSTORE POP POP POP POP POP POP SWAP1 POP ADD DUP1 PUSH2 0x4FB4 PUSH1 0x3D SWAP2 CODECOPY PUSH1 0x3D ADD PUSH1 0x93 PUSH2 0x4C8A DUP3 CODECOPY PUSH1 0x93 ADD DUP7 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x3133 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x3114 JUMP JUMPDEST MLOAD DUP2 MLOAD PUSH1 0x20 SWAP4 SWAP1 SWAP4 SUB PUSH2 0x100 EXP PUSH1 0x0 NOT ADD DUP1 NOT SWAP1 SWAP2 AND SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 MSTORE PUSH11 0x1E17BA32BC3A1F1E17B39F PUSH1 0xA9 SHL SWAP3 ADD SWAP2 DUP3 MSTORE POP PUSH1 0xB ADD PUSH1 0x2D PUSH2 0x498E DUP3 CODECOPY PUSH1 0x2D ADD DUP1 PUSH13 0x1E3932B1BA103BB4B23A341E91 PUSH1 0x99 SHL DUP2 MSTORE POP PUSH1 0xD ADD DUP6 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x31B6 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x3197 JUMP JUMPDEST PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP3 MLOAD AND DUP2 DUP5 MLOAD AND DUP1 DUP3 OR DUP6 MSTORE POP POP POP POP POP POP SWAP1 POP ADD DUP1 PUSH2 0x4FB4 PUSH1 0x3D SWAP2 CODECOPY PUSH1 0x3D ADD PUSH1 0x93 PUSH2 0x57F1 DUP3 CODECOPY PUSH1 0x93 ADD DUP5 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x3218 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x31F9 JUMP JUMPDEST PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP3 MLOAD AND DUP2 DUP5 MLOAD AND DUP1 DUP3 OR DUP6 MSTORE POP POP POP POP POP POP SWAP1 POP ADD DUP1 PUSH2 0x5DCB PUSH1 0x38 SWAP2 CODECOPY PUSH1 0x38 ADD PUSH1 0x60 PUSH2 0x5CF4 DUP3 CODECOPY PUSH1 0x60 ADD PUSH1 0x64 PUSH2 0x537D DUP3 CODECOPY PUSH1 0x64 ADD PUSH1 0x25 PUSH2 0x49BB DUP3 CODECOPY PUSH1 0x25 ADD DUP4 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x328E JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x326F JUMP JUMPDEST MLOAD DUP2 MLOAD PUSH1 0x20 SWAP4 DUP5 SUB PUSH2 0x100 EXP PUSH1 0x0 NOT ADD DUP1 NOT SWAP1 SWAP3 AND SWAP2 AND OR SWAP1 MSTORE PUSH32 0x70782C2000000000000000000000000000000000000000000000000000000000 SWAP2 SWAP1 SWAP4 ADD SWAP1 DUP2 MSTORE DUP5 MLOAD PUSH1 0x4 SWAP1 SWAP2 ADD SWAP3 DUP6 ADD SWAP2 POP DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x32FF JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x32E0 JUMP JUMPDEST PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP3 MLOAD AND DUP2 DUP5 MLOAD AND DUP1 DUP3 OR DUP6 MSTORE POP POP POP POP POP POP SWAP1 POP ADD DUP1 PUSH2 0x47B1 PUSH1 0x36 SWAP2 CODECOPY PUSH1 0x36 ADD SWAP9 POP POP POP POP POP POP POP POP POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP8 POP POP POP POP POP POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x3361 DUP4 DUP4 PUSH2 0xD50 JUMP JUMPDEST ISZERO PUSH2 0x33B7 JUMPI PUSH1 0x40 MLOAD PUSH1 0x20 ADD DUP1 PUSH1 0x8D PUSH2 0x56E9 DUP3 CODECOPY PUSH1 0x8D ADD PUSH1 0x73 PUSH2 0x530A DUP3 CODECOPY PUSH1 0x73 ADD PUSH1 0x71 PUSH2 0x5018 DUP3 CODECOPY PUSH1 0x71 ADD PUSH1 0x8A PUSH2 0x565F DUP3 CODECOPY PUSH1 0x8A ADD PUSH1 0x84 PUSH2 0x5884 DUP3 CODECOPY PUSH1 0x84 ADD SWAP1 POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP PUSH2 0x20E JUMP JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP2 MSTORE SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x60 DUP2 MLOAD PUSH1 0x0 EQ ISZERO PUSH2 0x33EE JUMPI POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP2 MSTORE PUSH2 0x222 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x40 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x50CA PUSH1 0x40 SWAP2 CODECOPY SWAP1 POP PUSH1 0x0 PUSH1 0x3 DUP5 MLOAD PUSH1 0x2 ADD DUP2 PUSH2 0x341B JUMPI INVALID JUMPDEST DIV PUSH1 0x4 MUL SWAP1 POP PUSH1 0x0 DUP2 PUSH1 0x20 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP1 ISZERO PUSH2 0x343D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x3468 JUMPI PUSH1 0x20 DUP3 ADD DUP2 DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP DUP2 DUP2 MSTORE PUSH1 0x1 DUP4 ADD DUP6 DUP7 MLOAD DUP2 ADD PUSH1 0x20 DUP5 ADD JUMPDEST DUP2 DUP4 LT ISZERO PUSH2 0x34D6 JUMPI PUSH1 0x3 SWAP3 DUP4 ADD DUP1 MLOAD PUSH1 0x3F PUSH1 0x12 DUP3 SWAP1 SHR DUP2 AND DUP8 ADD MLOAD PUSH1 0xF8 SWAP1 DUP2 SHL DUP6 MSTORE PUSH1 0xC DUP4 SWAP1 SHR DUP3 AND DUP9 ADD MLOAD DUP2 SHL PUSH1 0x1 DUP7 ADD MSTORE PUSH1 0x6 DUP4 SWAP1 SHR DUP3 AND DUP9 ADD MLOAD DUP2 SHL PUSH1 0x2 DUP7 ADD MSTORE SWAP2 AND DUP7 ADD MLOAD SWAP1 SHL SWAP4 DUP3 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH1 0x4 ADD PUSH2 0x347C JUMP JUMPDEST PUSH1 0x3 DUP10 MLOAD MOD PUSH1 0x1 DUP2 EQ PUSH2 0x34F0 JUMPI PUSH1 0x2 DUP2 EQ PUSH2 0x351C JUMPI PUSH2 0x3544 JUMP JUMPDEST PUSH32 0x3D3D000000000000000000000000000000000000000000000000000000000000 PUSH1 0x1 NOT DUP4 ADD MSTORE PUSH2 0x3544 JUMP JUMPDEST PUSH32 0x3D00000000000000000000000000000000000000000000000000000000000000 PUSH1 0x0 NOT DUP4 ADD MSTORE JUMPDEST POP SWAP4 SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP3 PUSH1 0x2 SIGNEXTEND DUP6 DUP6 SUB PUSH1 0x2 SIGNEXTEND DUP2 PUSH2 0x3567 JUMPI INVALID JUMPDEST SDIV SWAP1 POP PUSH1 0x4 DUP2 PUSH1 0x2 SIGNEXTEND SGT PUSH2 0x35B2 JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1A DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x4D31203143343120343120313035203130352031343520313435000000000000 DUP2 MSTORE POP SWAP2 POP PUSH2 0x10CD JUMP JUMPDEST PUSH1 0x8 DUP2 PUSH1 0x2 SIGNEXTEND SGT PUSH2 0x35FA JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x19 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x4D31203143333320343920393720313133203134352031343500000000000000 DUP2 MSTORE POP SWAP2 POP PUSH2 0x10CD JUMP JUMPDEST PUSH1 0x10 DUP2 PUSH1 0x2 SIGNEXTEND SGT PUSH2 0x3642 JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x19 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x4D31203143333320353720383920313133203134352031343500000000000000 DUP2 MSTORE POP SWAP2 POP PUSH2 0x10CD JUMP JUMPDEST PUSH1 0x20 DUP2 PUSH1 0x2 SIGNEXTEND SGT PUSH2 0x368A JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x19 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x4D31203143323520363520383120313231203134352031343500000000000000 DUP2 MSTORE POP SWAP2 POP PUSH2 0x10CD JUMP JUMPDEST PUSH1 0x40 DUP2 PUSH1 0x2 SIGNEXTEND SGT PUSH2 0x36D2 JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x19 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x4D31203143313720373320373320313239203134352031343500000000000000 DUP2 MSTORE POP SWAP2 POP PUSH2 0x10CD JUMP JUMPDEST PUSH1 0x80 DUP2 PUSH1 0x2 SIGNEXTEND SGT PUSH2 0x371A JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x18 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x4D31203143392038312036352031333720313435203134350000000000000000 DUP2 MSTORE POP SWAP2 POP PUSH2 0x10CD JUMP JUMPDEST PUSH2 0x100 DUP2 PUSH1 0x2 SIGNEXTEND SGT PUSH2 0x3763 JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1A DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x4D31203143312038392035372E35203134352031343520313435000000000000 DUP2 MSTORE POP SWAP2 POP PUSH2 0x10CD JUMP JUMPDEST POP POP PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x18 DUP2 MSTORE PUSH32 0x4D31203143312039372034392031343520313435203134350000000000000000 PUSH1 0x20 DUP3 ADD MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD DUP3 MSTORE PUSH1 0x2 DUP2 MSTORE PUSH32 0x3733000000000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP1 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP3 MLOAD DUP1 DUP5 ADD DUP5 MSTORE PUSH1 0x3 DUP1 DUP3 MSTORE PUSH32 0x3139300000000000000000000000000000000000000000000000000000000000 DUP3 DUP5 ADD MSTORE DUP5 MLOAD DUP1 DUP7 ADD DUP7 MSTORE DUP2 DUP2 MSTORE PUSH32 0x3231370000000000000000000000000000000000000000000000000000000000 DUP2 DUP6 ADD MSTORE DUP6 MLOAD DUP1 DUP8 ADD SWAP1 SWAP7 MSTORE SWAP1 DUP6 MSTORE PUSH32 0x3333340000000000000000000000000000000000000000000000000000000000 SWAP3 DUP6 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x60 SWAP4 SWAP1 SWAP2 SWAP1 PUSH1 0x1 PUSH1 0x0 DUP8 SWAP1 SIGNEXTEND EQ DUP1 PUSH2 0x3887 JUMPI POP DUP6 PUSH1 0x0 SIGNEXTEND PUSH1 0x0 NOT EQ JUMPDEST ISZERO PUSH2 0x3A7E JUMPI DUP6 PUSH1 0x0 SIGNEXTEND PUSH1 0x0 NOT EQ PUSH2 0x389E JUMPI DUP2 PUSH2 0x38A0 JUMP JUMPDEST DUP4 JUMPDEST DUP7 PUSH1 0x0 SIGNEXTEND PUSH1 0x0 NOT EQ PUSH2 0x38B2 JUMPI DUP2 PUSH2 0x38B4 JUMP JUMPDEST DUP4 JUMPDEST DUP8 PUSH1 0x0 SIGNEXTEND PUSH1 0x0 NOT EQ PUSH2 0x38C6 JUMPI DUP4 PUSH2 0x38C8 JUMP JUMPDEST DUP6 JUMPDEST DUP9 PUSH1 0x0 SIGNEXTEND PUSH1 0x0 NOT EQ PUSH2 0x38DA JUMPI DUP4 PUSH2 0x38DC JUMP JUMPDEST DUP6 JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD DUP1 DUP1 PUSH12 0x1E31B4B931B6329031BC1E91 PUSH1 0xA1 SHL DUP2 MSTORE POP PUSH1 0xC ADD DUP6 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x3925 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x3906 JUMP JUMPDEST MLOAD DUP2 MLOAD PUSH1 0x20 SWAP4 DUP5 SUB PUSH2 0x100 EXP PUSH1 0x0 NOT ADD DUP1 NOT SWAP1 SWAP3 AND SWAP2 AND OR SWAP1 MSTORE PUSH8 0x383C111031BC9E91 PUSH1 0xC1 SHL SWAP2 SWAP1 SWAP4 ADD SWAP1 DUP2 MSTORE DUP7 MLOAD PUSH1 0x8 SWAP1 SWAP2 ADD SWAP3 DUP8 ADD SWAP2 POP DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x3981 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x3962 JUMP JUMPDEST PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP3 MLOAD AND DUP2 DUP5 MLOAD AND DUP1 DUP3 OR DUP6 MSTORE POP POP POP POP POP POP SWAP1 POP ADD DUP1 PUSH2 0x4FF1 PUSH1 0x27 SWAP2 CODECOPY PUSH1 0x27 ADD DUP4 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x39D9 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x39BA JUMP JUMPDEST MLOAD DUP2 MLOAD PUSH1 0x20 SWAP4 DUP5 SUB PUSH2 0x100 EXP PUSH1 0x0 NOT ADD DUP1 NOT SWAP1 SWAP3 AND SWAP2 AND OR SWAP1 MSTORE PUSH8 0x383C111031BC9E91 PUSH1 0xC1 SHL SWAP2 SWAP1 SWAP4 ADD SWAP1 DUP2 MSTORE DUP5 MLOAD PUSH1 0x8 SWAP1 SWAP2 ADD SWAP3 DUP6 ADD SWAP2 POP DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x3A35 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x3A16 JUMP JUMPDEST PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP3 MLOAD AND DUP2 DUP5 MLOAD AND DUP1 DUP3 OR DUP6 MSTORE POP POP POP POP POP POP SWAP1 POP ADD DUP1 PUSH2 0x527A PUSH1 0x2A SWAP2 CODECOPY PUSH1 0x2A ADD SWAP5 POP POP POP POP POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP5 POP PUSH2 0x3C6B JUMP JUMPDEST DUP4 DUP4 DUP4 DUP4 PUSH1 0x40 MLOAD PUSH1 0x20 ADD DUP1 DUP1 PUSH12 0x1E31B4B931B6329031BC1E91 PUSH1 0xA1 SHL DUP2 MSTORE POP PUSH1 0xC ADD DUP6 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x3ACB JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x3AAC JUMP JUMPDEST MLOAD DUP2 MLOAD PUSH1 0x20 SWAP4 DUP5 SUB PUSH2 0x100 EXP PUSH1 0x0 NOT ADD DUP1 NOT SWAP1 SWAP3 AND SWAP2 AND OR SWAP1 MSTORE PUSH8 0x383C111031BC9E91 PUSH1 0xC1 SHL SWAP2 SWAP1 SWAP4 ADD SWAP1 DUP2 MSTORE DUP7 MLOAD PUSH1 0x8 SWAP1 SWAP2 ADD SWAP3 DUP8 ADD SWAP2 POP DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x3B27 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x3B08 JUMP JUMPDEST MLOAD DUP2 MLOAD PUSH1 0x20 SWAP4 DUP5 SUB PUSH2 0x100 EXP PUSH1 0x0 NOT ADD DUP1 NOT SWAP1 SWAP3 AND SWAP2 AND OR SWAP1 MSTORE PUSH32 0x70782220723D22347078222066696C6C3D22776869746522202F3E0000000000 SWAP2 SWAP1 SWAP4 ADD SWAP1 DUP2 MSTORE PUSH12 0x1E31B4B931B6329031BC1E91 PUSH1 0xA1 SHL PUSH1 0x1B DUP3 ADD MSTORE DUP6 MLOAD PUSH1 0x27 SWAP1 SWAP2 ADD SWAP3 DUP7 ADD SWAP2 POP DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x3BAD JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x3B8E JUMP JUMPDEST MLOAD DUP2 MLOAD PUSH1 0x20 SWAP4 DUP5 SUB PUSH2 0x100 EXP PUSH1 0x0 NOT ADD DUP1 NOT SWAP1 SWAP3 AND SWAP2 AND OR SWAP1 MSTORE PUSH8 0x383C111031BC9E91 PUSH1 0xC1 SHL SWAP2 SWAP1 SWAP4 ADD SWAP1 DUP2 MSTORE DUP5 MLOAD PUSH1 0x8 SWAP1 SWAP2 ADD SWAP3 DUP6 ADD SWAP2 POP DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x3C09 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x3BEA JUMP JUMPDEST PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP3 MLOAD AND DUP2 DUP5 MLOAD AND DUP1 DUP3 OR DUP6 MSTORE POP POP POP POP POP POP SWAP1 POP ADD DUP1 PUSH32 0x70782220723D22347078222066696C6C3D22776869746522202F3E0000000000 DUP2 MSTORE POP PUSH1 0x1B ADD SWAP5 POP POP POP POP POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP5 POP JUMPDEST POP POP POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP SWAP1 POP PUSH1 0x0 DUP4 PUSH1 0x2 SIGNEXTEND SLT ISZERO PUSH2 0x3CD6 JUMPI DUP3 PUSH1 0x0 NOT MUL SWAP3 POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x2D00000000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP SWAP1 POP JUMPDEST DUP1 PUSH2 0x3CE3 DUP5 PUSH1 0x2 SIGNEXTEND PUSH2 0x1FAB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD DUP1 DUP4 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x3D15 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x3CF6 JUMP JUMPDEST MLOAD DUP2 MLOAD PUSH1 0x20 SWAP4 DUP5 SUB PUSH2 0x100 EXP PUSH1 0x0 NOT ADD DUP1 NOT SWAP1 SWAP3 AND SWAP2 AND OR SWAP1 MSTORE DUP6 MLOAD SWAP2 SWAP1 SWAP4 ADD SWAP3 DUP6 ADD SWAP2 POP DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x3D5D JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x3D3E JUMP JUMPDEST PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP3 MLOAD AND DUP2 DUP5 MLOAD AND DUP1 DUP3 OR DUP6 MSTORE POP POP POP POP POP POP SWAP1 POP ADD SWAP3 POP POP POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH2 0x100 DUP2 ADD DUP3 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP2 SWAP1 MSTORE SWAP2 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x60 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x80 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0xA0 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0xC0 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0xE0 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP1 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x222 DUP2 PUSH2 0x4518 JUMP JUMPDEST DUP1 CALLDATALOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x222 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH1 0x2 DUP2 SWAP1 SIGNEXTEND DUP2 EQ PUSH2 0x222 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x3E1B JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x3E2E PUSH2 0x3E29 DUP3 PUSH2 0x4481 JUMP JUMPDEST PUSH2 0x445D JUMP JUMPDEST DUP2 DUP2 MSTORE DUP5 PUSH1 0x20 DUP4 DUP7 ADD ADD GT ISZERO PUSH2 0x3E42 JUMPI DUP3 DUP4 REVERT JUMPDEST DUP2 PUSH1 0x20 DUP6 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY SWAP1 DUP2 ADD PUSH1 0x20 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH3 0xFFFFFF DUP2 AND DUP2 EQ PUSH2 0x222 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH1 0xFF DUP2 AND DUP2 EQ PUSH2 0x222 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3E91 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x20B DUP2 PUSH2 0x4518 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x3EAE JUMPI DUP1 DUP2 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x3EB9 DUP2 PUSH2 0x4518 JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x3ED9 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH2 0x3EE2 DUP4 PUSH2 0x3DF9 JUMP JUMPDEST SWAP2 POP PUSH2 0x3EF0 PUSH1 0x20 DUP5 ADD PUSH2 0x3DF9 JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x3F10 JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0x3F19 DUP7 PUSH2 0x3DF9 JUMP JUMPDEST SWAP5 POP PUSH2 0x3F27 PUSH1 0x20 DUP8 ADD PUSH2 0x3DF9 JUMP JUMPDEST SWAP4 POP PUSH2 0x3F35 PUSH1 0x40 DUP8 ADD PUSH2 0x3E6F JUMP JUMPDEST SWAP3 POP PUSH2 0x3F43 PUSH1 0x60 DUP8 ADD PUSH2 0x3E6F JUMP JUMPDEST SWAP2 POP PUSH2 0x3F51 PUSH1 0x80 DUP8 ADD PUSH2 0x3DE9 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3F6E JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3F84 JUMPI DUP2 DUP3 REVERT JUMPDEST DUP3 ADD PUSH1 0x1F DUP2 ADD DUP5 SGT PUSH2 0x3F94 JUMPI DUP2 DUP3 REVERT JUMPDEST DUP1 MLOAD PUSH2 0x3FA2 PUSH2 0x3E29 DUP3 PUSH2 0x4481 JUMP JUMPDEST DUP2 DUP2 MSTORE DUP6 PUSH1 0x20 DUP4 DUP6 ADD ADD GT ISZERO PUSH2 0x3FB6 JUMPI DUP4 DUP5 REVERT JUMPDEST PUSH2 0x2D5 DUP3 PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x44E8 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3FD8 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3FEE JUMPI DUP2 DUP3 REVERT JUMPDEST DUP3 ADD PUSH2 0x1C0 DUP2 DUP6 SUB SLT ISZERO PUSH2 0x20B JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4011 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x4028 JUMPI DUP3 DUP4 REVERT JUMPDEST DUP2 DUP5 ADD SWAP2 POP PUSH2 0x1C0 DUP1 DUP4 DUP8 SUB SLT ISZERO PUSH2 0x403E JUMPI DUP4 DUP5 REVERT JUMPDEST PUSH2 0x4047 DUP2 PUSH2 0x445D JUMP JUMPDEST SWAP1 POP DUP3 CALLDATALOAD DUP2 MSTORE PUSH2 0x4059 PUSH1 0x20 DUP5 ADD PUSH2 0x3DDE JUMP JUMPDEST PUSH1 0x20 DUP3 ADD MSTORE PUSH2 0x406A PUSH1 0x40 DUP5 ADD PUSH2 0x3DDE JUMP JUMPDEST PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 DUP4 ADD CALLDATALOAD DUP3 DUP2 GT ISZERO PUSH2 0x4080 JUMPI DUP5 DUP6 REVERT JUMPDEST PUSH2 0x408C DUP8 DUP3 DUP7 ADD PUSH2 0x3E0B JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP PUSH1 0x80 DUP4 ADD CALLDATALOAD DUP3 DUP2 GT ISZERO PUSH2 0x40A3 JUMPI DUP5 DUP6 REVERT JUMPDEST PUSH2 0x40AF DUP8 DUP3 DUP7 ADD PUSH2 0x3E0B JUMP JUMPDEST PUSH1 0x80 DUP4 ADD MSTORE POP PUSH2 0x40C1 PUSH1 0xA0 DUP5 ADD PUSH2 0x3E6F JUMP JUMPDEST PUSH1 0xA0 DUP3 ADD MSTORE PUSH2 0x40D2 PUSH1 0xC0 DUP5 ADD PUSH2 0x3E6F JUMP JUMPDEST PUSH1 0xC0 DUP3 ADD MSTORE PUSH2 0x40E3 PUSH1 0xE0 DUP5 ADD PUSH2 0x3DE9 JUMP JUMPDEST PUSH1 0xE0 DUP3 ADD MSTORE PUSH2 0x100 SWAP2 POP PUSH2 0x40F8 DUP3 DUP5 ADD PUSH2 0x3DF9 JUMP JUMPDEST DUP3 DUP3 ADD MSTORE PUSH2 0x120 SWAP2 POP PUSH2 0x410C DUP3 DUP5 ADD PUSH2 0x3DF9 JUMP JUMPDEST DUP3 DUP3 ADD MSTORE PUSH2 0x140 SWAP2 POP PUSH2 0x4120 DUP3 DUP5 ADD PUSH2 0x3DF9 JUMP JUMPDEST DUP3 DUP3 ADD MSTORE PUSH2 0x160 SWAP2 POP PUSH2 0x4134 DUP3 DUP5 ADD PUSH2 0x3DF9 JUMP JUMPDEST DUP3 DUP3 ADD MSTORE PUSH2 0x180 SWAP2 POP PUSH2 0x4148 DUP3 DUP5 ADD PUSH2 0x3E5C JUMP JUMPDEST DUP3 DUP3 ADD MSTORE PUSH2 0x1A0 SWAP2 POP PUSH2 0x415C DUP3 DUP5 ADD PUSH2 0x3DDE JUMP JUMPDEST SWAP2 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x417F JUMPI DUP3 DUP4 REVERT JUMPDEST DUP4 CALLDATALOAD PUSH2 0x418A DUP2 PUSH2 0x4518 JUMP JUMPDEST SWAP3 POP PUSH2 0x4198 PUSH1 0x20 DUP6 ADD PUSH2 0x3E6F JUMP JUMPDEST SWAP2 POP PUSH2 0x41A6 PUSH1 0x40 DUP6 ADD PUSH2 0x3E6F JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x41C0 JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0x20B DUP3 PUSH2 0x3E5C JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x41DB JUMPI DUP2 DUP3 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x41ED DUP2 PUSH2 0x4518 JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 MSTORE JUMP JUMPDEST ISZERO ISZERO SWAP1 MSTORE JUMP JUMPDEST PUSH1 0x2 SIGNEXTEND SWAP1 MSTORE JUMP JUMPDEST PUSH1 0x0 DUP3 DUP5 MSTORE DUP3 DUP3 PUSH1 0x20 DUP7 ADD CALLDATACOPY DUP1 PUSH1 0x20 DUP5 DUP7 ADD ADD MSTORE PUSH1 0x20 PUSH1 0x1F NOT PUSH1 0x1F DUP6 ADD AND DUP6 ADD ADD SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0x4254 DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x44E8 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH3 0xFFFFFF AND SWAP1 MSTORE JUMP JUMPDEST PUSH1 0xFF AND SWAP1 MSTORE JUMP JUMPDEST SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 MSTORE PUSH2 0x20B PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x423C JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 MSTORE PUSH2 0x42A9 PUSH1 0x40 DUP4 ADD DUP6 PUSH2 0x423C JUMP JUMPDEST DUP3 DUP2 SUB PUSH1 0x20 DUP5 ADD MSTORE PUSH2 0x2D5 DUP2 DUP6 PUSH2 0x423C JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 MSTORE DUP3 CALLDATALOAD PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x42D4 PUSH1 0x20 DUP5 ADD PUSH2 0x3DDE JUMP JUMPDEST PUSH2 0x42E1 PUSH1 0x40 DUP5 ADD DUP3 PUSH2 0x41F8 JUMP JUMPDEST POP PUSH2 0x42EE PUSH1 0x40 DUP5 ADD PUSH2 0x3DDE JUMP JUMPDEST PUSH2 0x42FB PUSH1 0x60 DUP5 ADD DUP3 PUSH2 0x41F8 JUMP JUMPDEST POP PUSH2 0x4309 PUSH1 0x60 DUP5 ADD DUP5 PUSH2 0x44A3 JUMP JUMPDEST PUSH2 0x1C0 DUP1 PUSH1 0x80 DUP7 ADD MSTORE PUSH2 0x4321 PUSH2 0x1E0 DUP7 ADD DUP4 DUP6 PUSH2 0x4212 JUMP JUMPDEST SWAP3 POP PUSH2 0x4330 PUSH1 0x80 DUP8 ADD DUP8 PUSH2 0x44A3 JUMP JUMPDEST DUP7 DUP6 SUB PUSH1 0x1F NOT ADD PUSH1 0xA0 DUP9 ADD MSTORE SWAP3 POP PUSH2 0x4349 DUP5 DUP5 DUP4 PUSH2 0x4212 JUMP JUMPDEST SWAP4 POP POP PUSH2 0x4358 PUSH1 0xA0 DUP8 ADD PUSH2 0x3E6F JUMP JUMPDEST SWAP2 POP PUSH2 0x4367 PUSH1 0xC0 DUP7 ADD DUP4 PUSH2 0x4271 JUMP JUMPDEST PUSH2 0x4373 PUSH1 0xC0 DUP8 ADD PUSH2 0x3E6F JUMP JUMPDEST SWAP2 POP PUSH2 0x4382 PUSH1 0xE0 DUP7 ADD DUP4 PUSH2 0x4271 JUMP JUMPDEST PUSH2 0x438E PUSH1 0xE0 DUP8 ADD PUSH2 0x3DE9 JUMP JUMPDEST SWAP2 POP PUSH2 0x100 PUSH2 0x439F DUP2 DUP8 ADD DUP5 PUSH2 0x4205 JUMP JUMPDEST PUSH2 0x43AA DUP2 DUP9 ADD PUSH2 0x3DF9 JUMP JUMPDEST SWAP3 POP POP PUSH2 0x120 PUSH2 0x43BC DUP2 DUP8 ADD DUP5 PUSH2 0x420B JUMP JUMPDEST PUSH2 0x43C7 DUP2 DUP9 ADD PUSH2 0x3DF9 JUMP JUMPDEST SWAP3 POP POP PUSH2 0x140 PUSH2 0x43D9 DUP2 DUP8 ADD DUP5 PUSH2 0x420B JUMP JUMPDEST PUSH2 0x43E4 DUP2 DUP9 ADD PUSH2 0x3DF9 JUMP JUMPDEST SWAP3 POP POP PUSH2 0x160 PUSH2 0x43F6 DUP2 DUP8 ADD DUP5 PUSH2 0x420B JUMP JUMPDEST PUSH2 0x4401 DUP2 DUP9 ADD PUSH2 0x3DF9 JUMP JUMPDEST SWAP3 POP POP PUSH2 0x180 PUSH2 0x4413 DUP2 DUP8 ADD DUP5 PUSH2 0x420B JUMP JUMPDEST PUSH2 0x441E DUP2 DUP9 ADD PUSH2 0x3E5C JUMP JUMPDEST SWAP3 POP POP PUSH2 0x1A0 PUSH2 0x4430 DUP2 DUP8 ADD DUP5 PUSH2 0x4268 JUMP JUMPDEST PUSH2 0x443B DUP2 DUP9 ADD PUSH2 0x3DDE JUMP JUMPDEST SWAP3 POP POP PUSH2 0x444A DUP2 DUP7 ADD DUP4 PUSH2 0x41F8 JUMP JUMPDEST POP SWAP1 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP2 DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x4479 JUMPI INVALID JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x4495 JUMPI INVALID JUMPDEST POP PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 CALLDATALOAD PUSH1 0x1E NOT DUP5 CALLDATASIZE SUB ADD DUP2 SLT PUSH2 0x44B9 JUMPI DUP3 DUP4 REVERT JUMPDEST DUP4 ADD PUSH1 0x20 DUP2 ADD SWAP3 POP CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x44D9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATASIZE SUB DUP4 SGT ISZERO PUSH2 0x1EF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x4503 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x44EB JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x4512 JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x452D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID KECCAK256 EXTCODECOPY PUSH2 0x6E69 PUSH14 0x6174652061646469746976653D22 PUSH20 0x756D22206174747269627574654E616D653D2273 PUSH21 0x6172744F6666736574222066726F6D3D2230252220 PUSH21 0x6F3D22313030252220626567696E3D223073222064 PUSH22 0x723D223330732220726570656174436F756E743D2269 PUSH15 0x646566696E69746522202F3E3C2F74 PUSH6 0x787450617468 RETURNDATACOPY EXTCODECOPY 0x2F PUSH21 0x6578743E3C73746F70206F66667365743D222E3922 KECCAK256 PUSH20 0x746F702D636F6C6F723D22776869746522207374 PUSH16 0x702D6F7061636974793D223022202F3E EXTCODECOPY 0x2F PUSH13 0x696E6561724772616469656E74 RETURNDATACOPY EXTCODECOPY PUSH19 0x656374207374796C653D2266696C7465723A20 PUSH22 0x726C28236631292220783D223070782220793D223070 PUSH25 0x222077696474683D22323930707822206865696768743D2235 ADDRESS ADDRESS PUSH17 0x7822202F3E3C6665496D61676520726573 PUSH22 0x6C743D2270332220786C696E6B3A687265663D226461 PUSH21 0x613A696D6167652F7376672B786D6C3B6261736536 CALLVALUE 0x2C EXTCODECOPY PUSH8 0x206D61736B3D2275 PUSH19 0x6C2823666164652D73796D626F6C29223E3C72 PUSH6 0x63742066696C PUSH13 0x3D226E6F6E652220783D223070 PUSH25 0x2220793D22307078222077696474683D223239307078222068 PUSH6 0x696768743D22 ORIGIN ADDRESS ADDRESS PUSH17 0x7822202F3E203C7465787420793D223730 PUSH17 0x782220783D2233327078222066696C6C3D 0x22 PUSH24 0x686974652220666F6E742D66616D696C793D2227436F7572 PUSH10 0x6572204E6577272C206D PUSH16 0x6E6F73706163652220666F6E742D7765 PUSH10 0x6768743D223230302220 PUSH7 0x6F6E742D73697A PUSH6 0x3D2233367078 0x22 RETURNDATACOPY EXTCODECOPY PUSH20 0x76672077696474683D2232393022206865696768 PUSH21 0x3D22353030222076696577426F783D223020302032 CODECOPY ADDRESS KECCAK256 CALLDATALOAD ADDRESS ADDRESS 0x22 KECCAK256 PUSH25 0x6D6C6E733D22687474703A2F2F7777772E77332E6F72672F32 ADDRESS ADDRESS ADDRESS 0x2F PUSH20 0x76672270782C2030707829222063783D22307078 0x22 KECCAK256 PUSH4 0x793D2230 PUSH17 0x782220723D22347078222066696C6C3D22 PUSH24 0x68697465222F3E3C2F673E203C616E696D61746520616464 PUSH10 0x746976653D2273756D22 KECCAK256 PUSH2 0x7474 PUSH19 0x69627574654E616D653D2273746172744F6666 PUSH20 0x6574222066726F6D3D2230252220746F3D223130 ADDRESS 0x25 0x22 KECCAK256 PUSH3 0x656769 PUSH15 0x3D22307322206475723D2233307322 KECCAK256 PUSH19 0x6570656174436F756E743D22696E646566696E PUSH10 0x746522202F3E203C2F74 PUSH6 0x787450617468 RETURNDATACOPY EXTCODECOPY PUSH14 0x61736B2069643D22666164652D75 PUSH17 0x22206D61736B436F6E74656E74556E6974 PUSH20 0x3D226F626A656374426F756E64696E67426F7822 RETURNDATACOPY EXTCODECOPY PUSH19 0x6563742077696474683D223122206865696768 PUSH21 0x3D2231222066696C6C3D2275726C2823677261642D PUSH22 0x702922202F3E3C2F6D61736B3E22207374726F6B653D 0x22 PUSH19 0x67626128302C302C302C302E33292220737472 PUSH16 0x6B652D77696474683D22333270782220 PUSH7 0x696C6C3D226E6F PUSH15 0x6522207374726F6B652D6C696E6563 PUSH2 0x703D 0x22 PUSH19 0x6F756E6422202F3E203C616E696D6174652061 PUSH5 0x6469746976 PUSH6 0x3D2273756D22 KECCAK256 PUSH2 0x7474 PUSH19 0x69627574654E616D653D2273746172744F6666 PUSH20 0x6574222066726F6D3D2230252220746F3D223130 ADDRESS 0x25 0x22 KECCAK256 PUSH3 0x656769 PUSH15 0x3D22307322206475723D2233307322 KECCAK256 EXTCODECOPY PUSH8 0x207374796C653D22 PUSH21 0x72616E73666F726D3A7472616E736C617465283239 PUSH17 0x782C20343434707829223E3C636972636C PUSH6 0x207374796C65 RETURNDATASIZE 0x22 PUSH21 0x72616E73666F726D3A7472616E736C617465336428 EXTCODECOPY PUSH20 0x76672077696474683D2732393027206865696768 PUSH21 0x3D27353030272076696577426F783D273020302032 CODECOPY ADDRESS KECCAK256 CALLDATALOAD ADDRESS ADDRESS 0x27 KECCAK256 PUSH25 0x6D6C6E733D27687474703A2F2F7777772E77332E6F72672F32 ADDRESS ADDRESS ADDRESS 0x2F PUSH20 0x7667273E3C636972636C652063783D27203C6720 PUSH20 0x74796C653D2266696C7465723A75726C2823746F PUSH17 0x2D726567696F6E2D626C7572293B207472 PUSH2 0x6E73 PUSH7 0x6F726D3A736361 PUSH13 0x6528312E35293B207472616E73 PUSH7 0x6F726D2D6F7269 PUSH8 0x696E3A63656E7465 PUSH19 0x20746F703B223E22202F3E3C6665426C656E64 KECCAK256 PUSH14 0x6F64653D226F7665726C61792220 PUSH10 0x6E3D2270302220696E32 RETURNDATASIZE 0x22 PUSH17 0x3122202F3E3C6665426C656E64206D6F64 PUSH6 0x3D226578636C PUSH22 0x73696F6E2220696E323D22703222202F3E3C6665426C PUSH6 0x6E64206D6F64 PUSH6 0x3D226F766572 PUSH13 0x61792220696E323D2270332220 PUSH19 0x6573756C743D22626C656E644F757422202F3E EXTCODECOPY PUSH7 0x65476175737369 PUSH2 0x6E42 PUSH13 0x7572203C706174682069643D22 PUSH14 0x696E696D61702220643D224D3233 CALLVALUE KECCAK256 CALLVALUE CALLVALUE CALLVALUE NUMBER ORIGIN CALLER CALLVALUE KECCAK256 CALLVALUE CALLDATALOAD CALLDATACOPY 0x2E CODECOPY CALLVALUE CODECOPY KECCAK256 ORIGIN CALLVALUE ORIGIN 0x2E ORIGIN BALANCE KECCAK256 CALLVALUE CALLDATASIZE CALLER KECCAK256 ORIGIN CALLDATALOAD CALLER KECCAK256 CALLVALUE CALLDATASIZE CALLER 0x22 KECCAK256 0x2F RETURNDATACOPY EXTCODECOPY PUSH14 0x61736B2069643D226E6F6E652220 PUSH14 0x61736B436F6E74656E74556E6974 PUSH20 0x3D226F626A656374426F756E64696E67426F7822 RETURNDATACOPY EXTCODECOPY PUSH19 0x6563742077696474683D223122206865696768 PUSH21 0x3D2231222066696C6C3D22776869746522202F3E3C 0x2F PUSH14 0x61736B3E2220783D223070782220 PUSH26 0x3D22307078222077696474683D22323930707822206865696768 PUSH21 0x3D22353030707822202F3E203C616E696D61746520 PUSH2 0x6464 PUSH10 0x746976653D2273756D22 KECCAK256 PUSH2 0x7474 PUSH19 0x69627574654E616D653D2273746172744F6666 PUSH20 0x6574222066726F6D3D2230252220746F3D223130 ADDRESS 0x25 0x22 KECCAK256 PUSH3 0x656769 PUSH15 0x3D22307322206475723D2233307322 KECCAK256 PUSH19 0x6570656174436F756E743D22696E646566696E PUSH10 0x746522202F3E3C746578 PUSH21 0x20783D22313270782220793D22313770782220666F PUSH15 0x742D66616D696C793D2227436F7572 PUSH10 0x6572204E6577272C206D PUSH16 0x6E6F73706163652220666F6E742D7369 PUSH27 0x653D2231327078222066696C6C3D227768697465223E3C74737061 PUSH15 0x2066696C6C3D227267626128323535 0x2C ORIGIN CALLDATALOAD CALLDATALOAD 0x2C ORIGIN CALLDATALOAD CALLDATALOAD 0x2C ADDRESS 0x2E CALLDATASIZE 0x29 0x22 RETURNDATACOPY 0x4D PUSH10 0x6E205469636B3A203C2F PUSH21 0x7370616E3E3C74657874506174682073746172744F PUSH7 0x667365743D222D BALANCE ADDRESS ADDRESS 0x25 0x22 KECCAK256 PUSH7 0x696C6C3D227768 PUSH10 0x74652220666F6E742D66 PUSH2 0x6D69 PUSH13 0x793D2227436F7572696572204E PUSH6 0x77272C206D6F PUSH15 0x6F73706163652220666F6E742D7369 PUSH27 0x653D22313070782220786C696E6B3A687265663D2223746578742D PUSH17 0x6174682D61223E3C6C696E656172477261 PUSH5 0x69656E7420 PUSH10 0x643D22677261642D646F PUSH24 0x6E222078313D2230222078323D2231222079313D22302220 PUSH26 0x323D2231223E3C73746F70206F66667365743D22302E30222073 PUSH21 0x6F702D636F6C6F723D227768697465222073746F70 0x2D PUSH16 0x7061636974793D223122202F3E3C7374 PUSH16 0x70206F66667365743D22302E39222073 PUSH21 0x6F702D636F6C6F723D227768697465222073746F70 0x2D PUSH16 0x7061636974793D223022202F3E3C2F6C PUSH10 0x6E656172477261646965 PUSH15 0x743E3C66696C7465722069643D2266 BALANCE 0x22 RETURNDATACOPY EXTCODECOPY PUSH7 0x65496D61676520 PUSH19 0x6573756C743D2270302220786C696E6B3A6872 PUSH6 0x663D22646174 PUSH2 0x3A69 PUSH14 0x6167652F7376672B786D6C3B6261 PUSH20 0x6536342C3C7376672077696474683D2732393027 KECCAK256 PUSH9 0x65696768743D273530 ADDRESS 0x27 KECCAK256 PUSH23 0x696577426F783D2730203020323930203530302720786D PUSH13 0x6E733D27687474703A2F2F7777 PUSH24 0x2E77332E6F72672F323030302F737667273E3C7265637420 PUSH24 0x696474683D27323930707827206865696768743D27353030 PUSH17 0x78272066696C6C3D2723222F3E3C666549 PUSH14 0x61676520726573756C743D227032 0x22 KECCAK256 PUSH25 0x6C696E6B3A687265663D22646174613A696D6167652F737667 0x2B PUSH25 0x6D6C3B6261736536342C3C656C6C697073652063783D223530 0x25 0x22 KECCAK256 PUSH4 0x793D2230 PUSH17 0x78222072783D223138307078222072793D 0x22 BALANCE ORIGIN ADDRESS PUSH17 0x78222066696C6C3D222330303022206F70 PUSH2 0x6369 PUSH21 0x793D22302E383522202F3E3C2F673E707822206865 PUSH10 0x6768743D223236707822 KECCAK256 PUSH19 0x783D22387078222072793D2238707822206669 PUSH13 0x6C3D227267626128302C302C30 0x2C ADDRESS 0x2E CALLDATASIZE 0x29 0x22 KECCAK256 0x2F RETURNDATACOPY PUSH17 0x782220723D22347078222066696C6C3D22 PUSH24 0x6869746522202F3E3C636972636C652063783D2231312E33 CALLVALUE CALLDATACOPY CODESIZE 0x4C ORIGIN CALLVALUE KECCAK256 BALANCE ORIGIN 0x4C BALANCE CALLVALUE 0x2E CALLVALUE CALLER CALLVALUE BALANCE KECCAK256 BALANCE ORIGIN 0x2E CALLDATASIZE CALLDATALOAD ORIGIN ORIGIN 0x4C ORIGIN ORIGIN 0x2E CALLER CODECOPY ORIGIN CALLER KECCAK256 BALANCE CODESIZE 0x4C BALANCE CALLER 0x2E CALLDATACOPY CODESIZE BALANCE CODECOPY KECCAK256 BALANCE CALLER 0x2E CALLDATACOPY CODESIZE BALANCE CODECOPY 0x4C BALANCE CODESIZE KECCAK256 ORIGIN ORIGIN 0x2E CALLER CODECOPY ORIGIN CALLER 0x4C BALANCE ORIGIN 0x2E CALLDATASIZE CALLDATALOAD ORIGIN ORIGIN KECCAK256 BALANCE CALLVALUE 0x2E CALLVALUE CALLER CALLVALUE BALANCE 0x4C BALANCE ORIGIN KECCAK256 ORIGIN CALLVALUE 0x4C BALANCE BALANCE 0x2E CALLER CALLVALUE CALLDATACOPY CODESIZE KECCAK256 BALANCE CALLVALUE 0x2E CALLVALUE CALLER CALLVALUE BALANCE 0x4C CALLDATASIZE KECCAK256 ORIGIN ORIGIN 0x2E CALLER CODECOPY EXTCODECOPY PUSH19 0x6563742066696C6C3D226E6F6E652220783D22 ADDRESS PUSH17 0x782220793D22307078222077696474683D 0x22 ORIGIN CODECOPY ADDRESS PUSH17 0x7822206865696768743D22353030707822 KECCAK256 0x2F RETURNDATACOPY COINBASE TIMESTAMP NUMBER DIFFICULTY GASLIMIT CHAINID SELFBALANCE 0x48 0x49 0x4A 0x4B 0x4C 0x4D 0x4E 0x4F POP MLOAD MSTORE MSTORE8 SLOAD SSTORE JUMP JUMPI PC MSIZE GAS PUSH2 0x6263 PUSH5 0x6566676869 PUSH11 0x6B6C6D6E6F707172737475 PUSH23 0x7778797A303132333435363738392B2F20786D6C6E733A PUSH25 0x6C696E6B3D27687474703A2F2F7777772E77332E6F72672F31 CODECOPY CODECOPY CODECOPY 0x2F PUSH25 0x6C696E6B273E3C6C696E6561724772616469656E742069643D 0x22 PUSH8 0x7261642D73796D62 PUSH16 0x6C223E3C73746F70206F66667365743D 0x22 ADDRESS 0x2E CALLDATACOPY 0x22 KECCAK256 PUSH20 0x746F702D636F6C6F723D22776869746522207374 PUSH16 0x702D6F7061636974793D223122202F3E EXTCODECOPY PUSH20 0x746F70206F66667365743D222E3935222073746F PUSH17 0x2D636F6C6F723D22776869746522207374 PUSH16 0x702D6F7061636974793D223022202F3E EXTCODECOPY 0x2F PUSH13 0x696E6561724772616469656E74 RETURNDATACOPY KECCAK256 PUSH20 0x74796C653D227472616E73666F726D3A7472616E PUSH20 0x6C61746528373270782C313839707829223E3C72 PUSH6 0x637420783D22 0x2D BALANCE CALLDATASIZE PUSH17 0x782220793D222D31367078222077696474 PUSH9 0x3D2231383070782220 PUSH9 0x65696768743D223138 ADDRESS PUSH17 0x78222066696C6C3D226E6F6E6522202F3E EXTCODECOPY PUSH17 0x61746820643D22207374796C653D227472 PUSH2 0x6E73 PUSH7 0x6F726D3A747261 PUSH15 0x736C61746528373270782C31383970 PUSH25 0x29223E70782220723D2232347078222066696C6C3D226E6F6E PUSH6 0x22207374726F PUSH12 0x653D22776869746522202F3E EXTCODECOPY PUSH19 0x65637420783D222D313670782220793D222D31 CALLDATASIZE PUSH17 0x78222077696474683D2231383070782220 PUSH9 0x65696768743D223138 ADDRESS PUSH17 0x78222066696C6C3D226E6F6E6522202F3E MSTORE8 PUSH2 0x6665 0x4D PUSH2 0x7468 GASPRICE KECCAK256 PUSH14 0x756C7469706C69636174696F6E20 PUSH16 0x766572666C6F773C673E3C7061746820 PUSH20 0x74796C653D227472616E73666F726D3A7472616E PUSH20 0x6C617465283670782C367078292220643D224D31 ORIGIN KECCAK256 ADDRESS 0x4C BALANCE ORIGIN 0x2E CALLDATASIZE CALLDATALOAD ORIGIN ORIGIN KECCAK256 CODECOPY 0x2E CALLDATALOAD CALLDATASIZE CALLDATALOAD CODESIZE CALLDATACOPY 0x4C BALANCE CODESIZE KECCAK256 BALANCE 0x2E CALLDATASIZE ADDRESS CALLDATACOPY CALLDATACOPY 0x4C BALANCE CALLER 0x2E CALLDATACOPY CODESIZE BALANCE CODECOPY KECCAK256 BALANCE ADDRESS 0x2E ORIGIN BALANCE CODESIZE BALANCE 0x4C ORIGIN ORIGIN 0x2E CALLER CODECOPY ORIGIN CALLER KECCAK256 CALLDATASIZE 0x4C BALANCE CALLVALUE 0x2E CALLVALUE CALLER CALLVALUE BALANCE KECCAK256 EXTCODECOPY PUSH17 0x617468207374726F6B652D6C696E656361 PUSH17 0x3D22726F756E642220643D224D38203943 CODESIZE 0x2E ADDRESS ADDRESS ADDRESS ADDRESS CALLVALUE KECCAK256 ORIGIN ORIGIN 0x2E CODECOPY CALLVALUE CODECOPY CALLVALUE KECCAK256 BALANCE CALLDATASIZE 0x2E ORIGIN ADDRESS CODECOPY CODECOPY KECCAK256 ORIGIN CODESIZE KECCAK256 ORIGIN CALLDATACOPY KECCAK256 ORIGIN CODESIZE 0x22 KECCAK256 PUSH7 0x696C6C3D226E6F PUSH15 0x6522207374726F6B653D2277686974 PUSH6 0x22202F3E2072 PUSH6 0x70656174436F PUSH22 0x6E743D22696E646566696E69746522202F3E3C2F7465 PUSH25 0x74506174683E3C74657874506174682073746172744F666673 PUSH6 0x743D222D3530 0x25 0x22 KECCAK256 PUSH7 0x696C6C3D227768 PUSH10 0x74652220666F6E742D66 PUSH2 0x6D69 PUSH13 0x793D2227436F7572696572204E PUSH6 0x77272C206D6F PUSH15 0x6F73706163652220666F6E742D7369 PUSH27 0x653D22313070782220786C696E6B3A687265663D2223746578742D PUSH17 0x6174682D61223E3C6D61736B2069643D22 PUSH7 0x6164652D646F77 PUSH15 0x22206D61736B436F6E74656E74556E PUSH10 0x74733D226F626A656374 TIMESTAMP PUSH16 0x756E64696E67426F78223E3C72656374 KECCAK256 PUSH24 0x696474683D223122206865696768743D2231222066696C6C RETURNDATASIZE 0x22 PUSH22 0x726C2823677261642D646F776E2922202F3E3C2F6D61 PUSH20 0x6B3E22207374726F6B653D227267626128323535 0x2C ORIGIN CALLDATALOAD CALLDATALOAD 0x2C ORIGIN CALLDATALOAD CALLDATALOAD 0x2C BALANCE 0x29 0x22 KECCAK256 PUSH7 0x696C6C3D226E6F PUSH15 0x6522207374726F6B652D6C696E6563 PUSH2 0x703D 0x22 PUSH19 0x6F756E6422202F3E3C2F673E696E3D22626C65 PUSH15 0x644F75742220737464446576696174 PUSH10 0x6F6E3D22343222202F3E EXTCODECOPY 0x2F PUSH7 0x696C7465723E20 EXTCODECOPY PUSH4 0x6C697050 PUSH2 0x7468 KECCAK256 PUSH10 0x643D22636F726E657273 0x22 RETURNDATACOPY EXTCODECOPY PUSH19 0x6563742077696474683D223239302220686569 PUSH8 0x68743D2235303022 KECCAK256 PUSH19 0x783D223432222072793D22343222202F3E3C2F PUSH4 0x6C697050 PUSH2 0x7468 RETURNDATACOPY KECCAK256 EXTCODECOPY PUSH8 0x207374796C653D22 PUSH21 0x72616E73666F726D3A7472616E736C617465283239 PUSH17 0x782C20333834707829223E3C6C696E6561 PUSH19 0x4772616469656E742069643D22677261642D75 PUSH17 0x222078313D2231222078323D2230222079 BALANCE RETURNDATASIZE 0x22 BALANCE 0x22 KECCAK256 PUSH26 0x323D2230223E3C73746F70206F66667365743D22302E30222073 PUSH21 0x6F702D636F6C6F723D227768697465222073746F70 0x2D PUSH16 0x7061636974793D223122202F3E32334C BALANCE ADDRESS 0x2E ORIGIN BALANCE CODESIZE BALANCE KECCAK256 BALANCE CALLER 0x2E CALLDATACOPY CODESIZE BALANCE CODECOPY 0x4C BALANCE 0x2E CALLDATASIZE ADDRESS CALLDATACOPY CALLDATACOPY KECCAK256 BALANCE CODESIZE 0x4C CODECOPY 0x2E CALLDATALOAD CALLDATASIZE CALLDATALOAD CODESIZE CALLDATACOPY KECCAK256 BALANCE ORIGIN 0x2E CALLDATASIZE CALLDATALOAD ORIGIN ORIGIN 0x4C ADDRESS KECCAK256 BALANCE ORIGIN 0x4C CODECOPY 0x2E CALLDATALOAD CALLDATASIZE CALLDATALOAD CODESIZE CALLDATACOPY KECCAK256 BALANCE BALANCE 0x2E CALLER CALLVALUE CALLDATACOPY CODESIZE 0x4C BALANCE 0x2E CALLDATASIZE ADDRESS CALLDATACOPY CALLDATACOPY KECCAK256 CALLDATASIZE 0x4C BALANCE ADDRESS 0x2E ORIGIN BALANCE CODESIZE BALANCE KECCAK256 BALANCE ADDRESS 0x2E ORIGIN BALANCE CODESIZE BALANCE 0x4C CALLDATASIZE KECCAK256 BALANCE 0x2E CALLDATASIZE ADDRESS CALLDATACOPY CALLDATACOPY 0x4C BALANCE BALANCE 0x2E CALLER CALLVALUE CALLDATACOPY CODESIZE KECCAK256 CODECOPY 0x2E CALLDATALOAD CALLDATASIZE CALLDATALOAD CODESIZE CALLDATACOPY 0x4C BALANCE ORIGIN KECCAK256 ADDRESS GAS 0x22 KECCAK256 PUSH7 0x696C6C3D227768 PUSH10 0x746522202F3E3C672073 PUSH21 0x796C653D227472616E73666F726D3A7472616E736C PUSH2 0x7465 0x28 ORIGIN ORIGIN CALLDATASIZE PUSH17 0x782C20333932707829223E3C7265637420 PUSH24 0x696474683D223336707822206865696768743D2233367078 0x22 KECCAK256 PUSH19 0x783D22387078222072793D2238707822206669 PUSH13 0x6C3D226E6F6E6522207374726F PUSH12 0x653D2272676261283235352C ORIGIN CALLDATALOAD CALLDATALOAD 0x2C ORIGIN CALLDATALOAD CALLDATALOAD 0x2C ADDRESS 0x2E ORIGIN 0x29 0x22 KECCAK256 0x2F RETURNDATACOPY EXTCODECOPY PUSH21 0x657874506174682073746172744F66667365743D22 CALLDATALOAD ADDRESS 0x25 0x22 KECCAK256 PUSH7 0x696C6C3D227768 PUSH10 0x74652220666F6E742D66 PUSH2 0x6D69 PUSH13 0x793D2227436F7572696572204E PUSH6 0x77272C206D6F PUSH15 0x6F73706163652220666F6E742D7369 PUSH27 0x653D22313070782220786C696E6B3A687265663D2223746578742D PUSH17 0x6174682D61223E3C7465787420783D2231 ORIGIN PUSH17 0x782220793D22313770782220666F6E742D PUSH7 0x616D696C793D22 0x27 NUMBER PUSH16 0x7572696572204E6577272C206D6F6E6F PUSH20 0x706163652220666F6E742D73697A653D22313270 PUSH25 0x222066696C6C3D227768697465223E3C747370616E2066696C PUSH13 0x3D2272676261283235352C3235 CALLDATALOAD 0x2C ORIGIN CALLDATALOAD CALLDATALOAD 0x2C ADDRESS 0x2E CALLDATASIZE 0x29 0x22 RETURNDATACOPY 0x4D PUSH2 0x7820 SLOAD PUSH10 0x636B3A203C2F74737061 PUSH15 0x3E3C616E696D6174655472616E7366 PUSH16 0x726D206174747269627574654E616D65 RETURNDATASIZE 0x22 PUSH21 0x72616E73666F726D2220747970653D22726F746174 PUSH6 0x222066726F6D RETURNDATASIZE 0x22 ADDRESS KECCAK256 BALANCE CODESIZE KECCAK256 BALANCE CODESIZE 0x22 KECCAK256 PUSH21 0x6F3D2233363020313820313822206475723D223130 PUSH20 0x2220726570656174436F756E743D22696E646566 PUSH10 0x6E697465222F3E3C2F67 RETURNDATACOPY EXTCODECOPY 0x2F PUSH8 0x3E3C706174682069 PUSH5 0x3D22746578 PUSH21 0x2D706174682D612220643D224D3430203132204832 CALLDATALOAD ADDRESS KECCAK256 COINBASE ORIGIN CODESIZE KECCAK256 ORIGIN CODESIZE KECCAK256 ADDRESS KECCAK256 ADDRESS KECCAK256 BALANCE KECCAK256 ORIGIN CALLDATACOPY CODESIZE KECCAK256 CALLVALUE ADDRESS KECCAK256 JUMP CALLVALUE CALLDATASIZE ADDRESS KECCAK256 COINBASE ORIGIN CODESIZE KECCAK256 ORIGIN CODESIZE KECCAK256 ADDRESS KECCAK256 ADDRESS KECCAK256 BALANCE KECCAK256 ORIGIN CALLDATALOAD ADDRESS KECCAK256 CALLVALUE CODESIZE CODESIZE KECCAK256 0x48 CALLVALUE ADDRESS KECCAK256 COINBASE ORIGIN CODESIZE KECCAK256 ORIGIN CODESIZE KECCAK256 ADDRESS KECCAK256 ADDRESS KECCAK256 BALANCE KECCAK256 BALANCE ORIGIN KECCAK256 CALLVALUE CALLDATASIZE ADDRESS KECCAK256 JUMP CALLVALUE ADDRESS KECCAK256 COINBASE ORIGIN CODESIZE KECCAK256 ORIGIN CODESIZE KECCAK256 ADDRESS KECCAK256 ADDRESS KECCAK256 BALANCE KECCAK256 CALLVALUE ADDRESS KECCAK256 BALANCE ORIGIN KECCAK256 PUSH27 0x22202F3E222F3E3C6665496D61676520726573756C743D22703122 KECCAK256 PUSH25 0x6C696E6B3A687265663D22646174613A696D6167652F737667 0x2B PUSH25 0x6D6C3B6261736536342C3C6D61736B2069643D22666164652D PUSH20 0x796D626F6C22206D61736B436F6E74656E74556E PUSH10 0x74733D22757365725370 PUSH2 0x6365 0x4F PUSH15 0x557365223E3C726563742077696474 PUSH9 0x3D2232393070782220 PUSH9 0x65696768743D223230 ADDRESS PUSH17 0x78222066696C6C3D2275726C2823677261 PUSH5 0x2D73796D62 PUSH16 0x6C2922202F3E3C2F6D61736B3E3C2F64 PUSH6 0x66733E3C7265 PUSH4 0x7420783D 0x22 ADDRESS 0x22 KECCAK256 PUSH26 0x3D2230222077696474683D2232393022206865696768743D2235 ADDRESS ADDRESS 0x22 KECCAK256 PUSH19 0x783D223432222072793D223432222066696C6C RETURNDATASIZE 0x22 PUSH19 0x67626128302C302C302C302922207374726F6B PUSH6 0x3D2272676261 0x28 ORIGIN CALLDATALOAD CALLDATALOAD 0x2C ORIGIN CALLDATALOAD CALLDATALOAD 0x2C ORIGIN CALLDATALOAD CALLDATALOAD 0x2C ADDRESS 0x2E ORIGIN 0x29 0x22 KECCAK256 0x2F RETURNDATACOPY EXTCODECOPY 0x2F PUSH8 0x3E3C66696C746572 KECCAK256 PUSH10 0x643D22746F702D726567 PUSH10 0x6F6E2D626C7572223E3C PUSH7 0x65476175737369 PUSH2 0x6E42 PUSH13 0x757220696E3D22536F75726365 SELFBALANCE PUSH19 0x61706869632220737464446576696174696F6E RETURNDATASIZE 0x22 ORIGIN CALLVALUE 0x22 KECCAK256 0x2F RETURNDATACOPY EXTCODECOPY 0x2F PUSH7 0x696C7465723E3C 0x2F PUSH21 0x657874506174683E203C7465787450617468207374 PUSH2 0x7274 0x4F PUSH7 0x667365743D2230 0x25 0x22 KECCAK256 PUSH7 0x696C6C3D227768 PUSH10 0x74652220666F6E742D66 PUSH2 0x6D69 PUSH13 0x793D2227436F7572696572204E PUSH6 0x77272C206D6F PUSH15 0x6F73706163652220666F6E742D7369 PUSH27 0x653D22313070782220786C696E6B3A687265663D2223746578742D PUSH17 0x6174682D61223E3C746578742074657874 0x2D PUSH19 0x656E646572696E673D226F7074696D697A6553 PUSH17 0x656564223E5369676E6564536166654D61 PUSH21 0x683A207375627472616374696F6E206F766572666C PUSH16 0x773C7265637420783D2231362220793D 0x22 BALANCE CALLDATASIZE 0x22 KECCAK256 PUSH24 0x696474683D2232353822206865696768743D223436382220 PUSH19 0x783D223236222072793D223236222066696C6C RETURNDATASIZE 0x22 PUSH19 0x67626128302C302C302C302922207374726F6B PUSH6 0x3D2272676261 0x28 ORIGIN CALLDATALOAD CALLDATALOAD 0x2C ORIGIN CALLDATALOAD CALLDATALOAD 0x2C ORIGIN CALLDATALOAD CALLDATALOAD 0x2C ADDRESS 0x2E ORIGIN 0x29 0x22 KECCAK256 0x2F RETURNDATACOPY EXTCODECOPY PUSH21 0x65787420783D22313270782220793D223137707822 KECCAK256 PUSH7 0x6F6E742D66616D PUSH10 0x6C793D2227436F757269 PUSH6 0x72204E657727 0x2C KECCAK256 PUSH14 0x6F6E6F73706163652220666F6E74 0x2D PUSH20 0x697A653D2231327078222066696C6C3D22776869 PUSH21 0x65223E3C747370616E2066696C6C3D227267626128 ORIGIN CALLDATALOAD CALLDATALOAD 0x2C ORIGIN CALLDATALOAD CALLDATALOAD 0x2C ORIGIN CALLDATALOAD CALLDATALOAD 0x2C ADDRESS 0x2E CALLDATASIZE 0x29 0x22 RETURNDATACOPY 0x49 DIFFICULTY GASPRICE KECCAK256 EXTCODECOPY 0x2F PUSH21 0x7370616E3E3C726563742077696474683D22333670 PUSH25 0x22206865696768743D2233367078222072783D223870782220 PUSH19 0x793D22387078222066696C6C3D226E6F6E6522 KECCAK256 PUSH20 0x74726F6B653D2272676261283235352C3235352C ORIGIN CALLDATALOAD CALLDATALOAD 0x2C ADDRESS 0x2E ORIGIN 0x29 0x22 KECCAK256 0x2F RETURNDATACOPY EXTCODECOPY 0x2F PUSH21 0x6578743E3C7465787420793D223131357078222078 RETURNDATASIZE 0x22 CALLER ORIGIN PUSH17 0x78222066696C6C3D227768697465222066 PUSH16 0x6E742D66616D696C793D2227436F7572 PUSH10 0x6572204E6577272C206D PUSH16 0x6E6F73706163652220666F6E742D7765 PUSH10 0x6768743D223230302220 PUSH7 0x6F6E742D73697A PUSH6 0x3D2233367078 0x22 RETURNDATACOPY EXTCODECOPY 0x2F PUSH21 0x6578743E3C2F673E3C67207374796C653D22747261 PUSH15 0x73666F726D3A7472616E736C617465 0x28 ORIGIN ORIGIN CALLDATASIZE PUSH17 0x782C20343333707829223E203C67207374 PUSH26 0x6C653D227472616E73666F726D3A7472616E736C617465283239 PUSH17 0x782C20343134707829223EA164736F6C63 NUMBER STOP SMOD MOD STOP EXP ","sourceMap":"198:2291:17:-:0;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:12196:18","statements":[{"nodeType":"YulBlock","src":"6:3:18","statements":[]},{"body":{"nodeType":"YulBlock","src":"65:87:18","statements":[{"nodeType":"YulAssignment","src":"75:29:18","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"97:6:18"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"84:12:18"},"nodeType":"YulFunctionCall","src":"84:20:18"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"75:5:18"}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"140:5:18"}],"functionName":{"name":"validator_revert_t_address","nodeType":"YulIdentifier","src":"113:26:18"},"nodeType":"YulFunctionCall","src":"113:33:18"},"nodeType":"YulExpressionStatement","src":"113:33:18"}]},"name":"abi_decode_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"44:6:18","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"55:5:18","type":""}],"src":"14:138:18"},{"body":{"nodeType":"YulBlock","src":"205:114:18","statements":[{"nodeType":"YulAssignment","src":"215:29:18","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"237:6:18"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"224:12:18"},"nodeType":"YulFunctionCall","src":"224:20:18"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"215:5:18"}]},{"body":{"nodeType":"YulBlock","src":"297:16:18","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"306:1:18","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"309:1:18","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"299:6:18"},"nodeType":"YulFunctionCall","src":"299:12:18"},"nodeType":"YulExpressionStatement","src":"299:12:18"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"266:5:18"},{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"287:5:18"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"280:6:18"},"nodeType":"YulFunctionCall","src":"280:13:18"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"273:6:18"},"nodeType":"YulFunctionCall","src":"273:21:18"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"263:2:18"},"nodeType":"YulFunctionCall","src":"263:32:18"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"256:6:18"},"nodeType":"YulFunctionCall","src":"256:40:18"},"nodeType":"YulIf","src":"253:2:18"}]},"name":"abi_decode_t_bool","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"184:6:18","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"195:5:18","type":""}],"src":"157:162:18"},{"body":{"nodeType":"YulBlock","src":"373:113:18","statements":[{"nodeType":"YulAssignment","src":"383:29:18","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"405:6:18"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"392:12:18"},"nodeType":"YulFunctionCall","src":"392:20:18"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"383:5:18"}]},{"body":{"nodeType":"YulBlock","src":"464:16:18","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"473:1:18","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"476:1:18","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"466:6:18"},"nodeType":"YulFunctionCall","src":"466:12:18"},"nodeType":"YulExpressionStatement","src":"466:12:18"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"434:5:18"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"452:1:18","type":"","value":"2"},{"name":"value","nodeType":"YulIdentifier","src":"455:5:18"}],"functionName":{"name":"signextend","nodeType":"YulIdentifier","src":"441:10:18"},"nodeType":"YulFunctionCall","src":"441:20:18"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"431:2:18"},"nodeType":"YulFunctionCall","src":"431:31:18"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"424:6:18"},"nodeType":"YulFunctionCall","src":"424:39:18"},"nodeType":"YulIf","src":"421:2:18"}]},"name":"abi_decode_t_int24","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"352:6:18","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"363:5:18","type":""}],"src":"324:162:18"},{"body":{"nodeType":"YulBlock","src":"546:432:18","statements":[{"body":{"nodeType":"YulBlock","src":"595:24:18","statements":[{"expression":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"604:5:18"},{"name":"array","nodeType":"YulIdentifier","src":"611:5:18"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"597:6:18"},"nodeType":"YulFunctionCall","src":"597:20:18"},"nodeType":"YulExpressionStatement","src":"597:20:18"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"574:6:18"},{"kind":"number","nodeType":"YulLiteral","src":"582:4:18","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"570:3:18"},"nodeType":"YulFunctionCall","src":"570:17:18"},{"name":"end","nodeType":"YulIdentifier","src":"589:3:18"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"566:3:18"},"nodeType":"YulFunctionCall","src":"566:27:18"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"559:6:18"},"nodeType":"YulFunctionCall","src":"559:35:18"},"nodeType":"YulIf","src":"556:2:18"},{"nodeType":"YulVariableDeclaration","src":"628:30:18","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"651:6:18"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"638:12:18"},"nodeType":"YulFunctionCall","src":"638:20:18"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"632:2:18","type":""}]},{"nodeType":"YulVariableDeclaration","src":"667:65:18","value":{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"728:2:18"}],"functionName":{"name":"array_allocation_size_t_string","nodeType":"YulIdentifier","src":"697:30:18"},"nodeType":"YulFunctionCall","src":"697:34:18"}],"functionName":{"name":"allocateMemory","nodeType":"YulIdentifier","src":"682:14:18"},"nodeType":"YulFunctionCall","src":"682:50:18"},"variables":[{"name":"array_1","nodeType":"YulTypedName","src":"671:7:18","type":""}]},{"expression":{"arguments":[{"name":"array_1","nodeType":"YulIdentifier","src":"748:7:18"},{"name":"_1","nodeType":"YulIdentifier","src":"757:2:18"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"741:6:18"},"nodeType":"YulFunctionCall","src":"741:19:18"},"nodeType":"YulExpressionStatement","src":"741:19:18"},{"body":{"nodeType":"YulBlock","src":"808:24:18","statements":[{"expression":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"817:5:18"},{"name":"array","nodeType":"YulIdentifier","src":"824:5:18"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"810:6:18"},"nodeType":"YulFunctionCall","src":"810:20:18"},"nodeType":"YulExpressionStatement","src":"810:20:18"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"783:6:18"},{"name":"_1","nodeType":"YulIdentifier","src":"791:2:18"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"779:3:18"},"nodeType":"YulFunctionCall","src":"779:15:18"},{"kind":"number","nodeType":"YulLiteral","src":"796:4:18","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"775:3:18"},"nodeType":"YulFunctionCall","src":"775:26:18"},{"name":"end","nodeType":"YulIdentifier","src":"803:3:18"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"772:2:18"},"nodeType":"YulFunctionCall","src":"772:35:18"},"nodeType":"YulIf","src":"769:2:18"},{"expression":{"arguments":[{"arguments":[{"name":"array_1","nodeType":"YulIdentifier","src":"858:7:18"},{"kind":"number","nodeType":"YulLiteral","src":"867:4:18","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"854:3:18"},"nodeType":"YulFunctionCall","src":"854:18:18"},{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"878:6:18"},{"kind":"number","nodeType":"YulLiteral","src":"886:4:18","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"874:3:18"},"nodeType":"YulFunctionCall","src":"874:17:18"},{"name":"_1","nodeType":"YulIdentifier","src":"893:2:18"}],"functionName":{"name":"calldatacopy","nodeType":"YulIdentifier","src":"841:12:18"},"nodeType":"YulFunctionCall","src":"841:55:18"},"nodeType":"YulExpressionStatement","src":"841:55:18"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"array_1","nodeType":"YulIdentifier","src":"920:7:18"},{"name":"_1","nodeType":"YulIdentifier","src":"929:2:18"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"916:3:18"},"nodeType":"YulFunctionCall","src":"916:16:18"},{"kind":"number","nodeType":"YulLiteral","src":"934:4:18","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"912:3:18"},"nodeType":"YulFunctionCall","src":"912:27:18"},{"name":"array","nodeType":"YulIdentifier","src":"941:5:18"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"905:6:18"},"nodeType":"YulFunctionCall","src":"905:42:18"},"nodeType":"YulExpressionStatement","src":"905:42:18"},{"nodeType":"YulAssignment","src":"956:16:18","value":{"name":"array_1","nodeType":"YulIdentifier","src":"965:7:18"},"variableNames":[{"name":"array","nodeType":"YulIdentifier","src":"956:5:18"}]}]},"name":"abi_decode_t_string","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"520:6:18","type":""},{"name":"end","nodeType":"YulTypedName","src":"528:3:18","type":""}],"returnVariables":[{"name":"array","nodeType":"YulTypedName","src":"536:5:18","type":""}],"src":"491:487:18"},{"body":{"nodeType":"YulBlock","src":"1033:113:18","statements":[{"nodeType":"YulAssignment","src":"1043:29:18","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1065:6:18"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1052:12:18"},"nodeType":"YulFunctionCall","src":"1052:20:18"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"1043:5:18"}]},{"body":{"nodeType":"YulBlock","src":"1124:16:18","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1133:1:18","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1136:1:18","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1126:6:18"},"nodeType":"YulFunctionCall","src":"1126:12:18"},"nodeType":"YulExpressionStatement","src":"1126:12:18"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1094:5:18"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1105:5:18"},{"kind":"number","nodeType":"YulLiteral","src":"1112:8:18","type":"","value":"0xffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1101:3:18"},"nodeType":"YulFunctionCall","src":"1101:20:18"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"1091:2:18"},"nodeType":"YulFunctionCall","src":"1091:31:18"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1084:6:18"},"nodeType":"YulFunctionCall","src":"1084:39:18"},"nodeType":"YulIf","src":"1081:2:18"}]},"name":"abi_decode_t_uint24","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"1012:6:18","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"1023:5:18","type":""}],"src":"983:163:18"},{"body":{"nodeType":"YulBlock","src":"1200:109:18","statements":[{"nodeType":"YulAssignment","src":"1210:29:18","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1232:6:18"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1219:12:18"},"nodeType":"YulFunctionCall","src":"1219:20:18"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"1210:5:18"}]},{"body":{"nodeType":"YulBlock","src":"1287:16:18","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1296:1:18","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1299:1:18","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1289:6:18"},"nodeType":"YulFunctionCall","src":"1289:12:18"},"nodeType":"YulExpressionStatement","src":"1289:12:18"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1261:5:18"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1272:5:18"},{"kind":"number","nodeType":"YulLiteral","src":"1279:4:18","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1268:3:18"},"nodeType":"YulFunctionCall","src":"1268:16:18"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"1258:2:18"},"nodeType":"YulFunctionCall","src":"1258:27:18"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1251:6:18"},"nodeType":"YulFunctionCall","src":"1251:35:18"},"nodeType":"YulIf","src":"1248:2:18"}]},"name":"abi_decode_t_uint8","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"1179:6:18","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"1190:5:18","type":""}],"src":"1151:158:18"},{"body":{"nodeType":"YulBlock","src":"1384:189:18","statements":[{"body":{"nodeType":"YulBlock","src":"1430:26:18","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1439:6:18"},{"name":"value0","nodeType":"YulIdentifier","src":"1447:6:18"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1432:6:18"},"nodeType":"YulFunctionCall","src":"1432:22:18"},"nodeType":"YulExpressionStatement","src":"1432:22:18"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1405:7:18"},{"name":"headStart","nodeType":"YulIdentifier","src":"1414:9:18"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1401:3:18"},"nodeType":"YulFunctionCall","src":"1401:23:18"},{"kind":"number","nodeType":"YulLiteral","src":"1426:2:18","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1397:3:18"},"nodeType":"YulFunctionCall","src":"1397:32:18"},"nodeType":"YulIf","src":"1394:2:18"},{"nodeType":"YulVariableDeclaration","src":"1465:36:18","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1491:9:18"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1478:12:18"},"nodeType":"YulFunctionCall","src":"1478:23:18"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"1469:5:18","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1537:5:18"}],"functionName":{"name":"validator_revert_t_address","nodeType":"YulIdentifier","src":"1510:26:18"},"nodeType":"YulFunctionCall","src":"1510:33:18"},"nodeType":"YulExpressionStatement","src":"1510:33:18"},{"nodeType":"YulAssignment","src":"1552:15:18","value":{"name":"value","nodeType":"YulIdentifier","src":"1562:5:18"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1552:6:18"}]}]},"name":"abi_decode_tuple_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1350:9:18","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1361:7:18","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1373:6:18","type":""}],"src":"1314:259:18"},{"body":{"nodeType":"YulBlock","src":"1665:240:18","statements":[{"body":{"nodeType":"YulBlock","src":"1711:26:18","statements":[{"expression":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"1720:6:18"},{"name":"value1","nodeType":"YulIdentifier","src":"1728:6:18"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1713:6:18"},"nodeType":"YulFunctionCall","src":"1713:22:18"},"nodeType":"YulExpressionStatement","src":"1713:22:18"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1686:7:18"},{"name":"headStart","nodeType":"YulIdentifier","src":"1695:9:18"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1682:3:18"},"nodeType":"YulFunctionCall","src":"1682:23:18"},{"kind":"number","nodeType":"YulLiteral","src":"1707:2:18","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1678:3:18"},"nodeType":"YulFunctionCall","src":"1678:32:18"},"nodeType":"YulIf","src":"1675:2:18"},{"nodeType":"YulVariableDeclaration","src":"1746:36:18","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1772:9:18"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1759:12:18"},"nodeType":"YulFunctionCall","src":"1759:23:18"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"1750:5:18","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1818:5:18"}],"functionName":{"name":"validator_revert_t_address","nodeType":"YulIdentifier","src":"1791:26:18"},"nodeType":"YulFunctionCall","src":"1791:33:18"},"nodeType":"YulExpressionStatement","src":"1791:33:18"},{"nodeType":"YulAssignment","src":"1833:15:18","value":{"name":"value","nodeType":"YulIdentifier","src":"1843:5:18"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1833:6:18"}]},{"nodeType":"YulAssignment","src":"1857:42:18","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1884:9:18"},{"kind":"number","nodeType":"YulLiteral","src":"1895:2:18","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1880:3:18"},"nodeType":"YulFunctionCall","src":"1880:18:18"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1867:12:18"},"nodeType":"YulFunctionCall","src":"1867:32:18"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"1857:6:18"}]}]},"name":"abi_decode_tuple_t_addresst_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1623:9:18","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1634:7:18","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1646:6:18","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1654:6:18","type":""}],"src":"1578:327:18"},{"body":{"nodeType":"YulBlock","src":"1993:183:18","statements":[{"body":{"nodeType":"YulBlock","src":"2039:26:18","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2048:6:18"},{"name":"value0","nodeType":"YulIdentifier","src":"2056:6:18"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2041:6:18"},"nodeType":"YulFunctionCall","src":"2041:22:18"},"nodeType":"YulExpressionStatement","src":"2041:22:18"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2014:7:18"},{"name":"headStart","nodeType":"YulIdentifier","src":"2023:9:18"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2010:3:18"},"nodeType":"YulFunctionCall","src":"2010:23:18"},{"kind":"number","nodeType":"YulLiteral","src":"2035:2:18","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2006:3:18"},"nodeType":"YulFunctionCall","src":"2006:32:18"},"nodeType":"YulIf","src":"2003:2:18"},{"nodeType":"YulAssignment","src":"2074:39:18","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2103:9:18"}],"functionName":{"name":"abi_decode_t_int24","nodeType":"YulIdentifier","src":"2084:18:18"},"nodeType":"YulFunctionCall","src":"2084:29:18"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2074:6:18"}]},{"nodeType":"YulAssignment","src":"2122:48:18","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2155:9:18"},{"kind":"number","nodeType":"YulLiteral","src":"2166:2:18","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2151:3:18"},"nodeType":"YulFunctionCall","src":"2151:18:18"}],"functionName":{"name":"abi_decode_t_int24","nodeType":"YulIdentifier","src":"2132:18:18"},"nodeType":"YulFunctionCall","src":"2132:38:18"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"2122:6:18"}]}]},"name":"abi_decode_tuple_t_int24t_int24","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1951:9:18","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1962:7:18","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1974:6:18","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1982:6:18","type":""}],"src":"1910:266:18"},{"body":{"nodeType":"YulBlock","src":"2308:355:18","statements":[{"body":{"nodeType":"YulBlock","src":"2355:26:18","statements":[{"expression":{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"2364:6:18"},{"name":"value4","nodeType":"YulIdentifier","src":"2372:6:18"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2357:6:18"},"nodeType":"YulFunctionCall","src":"2357:22:18"},"nodeType":"YulExpressionStatement","src":"2357:22:18"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2329:7:18"},{"name":"headStart","nodeType":"YulIdentifier","src":"2338:9:18"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2325:3:18"},"nodeType":"YulFunctionCall","src":"2325:23:18"},{"kind":"number","nodeType":"YulLiteral","src":"2350:3:18","type":"","value":"160"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2321:3:18"},"nodeType":"YulFunctionCall","src":"2321:33:18"},"nodeType":"YulIf","src":"2318:2:18"},{"nodeType":"YulAssignment","src":"2390:39:18","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2419:9:18"}],"functionName":{"name":"abi_decode_t_int24","nodeType":"YulIdentifier","src":"2400:18:18"},"nodeType":"YulFunctionCall","src":"2400:29:18"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2390:6:18"}]},{"nodeType":"YulAssignment","src":"2438:48:18","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2471:9:18"},{"kind":"number","nodeType":"YulLiteral","src":"2482:2:18","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2467:3:18"},"nodeType":"YulFunctionCall","src":"2467:18:18"}],"functionName":{"name":"abi_decode_t_int24","nodeType":"YulIdentifier","src":"2448:18:18"},"nodeType":"YulFunctionCall","src":"2448:38:18"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"2438:6:18"}]},{"nodeType":"YulAssignment","src":"2495:48:18","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2528:9:18"},{"kind":"number","nodeType":"YulLiteral","src":"2539:2:18","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2524:3:18"},"nodeType":"YulFunctionCall","src":"2524:18:18"}],"functionName":{"name":"abi_decode_t_uint8","nodeType":"YulIdentifier","src":"2505:18:18"},"nodeType":"YulFunctionCall","src":"2505:38:18"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"2495:6:18"}]},{"nodeType":"YulAssignment","src":"2552:48:18","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2585:9:18"},{"kind":"number","nodeType":"YulLiteral","src":"2596:2:18","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2581:3:18"},"nodeType":"YulFunctionCall","src":"2581:18:18"}],"functionName":{"name":"abi_decode_t_uint8","nodeType":"YulIdentifier","src":"2562:18:18"},"nodeType":"YulFunctionCall","src":"2562:38:18"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"2552:6:18"}]},{"nodeType":"YulAssignment","src":"2609:48:18","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2641:9:18"},{"kind":"number","nodeType":"YulLiteral","src":"2652:3:18","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2637:3:18"},"nodeType":"YulFunctionCall","src":"2637:19:18"}],"functionName":{"name":"abi_decode_t_bool","nodeType":"YulIdentifier","src":"2619:17:18"},"nodeType":"YulFunctionCall","src":"2619:38:18"},"variableNames":[{"name":"value4","nodeType":"YulIdentifier","src":"2609:6:18"}]}]},"name":"abi_decode_tuple_t_int24t_int24t_uint8t_uint8t_bool","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2242:9:18","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2253:7:18","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2265:6:18","type":""},{"name":"value1","nodeType":"YulTypedName","src":"2273:6:18","type":""},{"name":"value2","nodeType":"YulTypedName","src":"2281:6:18","type":""},{"name":"value3","nodeType":"YulTypedName","src":"2289:6:18","type":""},{"name":"value4","nodeType":"YulTypedName","src":"2297:6:18","type":""}],"src":"2181:482:18"},{"body":{"nodeType":"YulBlock","src":"2759:586:18","statements":[{"body":{"nodeType":"YulBlock","src":"2805:26:18","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2814:6:18"},{"name":"value0","nodeType":"YulIdentifier","src":"2822:6:18"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2807:6:18"},"nodeType":"YulFunctionCall","src":"2807:22:18"},"nodeType":"YulExpressionStatement","src":"2807:22:18"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2780:7:18"},{"name":"headStart","nodeType":"YulIdentifier","src":"2789:9:18"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2776:3:18"},"nodeType":"YulFunctionCall","src":"2776:23:18"},{"kind":"number","nodeType":"YulLiteral","src":"2801:2:18","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2772:3:18"},"nodeType":"YulFunctionCall","src":"2772:32:18"},"nodeType":"YulIf","src":"2769:2:18"},{"nodeType":"YulVariableDeclaration","src":"2840:30:18","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2860:9:18"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2854:5:18"},"nodeType":"YulFunctionCall","src":"2854:16:18"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"2844:6:18","type":""}]},{"body":{"nodeType":"YulBlock","src":"2913:26:18","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2922:6:18"},{"name":"value0","nodeType":"YulIdentifier","src":"2930:6:18"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2915:6:18"},"nodeType":"YulFunctionCall","src":"2915:22:18"},"nodeType":"YulExpressionStatement","src":"2915:22:18"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"2885:6:18"},{"kind":"number","nodeType":"YulLiteral","src":"2893:18:18","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2882:2:18"},"nodeType":"YulFunctionCall","src":"2882:30:18"},"nodeType":"YulIf","src":"2879:2:18"},{"nodeType":"YulVariableDeclaration","src":"2948:32:18","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2962:9:18"},{"name":"offset","nodeType":"YulIdentifier","src":"2973:6:18"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2958:3:18"},"nodeType":"YulFunctionCall","src":"2958:22:18"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"2952:2:18","type":""}]},{"body":{"nodeType":"YulBlock","src":"3028:26:18","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3037:6:18"},{"name":"value0","nodeType":"YulIdentifier","src":"3045:6:18"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3030:6:18"},"nodeType":"YulFunctionCall","src":"3030:22:18"},"nodeType":"YulExpressionStatement","src":"3030:22:18"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"3007:2:18"},{"kind":"number","nodeType":"YulLiteral","src":"3011:4:18","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3003:3:18"},"nodeType":"YulFunctionCall","src":"3003:13:18"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"3018:7:18"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2999:3:18"},"nodeType":"YulFunctionCall","src":"2999:27:18"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2992:6:18"},"nodeType":"YulFunctionCall","src":"2992:35:18"},"nodeType":"YulIf","src":"2989:2:18"},{"nodeType":"YulVariableDeclaration","src":"3063:19:18","value":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"3079:2:18"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3073:5:18"},"nodeType":"YulFunctionCall","src":"3073:9:18"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"3067:2:18","type":""}]},{"nodeType":"YulVariableDeclaration","src":"3091:63:18","value":{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"3150:2:18"}],"functionName":{"name":"array_allocation_size_t_string","nodeType":"YulIdentifier","src":"3119:30:18"},"nodeType":"YulFunctionCall","src":"3119:34:18"}],"functionName":{"name":"allocateMemory","nodeType":"YulIdentifier","src":"3104:14:18"},"nodeType":"YulFunctionCall","src":"3104:50:18"},"variables":[{"name":"array","nodeType":"YulTypedName","src":"3095:5:18","type":""}]},{"expression":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"3170:5:18"},{"name":"_2","nodeType":"YulIdentifier","src":"3177:2:18"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3163:6:18"},"nodeType":"YulFunctionCall","src":"3163:17:18"},"nodeType":"YulExpressionStatement","src":"3163:17:18"},{"body":{"nodeType":"YulBlock","src":"3226:26:18","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3235:6:18"},{"name":"value0","nodeType":"YulIdentifier","src":"3243:6:18"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3228:6:18"},"nodeType":"YulFunctionCall","src":"3228:22:18"},"nodeType":"YulExpressionStatement","src":"3228:22:18"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"3203:2:18"},{"name":"_2","nodeType":"YulIdentifier","src":"3207:2:18"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3199:3:18"},"nodeType":"YulFunctionCall","src":"3199:11:18"},{"kind":"number","nodeType":"YulLiteral","src":"3212:2:18","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3195:3:18"},"nodeType":"YulFunctionCall","src":"3195:20:18"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"3217:7:18"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3192:2:18"},"nodeType":"YulFunctionCall","src":"3192:33:18"},"nodeType":"YulIf","src":"3189:2:18"},{"expression":{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"3287:2:18"},{"kind":"number","nodeType":"YulLiteral","src":"3291:2:18","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3283:3:18"},"nodeType":"YulFunctionCall","src":"3283:11:18"},{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"3300:5:18"},{"kind":"number","nodeType":"YulLiteral","src":"3307:2:18","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3296:3:18"},"nodeType":"YulFunctionCall","src":"3296:14:18"},{"name":"_2","nodeType":"YulIdentifier","src":"3312:2:18"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"3261:21:18"},"nodeType":"YulFunctionCall","src":"3261:54:18"},"nodeType":"YulExpressionStatement","src":"3261:54:18"},{"nodeType":"YulAssignment","src":"3324:15:18","value":{"name":"array","nodeType":"YulIdentifier","src":"3334:5:18"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3324:6:18"}]}]},"name":"abi_decode_tuple_t_string_memory_ptr_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2725:9:18","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2736:7:18","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2748:6:18","type":""}],"src":"2668:677:18"},{"body":{"nodeType":"YulBlock","src":"3463:320:18","statements":[{"body":{"nodeType":"YulBlock","src":"3509:26:18","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3518:6:18"},{"name":"value0","nodeType":"YulIdentifier","src":"3526:6:18"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3511:6:18"},"nodeType":"YulFunctionCall","src":"3511:22:18"},"nodeType":"YulExpressionStatement","src":"3511:22:18"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3484:7:18"},{"name":"headStart","nodeType":"YulIdentifier","src":"3493:9:18"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3480:3:18"},"nodeType":"YulFunctionCall","src":"3480:23:18"},{"kind":"number","nodeType":"YulLiteral","src":"3505:2:18","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3476:3:18"},"nodeType":"YulFunctionCall","src":"3476:32:18"},"nodeType":"YulIf","src":"3473:2:18"},{"nodeType":"YulVariableDeclaration","src":"3544:37:18","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3571:9:18"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3558:12:18"},"nodeType":"YulFunctionCall","src":"3558:23:18"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"3548:6:18","type":""}]},{"body":{"nodeType":"YulBlock","src":"3624:26:18","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3633:6:18"},{"name":"value0","nodeType":"YulIdentifier","src":"3641:6:18"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3626:6:18"},"nodeType":"YulFunctionCall","src":"3626:22:18"},"nodeType":"YulExpressionStatement","src":"3626:22:18"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"3596:6:18"},{"kind":"number","nodeType":"YulLiteral","src":"3604:18:18","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3593:2:18"},"nodeType":"YulFunctionCall","src":"3593:30:18"},"nodeType":"YulIf","src":"3590:2:18"},{"nodeType":"YulVariableDeclaration","src":"3659:32:18","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3673:9:18"},{"name":"offset","nodeType":"YulIdentifier","src":"3684:6:18"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3669:3:18"},"nodeType":"YulFunctionCall","src":"3669:22:18"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"3663:2:18","type":""}]},{"body":{"nodeType":"YulBlock","src":"3730:26:18","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3739:6:18"},{"name":"value0","nodeType":"YulIdentifier","src":"3747:6:18"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3732:6:18"},"nodeType":"YulFunctionCall","src":"3732:22:18"},"nodeType":"YulExpressionStatement","src":"3732:22:18"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3711:7:18"},{"name":"_1","nodeType":"YulIdentifier","src":"3720:2:18"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3707:3:18"},"nodeType":"YulFunctionCall","src":"3707:16:18"},{"kind":"number","nodeType":"YulLiteral","src":"3725:3:18","type":"","value":"448"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3703:3:18"},"nodeType":"YulFunctionCall","src":"3703:26:18"},"nodeType":"YulIf","src":"3700:2:18"},{"nodeType":"YulAssignment","src":"3765:12:18","value":{"name":"_1","nodeType":"YulIdentifier","src":"3775:2:18"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3765:6:18"}]}]},"name":"abi_decode_tuple_t_struct$_ConstructTokenURIParams_$2306_calldata_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3429:9:18","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3440:7:18","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3452:6:18","type":""}],"src":"3350:433:18"},{"body":{"nodeType":"YulBlock","src":"3899:1668:18","statements":[{"body":{"nodeType":"YulBlock","src":"3945:26:18","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3954:6:18"},{"name":"value0","nodeType":"YulIdentifier","src":"3962:6:18"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3947:6:18"},"nodeType":"YulFunctionCall","src":"3947:22:18"},"nodeType":"YulExpressionStatement","src":"3947:22:18"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3920:7:18"},{"name":"headStart","nodeType":"YulIdentifier","src":"3929:9:18"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3916:3:18"},"nodeType":"YulFunctionCall","src":"3916:23:18"},{"kind":"number","nodeType":"YulLiteral","src":"3941:2:18","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3912:3:18"},"nodeType":"YulFunctionCall","src":"3912:32:18"},"nodeType":"YulIf","src":"3909:2:18"},{"nodeType":"YulVariableDeclaration","src":"3980:37:18","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4007:9:18"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3994:12:18"},"nodeType":"YulFunctionCall","src":"3994:23:18"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"3984:6:18","type":""}]},{"nodeType":"YulVariableDeclaration","src":"4026:28:18","value":{"kind":"number","nodeType":"YulLiteral","src":"4036:18:18","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"4030:2:18","type":""}]},{"body":{"nodeType":"YulBlock","src":"4081:26:18","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4090:6:18"},{"name":"value0","nodeType":"YulIdentifier","src":"4098:6:18"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4083:6:18"},"nodeType":"YulFunctionCall","src":"4083:22:18"},"nodeType":"YulExpressionStatement","src":"4083:22:18"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"4069:6:18"},{"name":"_1","nodeType":"YulIdentifier","src":"4077:2:18"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"4066:2:18"},"nodeType":"YulFunctionCall","src":"4066:14:18"},"nodeType":"YulIf","src":"4063:2:18"},{"nodeType":"YulVariableDeclaration","src":"4116:32:18","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4130:9:18"},{"name":"offset","nodeType":"YulIdentifier","src":"4141:6:18"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4126:3:18"},"nodeType":"YulFunctionCall","src":"4126:22:18"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"4120:2:18","type":""}]},{"nodeType":"YulVariableDeclaration","src":"4157:16:18","value":{"kind":"number","nodeType":"YulLiteral","src":"4167:6:18","type":"","value":"0x01c0"},"variables":[{"name":"_3","nodeType":"YulTypedName","src":"4161:2:18","type":""}]},{"body":{"nodeType":"YulBlock","src":"4211:26:18","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4220:6:18"},{"name":"value0","nodeType":"YulIdentifier","src":"4228:6:18"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4213:6:18"},"nodeType":"YulFunctionCall","src":"4213:22:18"},"nodeType":"YulExpressionStatement","src":"4213:22:18"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"4193:7:18"},{"name":"_2","nodeType":"YulIdentifier","src":"4202:2:18"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4189:3:18"},"nodeType":"YulFunctionCall","src":"4189:16:18"},{"name":"_3","nodeType":"YulIdentifier","src":"4207:2:18"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"4185:3:18"},"nodeType":"YulFunctionCall","src":"4185:25:18"},"nodeType":"YulIf","src":"4182:2:18"},{"nodeType":"YulVariableDeclaration","src":"4246:31:18","value":{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"4274:2:18"}],"functionName":{"name":"allocateMemory","nodeType":"YulIdentifier","src":"4259:14:18"},"nodeType":"YulFunctionCall","src":"4259:18:18"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"4250:5:18","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4293:5:18"},{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"4313:2:18"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4300:12:18"},"nodeType":"YulFunctionCall","src":"4300:16:18"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4286:6:18"},"nodeType":"YulFunctionCall","src":"4286:31:18"},"nodeType":"YulExpressionStatement","src":"4286:31:18"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4337:5:18"},{"kind":"number","nodeType":"YulLiteral","src":"4344:2:18","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4333:3:18"},"nodeType":"YulFunctionCall","src":"4333:14:18"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"4374:2:18"},{"kind":"number","nodeType":"YulLiteral","src":"4378:2:18","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4370:3:18"},"nodeType":"YulFunctionCall","src":"4370:11:18"}],"functionName":{"name":"abi_decode_t_address","nodeType":"YulIdentifier","src":"4349:20:18"},"nodeType":"YulFunctionCall","src":"4349:33:18"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4326:6:18"},"nodeType":"YulFunctionCall","src":"4326:57:18"},"nodeType":"YulExpressionStatement","src":"4326:57:18"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4403:5:18"},{"kind":"number","nodeType":"YulLiteral","src":"4410:2:18","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4399:3:18"},"nodeType":"YulFunctionCall","src":"4399:14:18"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"4440:2:18"},{"kind":"number","nodeType":"YulLiteral","src":"4444:2:18","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4436:3:18"},"nodeType":"YulFunctionCall","src":"4436:11:18"}],"functionName":{"name":"abi_decode_t_address","nodeType":"YulIdentifier","src":"4415:20:18"},"nodeType":"YulFunctionCall","src":"4415:33:18"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4392:6:18"},"nodeType":"YulFunctionCall","src":"4392:57:18"},"nodeType":"YulExpressionStatement","src":"4392:57:18"},{"nodeType":"YulVariableDeclaration","src":"4458:41:18","value":{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"4491:2:18"},{"kind":"number","nodeType":"YulLiteral","src":"4495:2:18","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4487:3:18"},"nodeType":"YulFunctionCall","src":"4487:11:18"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4474:12:18"},"nodeType":"YulFunctionCall","src":"4474:25:18"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"4462:8:18","type":""}]},{"body":{"nodeType":"YulBlock","src":"4528:26:18","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4537:6:18"},{"name":"value0","nodeType":"YulIdentifier","src":"4545:6:18"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4530:6:18"},"nodeType":"YulFunctionCall","src":"4530:22:18"},"nodeType":"YulExpressionStatement","src":"4530:22:18"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"4514:8:18"},{"name":"_1","nodeType":"YulIdentifier","src":"4524:2:18"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"4511:2:18"},"nodeType":"YulFunctionCall","src":"4511:16:18"},"nodeType":"YulIf","src":"4508:2:18"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4574:5:18"},{"kind":"number","nodeType":"YulLiteral","src":"4581:2:18","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4570:3:18"},"nodeType":"YulFunctionCall","src":"4570:14:18"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"4610:2:18"},{"name":"offset_1","nodeType":"YulIdentifier","src":"4614:8:18"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4606:3:18"},"nodeType":"YulFunctionCall","src":"4606:17:18"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"4625:7:18"}],"functionName":{"name":"abi_decode_t_string","nodeType":"YulIdentifier","src":"4586:19:18"},"nodeType":"YulFunctionCall","src":"4586:47:18"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4563:6:18"},"nodeType":"YulFunctionCall","src":"4563:71:18"},"nodeType":"YulExpressionStatement","src":"4563:71:18"},{"nodeType":"YulVariableDeclaration","src":"4643:42:18","value":{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"4676:2:18"},{"kind":"number","nodeType":"YulLiteral","src":"4680:3:18","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4672:3:18"},"nodeType":"YulFunctionCall","src":"4672:12:18"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4659:12:18"},"nodeType":"YulFunctionCall","src":"4659:26:18"},"variables":[{"name":"offset_2","nodeType":"YulTypedName","src":"4647:8:18","type":""}]},{"body":{"nodeType":"YulBlock","src":"4714:26:18","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4723:6:18"},{"name":"value0","nodeType":"YulIdentifier","src":"4731:6:18"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4716:6:18"},"nodeType":"YulFunctionCall","src":"4716:22:18"},"nodeType":"YulExpressionStatement","src":"4716:22:18"}]},"condition":{"arguments":[{"name":"offset_2","nodeType":"YulIdentifier","src":"4700:8:18"},{"name":"_1","nodeType":"YulIdentifier","src":"4710:2:18"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"4697:2:18"},"nodeType":"YulFunctionCall","src":"4697:16:18"},"nodeType":"YulIf","src":"4694:2:18"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4760:5:18"},{"kind":"number","nodeType":"YulLiteral","src":"4767:3:18","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4756:3:18"},"nodeType":"YulFunctionCall","src":"4756:15:18"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"4797:2:18"},{"name":"offset_2","nodeType":"YulIdentifier","src":"4801:8:18"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4793:3:18"},"nodeType":"YulFunctionCall","src":"4793:17:18"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"4812:7:18"}],"functionName":{"name":"abi_decode_t_string","nodeType":"YulIdentifier","src":"4773:19:18"},"nodeType":"YulFunctionCall","src":"4773:47:18"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4749:6:18"},"nodeType":"YulFunctionCall","src":"4749:72:18"},"nodeType":"YulExpressionStatement","src":"4749:72:18"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4841:5:18"},{"kind":"number","nodeType":"YulLiteral","src":"4848:3:18","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4837:3:18"},"nodeType":"YulFunctionCall","src":"4837:15:18"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"4877:2:18"},{"kind":"number","nodeType":"YulLiteral","src":"4881:3:18","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4873:3:18"},"nodeType":"YulFunctionCall","src":"4873:12:18"}],"functionName":{"name":"abi_decode_t_uint8","nodeType":"YulIdentifier","src":"4854:18:18"},"nodeType":"YulFunctionCall","src":"4854:32:18"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4830:6:18"},"nodeType":"YulFunctionCall","src":"4830:57:18"},"nodeType":"YulExpressionStatement","src":"4830:57:18"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4907:5:18"},{"kind":"number","nodeType":"YulLiteral","src":"4914:3:18","type":"","value":"192"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4903:3:18"},"nodeType":"YulFunctionCall","src":"4903:15:18"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"4943:2:18"},{"kind":"number","nodeType":"YulLiteral","src":"4947:3:18","type":"","value":"192"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4939:3:18"},"nodeType":"YulFunctionCall","src":"4939:12:18"}],"functionName":{"name":"abi_decode_t_uint8","nodeType":"YulIdentifier","src":"4920:18:18"},"nodeType":"YulFunctionCall","src":"4920:32:18"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4896:6:18"},"nodeType":"YulFunctionCall","src":"4896:57:18"},"nodeType":"YulExpressionStatement","src":"4896:57:18"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4973:5:18"},{"kind":"number","nodeType":"YulLiteral","src":"4980:3:18","type":"","value":"224"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4969:3:18"},"nodeType":"YulFunctionCall","src":"4969:15:18"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"5008:2:18"},{"kind":"number","nodeType":"YulLiteral","src":"5012:3:18","type":"","value":"224"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5004:3:18"},"nodeType":"YulFunctionCall","src":"5004:12:18"}],"functionName":{"name":"abi_decode_t_bool","nodeType":"YulIdentifier","src":"4986:17:18"},"nodeType":"YulFunctionCall","src":"4986:31:18"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4962:6:18"},"nodeType":"YulFunctionCall","src":"4962:56:18"},"nodeType":"YulExpressionStatement","src":"4962:56:18"},{"nodeType":"YulVariableDeclaration","src":"5027:13:18","value":{"kind":"number","nodeType":"YulLiteral","src":"5037:3:18","type":"","value":"256"},"variables":[{"name":"_4","nodeType":"YulTypedName","src":"5031:2:18","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5060:5:18"},{"name":"_4","nodeType":"YulIdentifier","src":"5067:2:18"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5056:3:18"},"nodeType":"YulFunctionCall","src":"5056:14:18"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"5095:2:18"},{"name":"_4","nodeType":"YulIdentifier","src":"5099:2:18"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5091:3:18"},"nodeType":"YulFunctionCall","src":"5091:11:18"}],"functionName":{"name":"abi_decode_t_int24","nodeType":"YulIdentifier","src":"5072:18:18"},"nodeType":"YulFunctionCall","src":"5072:31:18"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5049:6:18"},"nodeType":"YulFunctionCall","src":"5049:55:18"},"nodeType":"YulExpressionStatement","src":"5049:55:18"},{"nodeType":"YulVariableDeclaration","src":"5113:13:18","value":{"kind":"number","nodeType":"YulLiteral","src":"5123:3:18","type":"","value":"288"},"variables":[{"name":"_5","nodeType":"YulTypedName","src":"5117:2:18","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5146:5:18"},{"name":"_5","nodeType":"YulIdentifier","src":"5153:2:18"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5142:3:18"},"nodeType":"YulFunctionCall","src":"5142:14:18"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"5181:2:18"},{"name":"_5","nodeType":"YulIdentifier","src":"5185:2:18"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5177:3:18"},"nodeType":"YulFunctionCall","src":"5177:11:18"}],"functionName":{"name":"abi_decode_t_int24","nodeType":"YulIdentifier","src":"5158:18:18"},"nodeType":"YulFunctionCall","src":"5158:31:18"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5135:6:18"},"nodeType":"YulFunctionCall","src":"5135:55:18"},"nodeType":"YulExpressionStatement","src":"5135:55:18"},{"nodeType":"YulVariableDeclaration","src":"5199:13:18","value":{"kind":"number","nodeType":"YulLiteral","src":"5209:3:18","type":"","value":"320"},"variables":[{"name":"_6","nodeType":"YulTypedName","src":"5203:2:18","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5232:5:18"},{"name":"_6","nodeType":"YulIdentifier","src":"5239:2:18"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5228:3:18"},"nodeType":"YulFunctionCall","src":"5228:14:18"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"5267:2:18"},{"name":"_6","nodeType":"YulIdentifier","src":"5271:2:18"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5263:3:18"},"nodeType":"YulFunctionCall","src":"5263:11:18"}],"functionName":{"name":"abi_decode_t_int24","nodeType":"YulIdentifier","src":"5244:18:18"},"nodeType":"YulFunctionCall","src":"5244:31:18"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5221:6:18"},"nodeType":"YulFunctionCall","src":"5221:55:18"},"nodeType":"YulExpressionStatement","src":"5221:55:18"},{"nodeType":"YulVariableDeclaration","src":"5285:13:18","value":{"kind":"number","nodeType":"YulLiteral","src":"5295:3:18","type":"","value":"352"},"variables":[{"name":"_7","nodeType":"YulTypedName","src":"5289:2:18","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5318:5:18"},{"name":"_7","nodeType":"YulIdentifier","src":"5325:2:18"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5314:3:18"},"nodeType":"YulFunctionCall","src":"5314:14:18"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"5353:2:18"},{"name":"_7","nodeType":"YulIdentifier","src":"5357:2:18"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5349:3:18"},"nodeType":"YulFunctionCall","src":"5349:11:18"}],"functionName":{"name":"abi_decode_t_int24","nodeType":"YulIdentifier","src":"5330:18:18"},"nodeType":"YulFunctionCall","src":"5330:31:18"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5307:6:18"},"nodeType":"YulFunctionCall","src":"5307:55:18"},"nodeType":"YulExpressionStatement","src":"5307:55:18"},{"nodeType":"YulVariableDeclaration","src":"5371:13:18","value":{"kind":"number","nodeType":"YulLiteral","src":"5381:3:18","type":"","value":"384"},"variables":[{"name":"_8","nodeType":"YulTypedName","src":"5375:2:18","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5404:5:18"},{"name":"_8","nodeType":"YulIdentifier","src":"5411:2:18"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5400:3:18"},"nodeType":"YulFunctionCall","src":"5400:14:18"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"5440:2:18"},{"name":"_8","nodeType":"YulIdentifier","src":"5444:2:18"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5436:3:18"},"nodeType":"YulFunctionCall","src":"5436:11:18"}],"functionName":{"name":"abi_decode_t_uint24","nodeType":"YulIdentifier","src":"5416:19:18"},"nodeType":"YulFunctionCall","src":"5416:32:18"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5393:6:18"},"nodeType":"YulFunctionCall","src":"5393:56:18"},"nodeType":"YulExpressionStatement","src":"5393:56:18"},{"nodeType":"YulVariableDeclaration","src":"5458:13:18","value":{"kind":"number","nodeType":"YulLiteral","src":"5468:3:18","type":"","value":"416"},"variables":[{"name":"_9","nodeType":"YulTypedName","src":"5462:2:18","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5491:5:18"},{"name":"_9","nodeType":"YulIdentifier","src":"5498:2:18"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5487:3:18"},"nodeType":"YulFunctionCall","src":"5487:14:18"},{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"5528:2:18"},{"name":"_9","nodeType":"YulIdentifier","src":"5532:2:18"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5524:3:18"},"nodeType":"YulFunctionCall","src":"5524:11:18"}],"functionName":{"name":"abi_decode_t_address","nodeType":"YulIdentifier","src":"5503:20:18"},"nodeType":"YulFunctionCall","src":"5503:33:18"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5480:6:18"},"nodeType":"YulFunctionCall","src":"5480:57:18"},"nodeType":"YulExpressionStatement","src":"5480:57:18"},{"nodeType":"YulAssignment","src":"5546:15:18","value":{"name":"value","nodeType":"YulIdentifier","src":"5556:5:18"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"5546:6:18"}]}]},"name":"abi_decode_tuple_t_struct$_ConstructTokenURIParams_$2306_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3865:9:18","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3876:7:18","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3888:6:18","type":""}],"src":"3788:1779:18"},{"body":{"nodeType":"YulBlock","src":"5672:303:18","statements":[{"body":{"nodeType":"YulBlock","src":"5718:26:18","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"5727:6:18"},{"name":"value0","nodeType":"YulIdentifier","src":"5735:6:18"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5720:6:18"},"nodeType":"YulFunctionCall","src":"5720:22:18"},"nodeType":"YulExpressionStatement","src":"5720:22:18"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"5693:7:18"},{"name":"headStart","nodeType":"YulIdentifier","src":"5702:9:18"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5689:3:18"},"nodeType":"YulFunctionCall","src":"5689:23:18"},{"kind":"number","nodeType":"YulLiteral","src":"5714:2:18","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"5685:3:18"},"nodeType":"YulFunctionCall","src":"5685:32:18"},"nodeType":"YulIf","src":"5682:2:18"},{"nodeType":"YulVariableDeclaration","src":"5753:36:18","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5779:9:18"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"5766:12:18"},"nodeType":"YulFunctionCall","src":"5766:23:18"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"5757:5:18","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5825:5:18"}],"functionName":{"name":"validator_revert_t_address","nodeType":"YulIdentifier","src":"5798:26:18"},"nodeType":"YulFunctionCall","src":"5798:33:18"},"nodeType":"YulExpressionStatement","src":"5798:33:18"},{"nodeType":"YulAssignment","src":"5840:15:18","value":{"name":"value","nodeType":"YulIdentifier","src":"5850:5:18"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"5840:6:18"}]},{"nodeType":"YulAssignment","src":"5864:48:18","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5897:9:18"},{"kind":"number","nodeType":"YulLiteral","src":"5908:2:18","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5893:3:18"},"nodeType":"YulFunctionCall","src":"5893:18:18"}],"functionName":{"name":"abi_decode_t_uint8","nodeType":"YulIdentifier","src":"5874:18:18"},"nodeType":"YulFunctionCall","src":"5874:38:18"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"5864:6:18"}]},{"nodeType":"YulAssignment","src":"5921:48:18","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5954:9:18"},{"kind":"number","nodeType":"YulLiteral","src":"5965:2:18","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5950:3:18"},"nodeType":"YulFunctionCall","src":"5950:18:18"}],"functionName":{"name":"abi_decode_t_uint8","nodeType":"YulIdentifier","src":"5931:18:18"},"nodeType":"YulFunctionCall","src":"5931:38:18"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"5921:6:18"}]}]},"name":"abi_decode_tuple_t_uint160t_uint8t_uint8","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5622:9:18","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"5633:7:18","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"5645:6:18","type":""},{"name":"value1","nodeType":"YulTypedName","src":"5653:6:18","type":""},{"name":"value2","nodeType":"YulTypedName","src":"5661:6:18","type":""}],"src":"5572:403:18"},{"body":{"nodeType":"YulBlock","src":"6049:127:18","statements":[{"body":{"nodeType":"YulBlock","src":"6095:26:18","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"6104:6:18"},{"name":"value0","nodeType":"YulIdentifier","src":"6112:6:18"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6097:6:18"},"nodeType":"YulFunctionCall","src":"6097:22:18"},"nodeType":"YulExpressionStatement","src":"6097:22:18"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"6070:7:18"},{"name":"headStart","nodeType":"YulIdentifier","src":"6079:9:18"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"6066:3:18"},"nodeType":"YulFunctionCall","src":"6066:23:18"},{"kind":"number","nodeType":"YulLiteral","src":"6091:2:18","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"6062:3:18"},"nodeType":"YulFunctionCall","src":"6062:32:18"},"nodeType":"YulIf","src":"6059:2:18"},{"nodeType":"YulAssignment","src":"6130:40:18","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6160:9:18"}],"functionName":{"name":"abi_decode_t_uint24","nodeType":"YulIdentifier","src":"6140:19:18"},"nodeType":"YulFunctionCall","src":"6140:30:18"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"6130:6:18"}]}]},"name":"abi_decode_tuple_t_uint24","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6015:9:18","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"6026:7:18","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"6038:6:18","type":""}],"src":"5980:196:18"},{"body":{"nodeType":"YulBlock","src":"6268:240:18","statements":[{"body":{"nodeType":"YulBlock","src":"6314:26:18","statements":[{"expression":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"6323:6:18"},{"name":"value0","nodeType":"YulIdentifier","src":"6331:6:18"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6316:6:18"},"nodeType":"YulFunctionCall","src":"6316:22:18"},"nodeType":"YulExpressionStatement","src":"6316:22:18"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"6289:7:18"},{"name":"headStart","nodeType":"YulIdentifier","src":"6298:9:18"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"6285:3:18"},"nodeType":"YulFunctionCall","src":"6285:23:18"},{"kind":"number","nodeType":"YulLiteral","src":"6310:2:18","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"6281:3:18"},"nodeType":"YulFunctionCall","src":"6281:32:18"},"nodeType":"YulIf","src":"6278:2:18"},{"nodeType":"YulAssignment","src":"6349:33:18","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6372:9:18"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"6359:12:18"},"nodeType":"YulFunctionCall","src":"6359:23:18"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"6349:6:18"}]},{"nodeType":"YulVariableDeclaration","src":"6391:45:18","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6421:9:18"},{"kind":"number","nodeType":"YulLiteral","src":"6432:2:18","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6417:3:18"},"nodeType":"YulFunctionCall","src":"6417:18:18"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"6404:12:18"},"nodeType":"YulFunctionCall","src":"6404:32:18"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"6395:5:18","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"6472:5:18"}],"functionName":{"name":"validator_revert_t_address","nodeType":"YulIdentifier","src":"6445:26:18"},"nodeType":"YulFunctionCall","src":"6445:33:18"},"nodeType":"YulExpressionStatement","src":"6445:33:18"},{"nodeType":"YulAssignment","src":"6487:15:18","value":{"name":"value","nodeType":"YulIdentifier","src":"6497:5:18"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"6487:6:18"}]}]},"name":"abi_decode_tuple_t_uint256t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6226:9:18","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"6237:7:18","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"6249:6:18","type":""},{"name":"value1","nodeType":"YulTypedName","src":"6257:6:18","type":""}],"src":"6181:327:18"},{"body":{"nodeType":"YulBlock","src":"6559:83:18","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"6576:3:18"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"6585:5:18"},{"kind":"number","nodeType":"YulLiteral","src":"6592:42:18","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"6581:3:18"},"nodeType":"YulFunctionCall","src":"6581:54:18"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6569:6:18"},"nodeType":"YulFunctionCall","src":"6569:67:18"},"nodeType":"YulExpressionStatement","src":"6569:67:18"}]},"name":"abi_encode_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"6543:5:18","type":""},{"name":"pos","nodeType":"YulTypedName","src":"6550:3:18","type":""}],"src":"6513:129:18"},{"body":{"nodeType":"YulBlock","src":"6690:50:18","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"6707:3:18"},{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"6726:5:18"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"6719:6:18"},"nodeType":"YulFunctionCall","src":"6719:13:18"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"6712:6:18"},"nodeType":"YulFunctionCall","src":"6712:21:18"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6700:6:18"},"nodeType":"YulFunctionCall","src":"6700:34:18"},"nodeType":"YulExpressionStatement","src":"6700:34:18"}]},"name":"abi_encode_t_bool","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"6674:5:18","type":""},{"name":"pos","nodeType":"YulTypedName","src":"6681:3:18","type":""}],"src":"6647:93:18"},{"body":{"nodeType":"YulBlock","src":"6789:49:18","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"6806:3:18"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6822:1:18","type":"","value":"2"},{"name":"value","nodeType":"YulIdentifier","src":"6825:5:18"}],"functionName":{"name":"signextend","nodeType":"YulIdentifier","src":"6811:10:18"},"nodeType":"YulFunctionCall","src":"6811:20:18"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6799:6:18"},"nodeType":"YulFunctionCall","src":"6799:33:18"},"nodeType":"YulExpressionStatement","src":"6799:33:18"}]},"name":"abi_encode_t_int24","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"6773:5:18","type":""},{"name":"pos","nodeType":"YulTypedName","src":"6780:3:18","type":""}],"src":"6745:93:18"},{"body":{"nodeType":"YulBlock","src":"6912:202:18","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"6929:3:18"},{"name":"length","nodeType":"YulIdentifier","src":"6934:6:18"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6922:6:18"},"nodeType":"YulFunctionCall","src":"6922:19:18"},"nodeType":"YulExpressionStatement","src":"6922:19:18"},{"expression":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"6967:3:18"},{"kind":"number","nodeType":"YulLiteral","src":"6972:4:18","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6963:3:18"},"nodeType":"YulFunctionCall","src":"6963:14:18"},{"name":"start","nodeType":"YulIdentifier","src":"6979:5:18"},{"name":"length","nodeType":"YulIdentifier","src":"6986:6:18"}],"functionName":{"name":"calldatacopy","nodeType":"YulIdentifier","src":"6950:12:18"},"nodeType":"YulFunctionCall","src":"6950:43:18"},"nodeType":"YulExpressionStatement","src":"6950:43:18"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"7017:3:18"},{"name":"length","nodeType":"YulIdentifier","src":"7022:6:18"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7013:3:18"},"nodeType":"YulFunctionCall","src":"7013:16:18"},{"kind":"number","nodeType":"YulLiteral","src":"7031:4:18","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7009:3:18"},"nodeType":"YulFunctionCall","src":"7009:27:18"},{"name":"end","nodeType":"YulIdentifier","src":"7038:3:18"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7002:6:18"},"nodeType":"YulFunctionCall","src":"7002:40:18"},"nodeType":"YulExpressionStatement","src":"7002:40:18"},{"nodeType":"YulAssignment","src":"7051:57:18","value":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"7066:3:18"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"7079:6:18"},{"kind":"number","nodeType":"YulLiteral","src":"7087:2:18","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7075:3:18"},"nodeType":"YulFunctionCall","src":"7075:15:18"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7096:2:18","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"7092:3:18"},"nodeType":"YulFunctionCall","src":"7092:7:18"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"7071:3:18"},"nodeType":"YulFunctionCall","src":"7071:29:18"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7062:3:18"},"nodeType":"YulFunctionCall","src":"7062:39:18"},{"kind":"number","nodeType":"YulLiteral","src":"7103:4:18","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7058:3:18"},"nodeType":"YulFunctionCall","src":"7058:50:18"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"7051:3:18"}]}]},"name":"abi_encode_t_string_calldata","nodeType":"YulFunctionDefinition","parameters":[{"name":"start","nodeType":"YulTypedName","src":"6881:5:18","type":""},{"name":"length","nodeType":"YulTypedName","src":"6888:6:18","type":""},{"name":"pos","nodeType":"YulTypedName","src":"6896:3:18","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"6904:3:18","type":""}],"src":"6843:271:18"},{"body":{"nodeType":"YulBlock","src":"7171:208:18","statements":[{"nodeType":"YulVariableDeclaration","src":"7181:26:18","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"7201:5:18"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"7195:5:18"},"nodeType":"YulFunctionCall","src":"7195:12:18"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"7185:6:18","type":""}]},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"7223:3:18"},{"name":"length","nodeType":"YulIdentifier","src":"7228:6:18"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7216:6:18"},"nodeType":"YulFunctionCall","src":"7216:19:18"},"nodeType":"YulExpressionStatement","src":"7216:19:18"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"7270:5:18"},{"kind":"number","nodeType":"YulLiteral","src":"7277:4:18","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7266:3:18"},"nodeType":"YulFunctionCall","src":"7266:16:18"},{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"7288:3:18"},{"kind":"number","nodeType":"YulLiteral","src":"7293:4:18","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7284:3:18"},"nodeType":"YulFunctionCall","src":"7284:14:18"},{"name":"length","nodeType":"YulIdentifier","src":"7300:6:18"}],"functionName":{"name":"copy_memory_to_memory","nodeType":"YulIdentifier","src":"7244:21:18"},"nodeType":"YulFunctionCall","src":"7244:63:18"},"nodeType":"YulExpressionStatement","src":"7244:63:18"},{"nodeType":"YulAssignment","src":"7316:57:18","value":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"7331:3:18"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"7344:6:18"},{"kind":"number","nodeType":"YulLiteral","src":"7352:2:18","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7340:3:18"},"nodeType":"YulFunctionCall","src":"7340:15:18"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7361:2:18","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"7357:3:18"},"nodeType":"YulFunctionCall","src":"7357:7:18"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"7336:3:18"},"nodeType":"YulFunctionCall","src":"7336:29:18"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7327:3:18"},"nodeType":"YulFunctionCall","src":"7327:39:18"},{"kind":"number","nodeType":"YulLiteral","src":"7368:4:18","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7323:3:18"},"nodeType":"YulFunctionCall","src":"7323:50:18"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"7316:3:18"}]}]},"name":"abi_encode_t_string","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"7148:5:18","type":""},{"name":"pos","nodeType":"YulTypedName","src":"7155:3:18","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"7163:3:18","type":""}],"src":"7119:260:18"},{"body":{"nodeType":"YulBlock","src":"7429:49:18","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"7446:3:18"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"7455:5:18"},{"kind":"number","nodeType":"YulLiteral","src":"7462:8:18","type":"","value":"0xffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"7451:3:18"},"nodeType":"YulFunctionCall","src":"7451:20:18"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7439:6:18"},"nodeType":"YulFunctionCall","src":"7439:33:18"},"nodeType":"YulExpressionStatement","src":"7439:33:18"}]},"name":"abi_encode_t_uint24","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"7413:5:18","type":""},{"name":"pos","nodeType":"YulTypedName","src":"7420:3:18","type":""}],"src":"7384:94:18"},{"body":{"nodeType":"YulBlock","src":"7527:33:18","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"7536:3:18"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"7545:5:18"},{"kind":"number","nodeType":"YulLiteral","src":"7552:4:18","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"7541:3:18"},"nodeType":"YulFunctionCall","src":"7541:16:18"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7529:6:18"},"nodeType":"YulFunctionCall","src":"7529:29:18"},"nodeType":"YulExpressionStatement","src":"7529:29:18"}]},"name":"abi_encode_t_uint8","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"7511:5:18","type":""},{"name":"pos","nodeType":"YulTypedName","src":"7518:3:18","type":""}],"src":"7483:77:18"},{"body":{"nodeType":"YulBlock","src":"7660:92:18","statements":[{"nodeType":"YulAssignment","src":"7670:26:18","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7682:9:18"},{"kind":"number","nodeType":"YulLiteral","src":"7693:2:18","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7678:3:18"},"nodeType":"YulFunctionCall","src":"7678:18:18"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7670:4:18"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7712:9:18"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"7737:6:18"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"7730:6:18"},"nodeType":"YulFunctionCall","src":"7730:14:18"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"7723:6:18"},"nodeType":"YulFunctionCall","src":"7723:22:18"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7705:6:18"},"nodeType":"YulFunctionCall","src":"7705:41:18"},"nodeType":"YulExpressionStatement","src":"7705:41:18"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7629:9:18","type":""},{"name":"value0","nodeType":"YulTypedName","src":"7640:6:18","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"7651:4:18","type":""}],"src":"7565:187:18"},{"body":{"nodeType":"YulBlock","src":"7878:101:18","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7895:9:18"},{"kind":"number","nodeType":"YulLiteral","src":"7906:2:18","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7888:6:18"},"nodeType":"YulFunctionCall","src":"7888:21:18"},"nodeType":"YulExpressionStatement","src":"7888:21:18"},{"nodeType":"YulAssignment","src":"7918:55:18","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"7946:6:18"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7958:9:18"},{"kind":"number","nodeType":"YulLiteral","src":"7969:2:18","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7954:3:18"},"nodeType":"YulFunctionCall","src":"7954:18:18"}],"functionName":{"name":"abi_encode_t_string","nodeType":"YulIdentifier","src":"7926:19:18"},"nodeType":"YulFunctionCall","src":"7926:47:18"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7918:4:18"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7847:9:18","type":""},{"name":"value0","nodeType":"YulTypedName","src":"7858:6:18","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"7869:4:18","type":""}],"src":"7757:222:18"},{"body":{"nodeType":"YulBlock","src":"8153:218:18","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8170:9:18"},{"kind":"number","nodeType":"YulLiteral","src":"8181:2:18","type":"","value":"64"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8163:6:18"},"nodeType":"YulFunctionCall","src":"8163:21:18"},"nodeType":"YulExpressionStatement","src":"8163:21:18"},{"nodeType":"YulVariableDeclaration","src":"8193:61:18","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"8227:6:18"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8239:9:18"},{"kind":"number","nodeType":"YulLiteral","src":"8250:2:18","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8235:3:18"},"nodeType":"YulFunctionCall","src":"8235:18:18"}],"functionName":{"name":"abi_encode_t_string","nodeType":"YulIdentifier","src":"8207:19:18"},"nodeType":"YulFunctionCall","src":"8207:47:18"},"variables":[{"name":"tail_1","nodeType":"YulTypedName","src":"8197:6:18","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8274:9:18"},{"kind":"number","nodeType":"YulLiteral","src":"8285:2:18","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8270:3:18"},"nodeType":"YulFunctionCall","src":"8270:18:18"},{"arguments":[{"name":"tail_1","nodeType":"YulIdentifier","src":"8294:6:18"},{"name":"headStart","nodeType":"YulIdentifier","src":"8302:9:18"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"8290:3:18"},"nodeType":"YulFunctionCall","src":"8290:22:18"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8263:6:18"},"nodeType":"YulFunctionCall","src":"8263:50:18"},"nodeType":"YulExpressionStatement","src":"8263:50:18"},{"nodeType":"YulAssignment","src":"8322:43:18","value":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"8350:6:18"},{"name":"tail_1","nodeType":"YulIdentifier","src":"8358:6:18"}],"functionName":{"name":"abi_encode_t_string","nodeType":"YulIdentifier","src":"8330:19:18"},"nodeType":"YulFunctionCall","src":"8330:35:18"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"8322:4:18"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8114:9:18","type":""},{"name":"value1","nodeType":"YulTypedName","src":"8125:6:18","type":""},{"name":"value0","nodeType":"YulTypedName","src":"8133:6:18","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"8144:4:18","type":""}],"src":"7984:387:18"},{"body":{"nodeType":"YulBlock","src":"8569:2066:18","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8586:9:18"},{"kind":"number","nodeType":"YulLiteral","src":"8597:2:18","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8579:6:18"},"nodeType":"YulFunctionCall","src":"8579:21:18"},"nodeType":"YulExpressionStatement","src":"8579:21:18"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8620:9:18"},{"kind":"number","nodeType":"YulLiteral","src":"8631:2:18","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8616:3:18"},"nodeType":"YulFunctionCall","src":"8616:18:18"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"8649:6:18"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"8636:12:18"},"nodeType":"YulFunctionCall","src":"8636:20:18"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8609:6:18"},"nodeType":"YulFunctionCall","src":"8609:48:18"},"nodeType":"YulExpressionStatement","src":"8609:48:18"},{"nodeType":"YulVariableDeclaration","src":"8666:50:18","value":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"8704:6:18"},{"kind":"number","nodeType":"YulLiteral","src":"8712:2:18","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8700:3:18"},"nodeType":"YulFunctionCall","src":"8700:15:18"}],"functionName":{"name":"abi_decode_t_address","nodeType":"YulIdentifier","src":"8679:20:18"},"nodeType":"YulFunctionCall","src":"8679:37:18"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"8670:5:18","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"8746:5:18"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8757:9:18"},{"kind":"number","nodeType":"YulLiteral","src":"8768:2:18","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8753:3:18"},"nodeType":"YulFunctionCall","src":"8753:18:18"}],"functionName":{"name":"abi_encode_t_address","nodeType":"YulIdentifier","src":"8725:20:18"},"nodeType":"YulFunctionCall","src":"8725:47:18"},"nodeType":"YulExpressionStatement","src":"8725:47:18"},{"nodeType":"YulVariableDeclaration","src":"8781:52:18","value":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"8821:6:18"},{"kind":"number","nodeType":"YulLiteral","src":"8829:2:18","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8817:3:18"},"nodeType":"YulFunctionCall","src":"8817:15:18"}],"functionName":{"name":"abi_decode_t_address","nodeType":"YulIdentifier","src":"8796:20:18"},"nodeType":"YulFunctionCall","src":"8796:37:18"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"8785:7:18","type":""}]},{"expression":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"8863:7:18"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8876:9:18"},{"kind":"number","nodeType":"YulLiteral","src":"8887:2:18","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8872:3:18"},"nodeType":"YulFunctionCall","src":"8872:18:18"}],"functionName":{"name":"abi_encode_t_address","nodeType":"YulIdentifier","src":"8842:20:18"},"nodeType":"YulFunctionCall","src":"8842:49:18"},"nodeType":"YulExpressionStatement","src":"8842:49:18"},{"nodeType":"YulVariableDeclaration","src":"8900:92:18","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"8968:6:18"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"8980:6:18"},{"kind":"number","nodeType":"YulLiteral","src":"8988:2:18","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8976:3:18"},"nodeType":"YulFunctionCall","src":"8976:15:18"}],"functionName":{"name":"calldata_access_t_string_calldata","nodeType":"YulIdentifier","src":"8934:33:18"},"nodeType":"YulFunctionCall","src":"8934:58:18"},"variables":[{"name":"memberValue0","nodeType":"YulTypedName","src":"8904:12:18","type":""},{"name":"memberValue1","nodeType":"YulTypedName","src":"8918:12:18","type":""}]},{"nodeType":"YulVariableDeclaration","src":"9001:16:18","value":{"kind":"number","nodeType":"YulLiteral","src":"9011:6:18","type":"","value":"0x01c0"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"9005:2:18","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9037:9:18"},{"kind":"number","nodeType":"YulLiteral","src":"9048:3:18","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9033:3:18"},"nodeType":"YulFunctionCall","src":"9033:19:18"},{"name":"_1","nodeType":"YulIdentifier","src":"9054:2:18"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9026:6:18"},"nodeType":"YulFunctionCall","src":"9026:31:18"},"nodeType":"YulExpressionStatement","src":"9026:31:18"},{"nodeType":"YulVariableDeclaration","src":"9066:91:18","value":{"arguments":[{"name":"memberValue0","nodeType":"YulIdentifier","src":"9109:12:18"},{"name":"memberValue1","nodeType":"YulIdentifier","src":"9123:12:18"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9141:9:18"},{"kind":"number","nodeType":"YulLiteral","src":"9152:3:18","type":"","value":"480"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9137:3:18"},"nodeType":"YulFunctionCall","src":"9137:19:18"}],"functionName":{"name":"abi_encode_t_string_calldata","nodeType":"YulIdentifier","src":"9080:28:18"},"nodeType":"YulFunctionCall","src":"9080:77:18"},"variables":[{"name":"tail_1","nodeType":"YulTypedName","src":"9070:6:18","type":""}]},{"nodeType":"YulVariableDeclaration","src":"9166:97:18","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"9238:6:18"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"9250:6:18"},{"kind":"number","nodeType":"YulLiteral","src":"9258:3:18","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9246:3:18"},"nodeType":"YulFunctionCall","src":"9246:16:18"}],"functionName":{"name":"calldata_access_t_string_calldata","nodeType":"YulIdentifier","src":"9204:33:18"},"nodeType":"YulFunctionCall","src":"9204:59:18"},"variables":[{"name":"memberValue0_1","nodeType":"YulTypedName","src":"9170:14:18","type":""},{"name":"memberValue1_1","nodeType":"YulTypedName","src":"9186:14:18","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9283:9:18"},{"kind":"number","nodeType":"YulLiteral","src":"9294:3:18","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9279:3:18"},"nodeType":"YulFunctionCall","src":"9279:19:18"},{"arguments":[{"arguments":[{"name":"tail_1","nodeType":"YulIdentifier","src":"9308:6:18"},{"name":"headStart","nodeType":"YulIdentifier","src":"9316:9:18"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"9304:3:18"},"nodeType":"YulFunctionCall","src":"9304:22:18"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9332:2:18","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"9328:3:18"},"nodeType":"YulFunctionCall","src":"9328:7:18"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9300:3:18"},"nodeType":"YulFunctionCall","src":"9300:36:18"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9272:6:18"},"nodeType":"YulFunctionCall","src":"9272:65:18"},"nodeType":"YulExpressionStatement","src":"9272:65:18"},{"nodeType":"YulVariableDeclaration","src":"9346:82:18","value":{"arguments":[{"name":"memberValue0_1","nodeType":"YulIdentifier","src":"9389:14:18"},{"name":"memberValue1_1","nodeType":"YulIdentifier","src":"9405:14:18"},{"name":"tail_1","nodeType":"YulIdentifier","src":"9421:6:18"}],"functionName":{"name":"abi_encode_t_string_calldata","nodeType":"YulIdentifier","src":"9360:28:18"},"nodeType":"YulFunctionCall","src":"9360:68:18"},"variables":[{"name":"tail_2","nodeType":"YulTypedName","src":"9350:6:18","type":""}]},{"nodeType":"YulVariableDeclaration","src":"9437:51:18","value":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"9475:6:18"},{"kind":"number","nodeType":"YulLiteral","src":"9483:3:18","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9471:3:18"},"nodeType":"YulFunctionCall","src":"9471:16:18"}],"functionName":{"name":"abi_decode_t_uint8","nodeType":"YulIdentifier","src":"9452:18:18"},"nodeType":"YulFunctionCall","src":"9452:36:18"},"variables":[{"name":"value_2","nodeType":"YulTypedName","src":"9441:7:18","type":""}]},{"expression":{"arguments":[{"name":"value_2","nodeType":"YulIdentifier","src":"9516:7:18"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9529:9:18"},{"kind":"number","nodeType":"YulLiteral","src":"9540:3:18","type":"","value":"192"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9525:3:18"},"nodeType":"YulFunctionCall","src":"9525:19:18"}],"functionName":{"name":"abi_encode_t_uint8","nodeType":"YulIdentifier","src":"9497:18:18"},"nodeType":"YulFunctionCall","src":"9497:48:18"},"nodeType":"YulExpressionStatement","src":"9497:48:18"},{"nodeType":"YulVariableDeclaration","src":"9554:51:18","value":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"9592:6:18"},{"kind":"number","nodeType":"YulLiteral","src":"9600:3:18","type":"","value":"192"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9588:3:18"},"nodeType":"YulFunctionCall","src":"9588:16:18"}],"functionName":{"name":"abi_decode_t_uint8","nodeType":"YulIdentifier","src":"9569:18:18"},"nodeType":"YulFunctionCall","src":"9569:36:18"},"variables":[{"name":"value_3","nodeType":"YulTypedName","src":"9558:7:18","type":""}]},{"expression":{"arguments":[{"name":"value_3","nodeType":"YulIdentifier","src":"9633:7:18"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9646:9:18"},{"kind":"number","nodeType":"YulLiteral","src":"9657:3:18","type":"","value":"224"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9642:3:18"},"nodeType":"YulFunctionCall","src":"9642:19:18"}],"functionName":{"name":"abi_encode_t_uint8","nodeType":"YulIdentifier","src":"9614:18:18"},"nodeType":"YulFunctionCall","src":"9614:48:18"},"nodeType":"YulExpressionStatement","src":"9614:48:18"},{"nodeType":"YulVariableDeclaration","src":"9671:50:18","value":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"9708:6:18"},{"kind":"number","nodeType":"YulLiteral","src":"9716:3:18","type":"","value":"224"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9704:3:18"},"nodeType":"YulFunctionCall","src":"9704:16:18"}],"functionName":{"name":"abi_decode_t_bool","nodeType":"YulIdentifier","src":"9686:17:18"},"nodeType":"YulFunctionCall","src":"9686:35:18"},"variables":[{"name":"value_4","nodeType":"YulTypedName","src":"9675:7:18","type":""}]},{"nodeType":"YulVariableDeclaration","src":"9730:13:18","value":{"kind":"number","nodeType":"YulLiteral","src":"9740:3:18","type":"","value":"256"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"9734:2:18","type":""}]},{"expression":{"arguments":[{"name":"value_4","nodeType":"YulIdentifier","src":"9770:7:18"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9783:9:18"},{"name":"_2","nodeType":"YulIdentifier","src":"9794:2:18"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9779:3:18"},"nodeType":"YulFunctionCall","src":"9779:18:18"}],"functionName":{"name":"abi_encode_t_bool","nodeType":"YulIdentifier","src":"9752:17:18"},"nodeType":"YulFunctionCall","src":"9752:46:18"},"nodeType":"YulExpressionStatement","src":"9752:46:18"},{"nodeType":"YulVariableDeclaration","src":"9807:50:18","value":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"9845:6:18"},{"name":"_2","nodeType":"YulIdentifier","src":"9853:2:18"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9841:3:18"},"nodeType":"YulFunctionCall","src":"9841:15:18"}],"functionName":{"name":"abi_decode_t_int24","nodeType":"YulIdentifier","src":"9822:18:18"},"nodeType":"YulFunctionCall","src":"9822:35:18"},"variables":[{"name":"value_5","nodeType":"YulTypedName","src":"9811:7:18","type":""}]},{"nodeType":"YulVariableDeclaration","src":"9866:13:18","value":{"kind":"number","nodeType":"YulLiteral","src":"9876:3:18","type":"","value":"288"},"variables":[{"name":"_3","nodeType":"YulTypedName","src":"9870:2:18","type":""}]},{"expression":{"arguments":[{"name":"value_5","nodeType":"YulIdentifier","src":"9907:7:18"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9920:9:18"},{"name":"_3","nodeType":"YulIdentifier","src":"9931:2:18"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9916:3:18"},"nodeType":"YulFunctionCall","src":"9916:18:18"}],"functionName":{"name":"abi_encode_t_int24","nodeType":"YulIdentifier","src":"9888:18:18"},"nodeType":"YulFunctionCall","src":"9888:47:18"},"nodeType":"YulExpressionStatement","src":"9888:47:18"},{"nodeType":"YulVariableDeclaration","src":"9944:50:18","value":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"9982:6:18"},{"name":"_3","nodeType":"YulIdentifier","src":"9990:2:18"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9978:3:18"},"nodeType":"YulFunctionCall","src":"9978:15:18"}],"functionName":{"name":"abi_decode_t_int24","nodeType":"YulIdentifier","src":"9959:18:18"},"nodeType":"YulFunctionCall","src":"9959:35:18"},"variables":[{"name":"value_6","nodeType":"YulTypedName","src":"9948:7:18","type":""}]},{"nodeType":"YulVariableDeclaration","src":"10003:13:18","value":{"kind":"number","nodeType":"YulLiteral","src":"10013:3:18","type":"","value":"320"},"variables":[{"name":"_4","nodeType":"YulTypedName","src":"10007:2:18","type":""}]},{"expression":{"arguments":[{"name":"value_6","nodeType":"YulIdentifier","src":"10044:7:18"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10057:9:18"},{"name":"_4","nodeType":"YulIdentifier","src":"10068:2:18"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10053:3:18"},"nodeType":"YulFunctionCall","src":"10053:18:18"}],"functionName":{"name":"abi_encode_t_int24","nodeType":"YulIdentifier","src":"10025:18:18"},"nodeType":"YulFunctionCall","src":"10025:47:18"},"nodeType":"YulExpressionStatement","src":"10025:47:18"},{"nodeType":"YulVariableDeclaration","src":"10081:50:18","value":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"10119:6:18"},{"name":"_4","nodeType":"YulIdentifier","src":"10127:2:18"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10115:3:18"},"nodeType":"YulFunctionCall","src":"10115:15:18"}],"functionName":{"name":"abi_decode_t_int24","nodeType":"YulIdentifier","src":"10096:18:18"},"nodeType":"YulFunctionCall","src":"10096:35:18"},"variables":[{"name":"value_7","nodeType":"YulTypedName","src":"10085:7:18","type":""}]},{"nodeType":"YulVariableDeclaration","src":"10140:13:18","value":{"kind":"number","nodeType":"YulLiteral","src":"10150:3:18","type":"","value":"352"},"variables":[{"name":"_5","nodeType":"YulTypedName","src":"10144:2:18","type":""}]},{"expression":{"arguments":[{"name":"value_7","nodeType":"YulIdentifier","src":"10181:7:18"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10194:9:18"},{"name":"_5","nodeType":"YulIdentifier","src":"10205:2:18"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10190:3:18"},"nodeType":"YulFunctionCall","src":"10190:18:18"}],"functionName":{"name":"abi_encode_t_int24","nodeType":"YulIdentifier","src":"10162:18:18"},"nodeType":"YulFunctionCall","src":"10162:47:18"},"nodeType":"YulExpressionStatement","src":"10162:47:18"},{"nodeType":"YulVariableDeclaration","src":"10218:50:18","value":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"10256:6:18"},{"name":"_5","nodeType":"YulIdentifier","src":"10264:2:18"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10252:3:18"},"nodeType":"YulFunctionCall","src":"10252:15:18"}],"functionName":{"name":"abi_decode_t_int24","nodeType":"YulIdentifier","src":"10233:18:18"},"nodeType":"YulFunctionCall","src":"10233:35:18"},"variables":[{"name":"value_8","nodeType":"YulTypedName","src":"10222:7:18","type":""}]},{"nodeType":"YulVariableDeclaration","src":"10277:13:18","value":{"kind":"number","nodeType":"YulLiteral","src":"10287:3:18","type":"","value":"384"},"variables":[{"name":"_6","nodeType":"YulTypedName","src":"10281:2:18","type":""}]},{"expression":{"arguments":[{"name":"value_8","nodeType":"YulIdentifier","src":"10318:7:18"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10331:9:18"},{"name":"_6","nodeType":"YulIdentifier","src":"10342:2:18"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10327:3:18"},"nodeType":"YulFunctionCall","src":"10327:18:18"}],"functionName":{"name":"abi_encode_t_int24","nodeType":"YulIdentifier","src":"10299:18:18"},"nodeType":"YulFunctionCall","src":"10299:47:18"},"nodeType":"YulExpressionStatement","src":"10299:47:18"},{"nodeType":"YulVariableDeclaration","src":"10355:51:18","value":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"10394:6:18"},{"name":"_6","nodeType":"YulIdentifier","src":"10402:2:18"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10390:3:18"},"nodeType":"YulFunctionCall","src":"10390:15:18"}],"functionName":{"name":"abi_decode_t_uint24","nodeType":"YulIdentifier","src":"10370:19:18"},"nodeType":"YulFunctionCall","src":"10370:36:18"},"variables":[{"name":"value_9","nodeType":"YulTypedName","src":"10359:7:18","type":""}]},{"nodeType":"YulVariableDeclaration","src":"10415:13:18","value":{"kind":"number","nodeType":"YulLiteral","src":"10425:3:18","type":"","value":"416"},"variables":[{"name":"_7","nodeType":"YulTypedName","src":"10419:2:18","type":""}]},{"expression":{"arguments":[{"name":"value_9","nodeType":"YulIdentifier","src":"10457:7:18"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10470:9:18"},{"name":"_7","nodeType":"YulIdentifier","src":"10481:2:18"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10466:3:18"},"nodeType":"YulFunctionCall","src":"10466:18:18"}],"functionName":{"name":"abi_encode_t_uint24","nodeType":"YulIdentifier","src":"10437:19:18"},"nodeType":"YulFunctionCall","src":"10437:48:18"},"nodeType":"YulExpressionStatement","src":"10437:48:18"},{"nodeType":"YulVariableDeclaration","src":"10494:53:18","value":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"10535:6:18"},{"name":"_7","nodeType":"YulIdentifier","src":"10543:2:18"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10531:3:18"},"nodeType":"YulFunctionCall","src":"10531:15:18"}],"functionName":{"name":"abi_decode_t_address","nodeType":"YulIdentifier","src":"10510:20:18"},"nodeType":"YulFunctionCall","src":"10510:37:18"},"variables":[{"name":"value_10","nodeType":"YulTypedName","src":"10498:8:18","type":""}]},{"expression":{"arguments":[{"name":"value_10","nodeType":"YulIdentifier","src":"10577:8:18"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10591:9:18"},{"name":"_1","nodeType":"YulIdentifier","src":"10602:2:18"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10587:3:18"},"nodeType":"YulFunctionCall","src":"10587:18:18"}],"functionName":{"name":"abi_encode_t_address","nodeType":"YulIdentifier","src":"10556:20:18"},"nodeType":"YulFunctionCall","src":"10556:50:18"},"nodeType":"YulExpressionStatement","src":"10556:50:18"},{"nodeType":"YulAssignment","src":"10615:14:18","value":{"name":"tail_2","nodeType":"YulIdentifier","src":"10623:6:18"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"10615:4:18"}]}]},"name":"abi_encode_tuple_t_struct$_ConstructTokenURIParams_$2306_calldata_ptr__to_t_struct$_ConstructTokenURIParams_$2306_memory_ptr__fromStack_library_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8538:9:18","type":""},{"name":"value0","nodeType":"YulTypedName","src":"8549:6:18","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"8560:4:18","type":""}],"src":"8376:2259:18"},{"body":{"nodeType":"YulBlock","src":"10741:76:18","statements":[{"nodeType":"YulAssignment","src":"10751:26:18","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10763:9:18"},{"kind":"number","nodeType":"YulLiteral","src":"10774:2:18","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10759:3:18"},"nodeType":"YulFunctionCall","src":"10759:18:18"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"10751:4:18"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10793:9:18"},{"name":"value0","nodeType":"YulIdentifier","src":"10804:6:18"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10786:6:18"},"nodeType":"YulFunctionCall","src":"10786:25:18"},"nodeType":"YulExpressionStatement","src":"10786:25:18"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10710:9:18","type":""},{"name":"value0","nodeType":"YulTypedName","src":"10721:6:18","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"10732:4:18","type":""}],"src":"10640:177:18"},{"body":{"nodeType":"YulBlock","src":"10866:198:18","statements":[{"nodeType":"YulAssignment","src":"10876:19:18","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10892:2:18","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"10886:5:18"},"nodeType":"YulFunctionCall","src":"10886:9:18"},"variableNames":[{"name":"memPtr","nodeType":"YulIdentifier","src":"10876:6:18"}]},{"nodeType":"YulVariableDeclaration","src":"10904:35:18","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"10926:6:18"},{"name":"size","nodeType":"YulIdentifier","src":"10934:4:18"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10922:3:18"},"nodeType":"YulFunctionCall","src":"10922:17:18"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"10908:10:18","type":""}]},{"body":{"nodeType":"YulBlock","src":"11014:13:18","statements":[{"expression":{"arguments":[],"functionName":{"name":"invalid","nodeType":"YulIdentifier","src":"11016:7:18"},"nodeType":"YulFunctionCall","src":"11016:9:18"},"nodeType":"YulExpressionStatement","src":"11016:9:18"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"10957:10:18"},{"kind":"number","nodeType":"YulLiteral","src":"10969:18:18","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"10954:2:18"},"nodeType":"YulFunctionCall","src":"10954:34:18"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"10993:10:18"},{"name":"memPtr","nodeType":"YulIdentifier","src":"11005:6:18"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"10990:2:18"},"nodeType":"YulFunctionCall","src":"10990:22:18"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"10951:2:18"},"nodeType":"YulFunctionCall","src":"10951:62:18"},"nodeType":"YulIf","src":"10948:2:18"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"11043:2:18","type":"","value":"64"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"11047:10:18"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11036:6:18"},"nodeType":"YulFunctionCall","src":"11036:22:18"},"nodeType":"YulExpressionStatement","src":"11036:22:18"}]},"name":"allocateMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"size","nodeType":"YulTypedName","src":"10846:4:18","type":""}],"returnVariables":[{"name":"memPtr","nodeType":"YulTypedName","src":"10855:6:18","type":""}],"src":"10822:242:18"},{"body":{"nodeType":"YulBlock","src":"11129:122:18","statements":[{"body":{"nodeType":"YulBlock","src":"11173:13:18","statements":[{"expression":{"arguments":[],"functionName":{"name":"invalid","nodeType":"YulIdentifier","src":"11175:7:18"},"nodeType":"YulFunctionCall","src":"11175:9:18"},"nodeType":"YulExpressionStatement","src":"11175:9:18"}]},"condition":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"11145:6:18"},{"kind":"number","nodeType":"YulLiteral","src":"11153:18:18","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"11142:2:18"},"nodeType":"YulFunctionCall","src":"11142:30:18"},"nodeType":"YulIf","src":"11139:2:18"},{"nodeType":"YulAssignment","src":"11195:50:18","value":{"arguments":[{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"11215:6:18"},{"kind":"number","nodeType":"YulLiteral","src":"11223:4:18","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11211:3:18"},"nodeType":"YulFunctionCall","src":"11211:17:18"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"11234:2:18","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"11230:3:18"},"nodeType":"YulFunctionCall","src":"11230:7:18"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"11207:3:18"},"nodeType":"YulFunctionCall","src":"11207:31:18"},{"kind":"number","nodeType":"YulLiteral","src":"11240:4:18","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11203:3:18"},"nodeType":"YulFunctionCall","src":"11203:42:18"},"variableNames":[{"name":"size","nodeType":"YulIdentifier","src":"11195:4:18"}]}]},"name":"array_allocation_size_t_string","nodeType":"YulFunctionDefinition","parameters":[{"name":"length","nodeType":"YulTypedName","src":"11109:6:18","type":""}],"returnVariables":[{"name":"size","nodeType":"YulTypedName","src":"11120:4:18","type":""}],"src":"11069:182:18"},{"body":{"nodeType":"YulBlock","src":"11335:435:18","statements":[{"nodeType":"YulVariableDeclaration","src":"11345:43:18","value":{"arguments":[{"name":"ptr","nodeType":"YulIdentifier","src":"11384:3:18"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"11371:12:18"},"nodeType":"YulFunctionCall","src":"11371:17:18"},"variables":[{"name":"rel_offset_of_tail","nodeType":"YulTypedName","src":"11349:18:18","type":""}]},{"body":{"nodeType":"YulBlock","src":"11477:24:18","statements":[{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"11486:5:18"},{"name":"value","nodeType":"YulIdentifier","src":"11493:5:18"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"11479:6:18"},"nodeType":"YulFunctionCall","src":"11479:20:18"},"nodeType":"YulExpressionStatement","src":"11479:20:18"}]},"condition":{"arguments":[{"arguments":[{"name":"rel_offset_of_tail","nodeType":"YulIdentifier","src":"11411:18:18"},{"arguments":[{"arguments":[{"arguments":[],"functionName":{"name":"calldatasize","nodeType":"YulIdentifier","src":"11439:12:18"},"nodeType":"YulFunctionCall","src":"11439:14:18"},{"name":"base_ref","nodeType":"YulIdentifier","src":"11455:8:18"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"11435:3:18"},"nodeType":"YulFunctionCall","src":"11435:29:18"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"11470:2:18","type":"","value":"30"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"11466:3:18"},"nodeType":"YulFunctionCall","src":"11466:7:18"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11431:3:18"},"nodeType":"YulFunctionCall","src":"11431:43:18"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"11407:3:18"},"nodeType":"YulFunctionCall","src":"11407:68:18"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"11400:6:18"},"nodeType":"YulFunctionCall","src":"11400:76:18"},"nodeType":"YulIf","src":"11397:2:18"},{"nodeType":"YulVariableDeclaration","src":"11510:48:18","value":{"arguments":[{"name":"rel_offset_of_tail","nodeType":"YulIdentifier","src":"11529:18:18"},{"name":"base_ref","nodeType":"YulIdentifier","src":"11549:8:18"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11525:3:18"},"nodeType":"YulFunctionCall","src":"11525:33:18"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"11514:7:18","type":""}]},{"nodeType":"YulAssignment","src":"11567:31:18","value":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"11590:7:18"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"11577:12:18"},"nodeType":"YulFunctionCall","src":"11577:21:18"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"11567:6:18"}]},{"nodeType":"YulAssignment","src":"11607:27:18","value":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"11620:7:18"},{"kind":"number","nodeType":"YulLiteral","src":"11629:4:18","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11616:3:18"},"nodeType":"YulFunctionCall","src":"11616:18:18"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"11607:5:18"}]},{"body":{"nodeType":"YulBlock","src":"11677:16:18","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"11686:1:18","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"11689:1:18","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"11679:6:18"},"nodeType":"YulFunctionCall","src":"11679:12:18"},"nodeType":"YulExpressionStatement","src":"11679:12:18"}]},"condition":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"11649:6:18"},{"kind":"number","nodeType":"YulLiteral","src":"11657:18:18","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"11646:2:18"},"nodeType":"YulFunctionCall","src":"11646:30:18"},"nodeType":"YulIf","src":"11643:2:18"},{"body":{"nodeType":"YulBlock","src":"11748:16:18","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"11757:1:18","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"11760:1:18","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"11750:6:18"},"nodeType":"YulFunctionCall","src":"11750:12:18"},"nodeType":"YulExpressionStatement","src":"11750:12:18"}]},"condition":{"arguments":[{"name":"base_ref","nodeType":"YulIdentifier","src":"11709:8:18"},{"arguments":[{"arguments":[],"functionName":{"name":"calldatasize","nodeType":"YulIdentifier","src":"11723:12:18"},"nodeType":"YulFunctionCall","src":"11723:14:18"},{"name":"length","nodeType":"YulIdentifier","src":"11739:6:18"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"11719:3:18"},"nodeType":"YulFunctionCall","src":"11719:27:18"}],"functionName":{"name":"sgt","nodeType":"YulIdentifier","src":"11705:3:18"},"nodeType":"YulFunctionCall","src":"11705:42:18"},"nodeType":"YulIf","src":"11702:2:18"}]},"name":"calldata_access_t_string_calldata","nodeType":"YulFunctionDefinition","parameters":[{"name":"base_ref","nodeType":"YulTypedName","src":"11299:8:18","type":""},{"name":"ptr","nodeType":"YulTypedName","src":"11309:3:18","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"11317:5:18","type":""},{"name":"length","nodeType":"YulTypedName","src":"11324:6:18","type":""}],"src":"11256:514:18"},{"body":{"nodeType":"YulBlock","src":"11828:205:18","statements":[{"nodeType":"YulVariableDeclaration","src":"11838:10:18","value":{"kind":"number","nodeType":"YulLiteral","src":"11847:1:18","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"11842:1:18","type":""}]},{"body":{"nodeType":"YulBlock","src":"11907:63:18","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"11932:3:18"},{"name":"i","nodeType":"YulIdentifier","src":"11937:1:18"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11928:3:18"},"nodeType":"YulFunctionCall","src":"11928:11:18"},{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"11951:3:18"},{"name":"i","nodeType":"YulIdentifier","src":"11956:1:18"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11947:3:18"},"nodeType":"YulFunctionCall","src":"11947:11:18"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"11941:5:18"},"nodeType":"YulFunctionCall","src":"11941:18:18"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11921:6:18"},"nodeType":"YulFunctionCall","src":"11921:39:18"},"nodeType":"YulExpressionStatement","src":"11921:39:18"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"11868:1:18"},{"name":"length","nodeType":"YulIdentifier","src":"11871:6:18"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"11865:2:18"},"nodeType":"YulFunctionCall","src":"11865:13:18"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"11879:19:18","statements":[{"nodeType":"YulAssignment","src":"11881:15:18","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"11890:1:18"},{"kind":"number","nodeType":"YulLiteral","src":"11893:2:18","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11886:3:18"},"nodeType":"YulFunctionCall","src":"11886:10:18"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"11881:1:18"}]}]},"pre":{"nodeType":"YulBlock","src":"11861:3:18","statements":[]},"src":"11857:113:18"},{"body":{"nodeType":"YulBlock","src":"11996:31:18","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"12009:3:18"},{"name":"length","nodeType":"YulIdentifier","src":"12014:6:18"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12005:3:18"},"nodeType":"YulFunctionCall","src":"12005:16:18"},{"kind":"number","nodeType":"YulLiteral","src":"12023:1:18","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11998:6:18"},"nodeType":"YulFunctionCall","src":"11998:27:18"},"nodeType":"YulExpressionStatement","src":"11998:27:18"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"11985:1:18"},{"name":"length","nodeType":"YulIdentifier","src":"11988:6:18"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"11982:2:18"},"nodeType":"YulFunctionCall","src":"11982:13:18"},"nodeType":"YulIf","src":"11979:2:18"}]},"name":"copy_memory_to_memory","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nodeType":"YulTypedName","src":"11806:3:18","type":""},{"name":"dst","nodeType":"YulTypedName","src":"11811:3:18","type":""},{"name":"length","nodeType":"YulTypedName","src":"11816:6:18","type":""}],"src":"11775:258:18"},{"body":{"nodeType":"YulBlock","src":"12085:109:18","statements":[{"body":{"nodeType":"YulBlock","src":"12172:16:18","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12181:1:18","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"12184:1:18","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"12174:6:18"},"nodeType":"YulFunctionCall","src":"12174:12:18"},"nodeType":"YulExpressionStatement","src":"12174:12:18"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"12108:5:18"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"12119:5:18"},{"kind":"number","nodeType":"YulLiteral","src":"12126:42:18","type":"","value":"0xffffffffffffffffffffffffffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"12115:3:18"},"nodeType":"YulFunctionCall","src":"12115:54:18"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"12105:2:18"},"nodeType":"YulFunctionCall","src":"12105:65:18"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"12098:6:18"},"nodeType":"YulFunctionCall","src":"12098:73:18"},"nodeType":"YulIf","src":"12095:2:18"}]},"name":"validator_revert_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"12074:5:18","type":""}],"src":"12038:156:18"}]},"contents":"{\n    { }\n    function abi_decode_t_address(offset) -> value\n    {\n        value := calldataload(offset)\n        validator_revert_t_address(value)\n    }\n    function abi_decode_t_bool(offset) -> value\n    {\n        value := calldataload(offset)\n        if iszero(eq(value, iszero(iszero(value)))) { revert(0, 0) }\n    }\n    function abi_decode_t_int24(offset) -> value\n    {\n        value := calldataload(offset)\n        if iszero(eq(value, signextend(2, value))) { revert(0, 0) }\n    }\n    function abi_decode_t_string(offset, end) -> array\n    {\n        if iszero(slt(add(offset, 0x1f), end)) { revert(array, array) }\n        let _1 := calldataload(offset)\n        let array_1 := allocateMemory(array_allocation_size_t_string(_1))\n        mstore(array_1, _1)\n        if gt(add(add(offset, _1), 0x20), end) { revert(array, array) }\n        calldatacopy(add(array_1, 0x20), add(offset, 0x20), _1)\n        mstore(add(add(array_1, _1), 0x20), array)\n        array := array_1\n    }\n    function abi_decode_t_uint24(offset) -> value\n    {\n        value := calldataload(offset)\n        if iszero(eq(value, and(value, 0xffffff))) { revert(0, 0) }\n    }\n    function abi_decode_t_uint8(offset) -> value\n    {\n        value := calldataload(offset)\n        if iszero(eq(value, and(value, 0xff))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n        let value := calldataload(headStart)\n        validator_revert_t_address(value)\n        value0 := value\n    }\n    function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(value1, value1) }\n        let value := calldataload(headStart)\n        validator_revert_t_address(value)\n        value0 := value\n        value1 := calldataload(add(headStart, 32))\n    }\n    function abi_decode_tuple_t_int24t_int24(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(value0, value0) }\n        value0 := abi_decode_t_int24(headStart)\n        value1 := abi_decode_t_int24(add(headStart, 32))\n    }\n    function abi_decode_tuple_t_int24t_int24t_uint8t_uint8t_bool(headStart, dataEnd) -> value0, value1, value2, value3, value4\n    {\n        if slt(sub(dataEnd, headStart), 160) { revert(value4, value4) }\n        value0 := abi_decode_t_int24(headStart)\n        value1 := abi_decode_t_int24(add(headStart, 32))\n        value2 := abi_decode_t_uint8(add(headStart, 64))\n        value3 := abi_decode_t_uint8(add(headStart, 96))\n        value4 := abi_decode_t_bool(add(headStart, 128))\n    }\n    function abi_decode_tuple_t_string_memory_ptr_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n        let offset := mload(headStart)\n        if gt(offset, 0xffffffffffffffff) { revert(value0, value0) }\n        let _1 := add(headStart, offset)\n        if iszero(slt(add(_1, 0x1f), dataEnd)) { revert(value0, value0) }\n        let _2 := mload(_1)\n        let array := allocateMemory(array_allocation_size_t_string(_2))\n        mstore(array, _2)\n        if gt(add(add(_1, _2), 32), dataEnd) { revert(value0, value0) }\n        copy_memory_to_memory(add(_1, 32), add(array, 32), _2)\n        value0 := array\n    }\n    function abi_decode_tuple_t_struct$_ConstructTokenURIParams_$2306_calldata_ptr(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n        let offset := calldataload(headStart)\n        if gt(offset, 0xffffffffffffffff) { revert(value0, value0) }\n        let _1 := add(headStart, offset)\n        if slt(sub(dataEnd, _1), 448) { revert(value0, value0) }\n        value0 := _1\n    }\n    function abi_decode_tuple_t_struct$_ConstructTokenURIParams_$2306_memory_ptr(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n        let offset := calldataload(headStart)\n        let _1 := 0xffffffffffffffff\n        if gt(offset, _1) { revert(value0, value0) }\n        let _2 := add(headStart, offset)\n        let _3 := 0x01c0\n        if slt(sub(dataEnd, _2), _3) { revert(value0, value0) }\n        let value := allocateMemory(_3)\n        mstore(value, calldataload(_2))\n        mstore(add(value, 32), abi_decode_t_address(add(_2, 32)))\n        mstore(add(value, 64), abi_decode_t_address(add(_2, 64)))\n        let offset_1 := calldataload(add(_2, 96))\n        if gt(offset_1, _1) { revert(value0, value0) }\n        mstore(add(value, 96), abi_decode_t_string(add(_2, offset_1), dataEnd))\n        let offset_2 := calldataload(add(_2, 128))\n        if gt(offset_2, _1) { revert(value0, value0) }\n        mstore(add(value, 128), abi_decode_t_string(add(_2, offset_2), dataEnd))\n        mstore(add(value, 160), abi_decode_t_uint8(add(_2, 160)))\n        mstore(add(value, 192), abi_decode_t_uint8(add(_2, 192)))\n        mstore(add(value, 224), abi_decode_t_bool(add(_2, 224)))\n        let _4 := 256\n        mstore(add(value, _4), abi_decode_t_int24(add(_2, _4)))\n        let _5 := 288\n        mstore(add(value, _5), abi_decode_t_int24(add(_2, _5)))\n        let _6 := 320\n        mstore(add(value, _6), abi_decode_t_int24(add(_2, _6)))\n        let _7 := 352\n        mstore(add(value, _7), abi_decode_t_int24(add(_2, _7)))\n        let _8 := 384\n        mstore(add(value, _8), abi_decode_t_uint24(add(_2, _8)))\n        let _9 := 416\n        mstore(add(value, _9), abi_decode_t_address(add(_2, _9)))\n        value0 := value\n    }\n    function abi_decode_tuple_t_uint160t_uint8t_uint8(headStart, dataEnd) -> value0, value1, value2\n    {\n        if slt(sub(dataEnd, headStart), 96) { revert(value0, value0) }\n        let value := calldataload(headStart)\n        validator_revert_t_address(value)\n        value0 := value\n        value1 := abi_decode_t_uint8(add(headStart, 32))\n        value2 := abi_decode_t_uint8(add(headStart, 64))\n    }\n    function abi_decode_tuple_t_uint24(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n        value0 := abi_decode_t_uint24(headStart)\n    }\n    function abi_decode_tuple_t_uint256t_address(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(value0, value0) }\n        value0 := calldataload(headStart)\n        let value := calldataload(add(headStart, 32))\n        validator_revert_t_address(value)\n        value1 := value\n    }\n    function abi_encode_t_address(value, pos)\n    {\n        mstore(pos, and(value, 0xffffffffffffffffffffffffffffffffffffffff))\n    }\n    function abi_encode_t_bool(value, pos)\n    {\n        mstore(pos, iszero(iszero(value)))\n    }\n    function abi_encode_t_int24(value, pos)\n    {\n        mstore(pos, signextend(2, value))\n    }\n    function abi_encode_t_string_calldata(start, length, pos) -> end\n    {\n        mstore(pos, length)\n        calldatacopy(add(pos, 0x20), start, length)\n        mstore(add(add(pos, length), 0x20), end)\n        end := add(add(pos, and(add(length, 31), not(31))), 0x20)\n    }\n    function abi_encode_t_string(value, pos) -> end\n    {\n        let length := mload(value)\n        mstore(pos, length)\n        copy_memory_to_memory(add(value, 0x20), add(pos, 0x20), length)\n        end := add(add(pos, and(add(length, 31), not(31))), 0x20)\n    }\n    function abi_encode_t_uint24(value, pos)\n    {\n        mstore(pos, and(value, 0xffffff))\n    }\n    function abi_encode_t_uint8(value, pos)\n    { mstore(pos, and(value, 0xff)) }\n    function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, iszero(iszero(value0)))\n    }\n    function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n    {\n        mstore(headStart, 32)\n        tail := abi_encode_t_string(value0, add(headStart, 32))\n    }\n    function abi_encode_tuple_t_string_memory_ptr_t_string_memory_ptr__to_t_string_memory_ptr_t_string_memory_ptr__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        mstore(headStart, 64)\n        let tail_1 := abi_encode_t_string(value0, add(headStart, 64))\n        mstore(add(headStart, 32), sub(tail_1, headStart))\n        tail := abi_encode_t_string(value1, tail_1)\n    }\n    function abi_encode_tuple_t_struct$_ConstructTokenURIParams_$2306_calldata_ptr__to_t_struct$_ConstructTokenURIParams_$2306_memory_ptr__fromStack_library_reversed(headStart, value0) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), calldataload(value0))\n        let value := abi_decode_t_address(add(value0, 32))\n        abi_encode_t_address(value, add(headStart, 64))\n        let value_1 := abi_decode_t_address(add(value0, 64))\n        abi_encode_t_address(value_1, add(headStart, 96))\n        let memberValue0, memberValue1 := calldata_access_t_string_calldata(value0, add(value0, 96))\n        let _1 := 0x01c0\n        mstore(add(headStart, 128), _1)\n        let tail_1 := abi_encode_t_string_calldata(memberValue0, memberValue1, add(headStart, 480))\n        let memberValue0_1, memberValue1_1 := calldata_access_t_string_calldata(value0, add(value0, 128))\n        mstore(add(headStart, 160), add(sub(tail_1, headStart), not(31)))\n        let tail_2 := abi_encode_t_string_calldata(memberValue0_1, memberValue1_1, tail_1)\n        let value_2 := abi_decode_t_uint8(add(value0, 160))\n        abi_encode_t_uint8(value_2, add(headStart, 192))\n        let value_3 := abi_decode_t_uint8(add(value0, 192))\n        abi_encode_t_uint8(value_3, add(headStart, 224))\n        let value_4 := abi_decode_t_bool(add(value0, 224))\n        let _2 := 256\n        abi_encode_t_bool(value_4, add(headStart, _2))\n        let value_5 := abi_decode_t_int24(add(value0, _2))\n        let _3 := 288\n        abi_encode_t_int24(value_5, add(headStart, _3))\n        let value_6 := abi_decode_t_int24(add(value0, _3))\n        let _4 := 320\n        abi_encode_t_int24(value_6, add(headStart, _4))\n        let value_7 := abi_decode_t_int24(add(value0, _4))\n        let _5 := 352\n        abi_encode_t_int24(value_7, add(headStart, _5))\n        let value_8 := abi_decode_t_int24(add(value0, _5))\n        let _6 := 384\n        abi_encode_t_int24(value_8, add(headStart, _6))\n        let value_9 := abi_decode_t_uint24(add(value0, _6))\n        let _7 := 416\n        abi_encode_t_uint24(value_9, add(headStart, _7))\n        let value_10 := abi_decode_t_address(add(value0, _7))\n        abi_encode_t_address(value_10, add(headStart, _1))\n        tail := tail_2\n    }\n    function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, value0)\n    }\n    function allocateMemory(size) -> memPtr\n    {\n        memPtr := mload(64)\n        let newFreePtr := add(memPtr, size)\n        if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { invalid() }\n        mstore(64, newFreePtr)\n    }\n    function array_allocation_size_t_string(length) -> size\n    {\n        if gt(length, 0xffffffffffffffff) { invalid() }\n        size := add(and(add(length, 0x1f), not(31)), 0x20)\n    }\n    function calldata_access_t_string_calldata(base_ref, ptr) -> value, length\n    {\n        let rel_offset_of_tail := calldataload(ptr)\n        if iszero(slt(rel_offset_of_tail, add(sub(calldatasize(), base_ref), not(30)))) { revert(value, value) }\n        let value_1 := add(rel_offset_of_tail, base_ref)\n        length := calldataload(value_1)\n        value := add(value_1, 0x20)\n        if gt(length, 0xffffffffffffffff) { revert(0, 0) }\n        if sgt(base_ref, sub(calldatasize(), length)) { revert(0, 0) }\n    }\n    function copy_memory_to_memory(src, dst, length)\n    {\n        let i := 0\n        for { } lt(i, length) { i := add(i, 32) }\n        {\n            mstore(add(dst, i), mload(add(src, i)))\n        }\n        if gt(i, length) { mstore(add(dst, length), 0) }\n    }\n    function validator_revert_t_address(value)\n    {\n        if iszero(eq(value, and(value, 0xffffffffffffffffffffffffffffffffffffffff))) { revert(0, 0) }\n    }\n}","id":18,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{"contracts/libraries/NFTDescriptor.sol":{"NFTDescriptor":[{"length":20,"start":573},{"length":20,"start":830}]}},"object":"608060405234801561001057600080fd5b50600436106100c95760003560e01c8063d5c0bdd811610081578063e73869061161005b578063e738690614610197578063ea4d3bcd146101b7578063f93a7911146101ca576100c9565b8063d5c0bdd81461015e578063d6986d4514610171578063e1649fcf14610184576100c9565b80635e57966d116100b25780635e57966d14610118578063854924ab1461012b5780639288c2181461014b576100c9565b80632fa2af10146100ce5780633a0cdee2146100f8575b600080fd5b6100e16100dc366004613ec7565b6101dd565b6040516100ef929190614296565b60405180910390f35b61010b610106366004613e9c565b6101f6565b6040516100ef9190614283565b61010b610126366004613e80565b610214565b61013e610139366004613fc7565b610227565b6040516100ef9190614454565b61010b610159366004613ef9565b6102c3565b61010b61016c36600461416b565b6102de565b61013e61017f366004613e9c565b6102f5565b61010b610192366004614000565b61030a565b6101aa6101a53660046141c9565b610315565b6040516100ef9190614278565b61010b6101c53660046141af565b610321565b61010b6101d8366004613fc7565b61032c565b6060806101ea84846103ba565b915091505b9250929050565b606061020b836001600160a01b0316836107eb565b90505b92915050565b606061021f826107fa565b90505b919050565b6000805a60405163c49917d760e01b815290915073__$cea9be979eee3d87fb124d6cbb244bb0b5$__9063c49917d7906102659086906004016142bb565b60006040518083038186803b15801561027d57600080fd5b505af4158015610291573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526102b99190810190613f5d565b505a900392915050565b60606102d28686868686610810565b90505b95945050505050565b60606102eb84848461093a565b90505b9392505050565b600061020b836001600160a01b031683610b0e565b606061021f82610b15565b600061020b8383610d50565b606061021f82610db3565b60405163c49917d760e01b815260609073__$cea9be979eee3d87fb124d6cbb244bb0b5$__9063c49917d7906103669085906004016142bb565b60006040518083038186803b15801561037e57600080fd5b505af4158015610392573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261021f9190810190613f5d565b60608060006002858501810b0590506201e847198160020b121561043257604051806040016040528060018152602001600760fb1b8152506040518060400160405280600181526020017f370000000000000000000000000000000000000000000000000000000000000081525092509250506101ef565b620124f7198160020b121561049b57604051806040016040528060018152602001600760fb1b8152506040518060400160405280600481526020017f31302e350000000000000000000000000000000000000000000000000000000081525092509250506101ef565b6161a7198160020b121561050357604051806040016040528060018152602001600760fb1b8152506040518060400160405280600581526020017f31342e323500000000000000000000000000000000000000000000000000000081525092509250506101ef565b611387198160020b121561056c576040518060400160405280600281526020017f313000000000000000000000000000000000000000000000000000000000000081525060405180604001604052806002815260200161062760f31b81525092509250506101ef565b60008160020b12156105d3576040518060400160405280600281526020017f313100000000000000000000000000000000000000000000000000000000000081525060405180604001604052806002815260200161323160f01b81525092509250506101ef565b6113888160020b1215610656576040518060400160405280600281526020017f31330000000000000000000000000000000000000000000000000000000000008152506040518060400160405280600281526020017f323300000000000000000000000000000000000000000000000000000000000081525092509250506101ef565b6161a88160020b12156106d9576040518060400160405280600281526020017f31350000000000000000000000000000000000000000000000000000000000008152506040518060400160405280600281526020017f323500000000000000000000000000000000000000000000000000000000000081525092509250506101ef565b620124f88160020b12156107425760405180604001604052806002815260200161062760f31b8152506040518060400160405280600281526020017f323600000000000000000000000000000000000000000000000000000000000081525092509250506101ef565b6201e8488160020b12156107905760405180604001604052806002815260200161323160f01b81525060405180604001604052806002815260200161323760f01b81525092509250506101ef565b6040518060400160405280600281526020017f323400000000000000000000000000000000000000000000000000000000000081525060405180604001604052806002815260200161323760f01b81525092509250506101ef565b606061020b83831c600361100e565b606061021f6001600160a01b03831660146110d5565b606084600281900b620d89e7198161082457fe5b050260020b8660020b141561087e57811561085a576040518060400160405280600381526020016209a82b60eb1b815250610877565b6040518060400160405280600381526020016226a4a760e91b8152505b90506102d5565b84600281900b620d89e88161088f57fe5b050260020b8660020b14156108e55781156108c5576040518060400160405280600381526020016226a4a760e91b815250610877565b5060408051808201909152600381526209a82b60eb1b60208201526102d5565b60006108f08761125d565b905082156109275761092478010000000000000000000000000000000000000000000000006001600160a01b0383166115ab565b90505b61093281868661093a565b9150506102d5565b60606000610949858585611612565b90506000610961828368010000000000000000611714565b90506c01000000000000000000000000821080156109a25761099b8272047bf19673df52e37f2410011d100000000000600160801b611714565b91506109b7565b6109b482620186a0600160801b611714565b91505b8160005b81156109cf57600101600a820491506109bb565b600019016000806109e086846117c3565b9150915080156109f1576001909201915b6109f9613d9a565b8515610a6c57610a18610a10602b60ff871661182f565b60079061188c565b60ff908116602083015260026080830152610a4490600190610a3e90602b90881661182f565b9061188c565b60ff90811660a08301526020820151610a5f9116600161182f565b60ff166040820152610ae3565b60098460ff1610610ab557610a8560ff8516600461182f565b60ff166020820181905260056080830152610aa190600161182f565b60ff1660a082015260046040820152610ae3565b60066020820152600560408201819052610ada90600190610a3e9060ff88169061182f565b60ff1660608201525b82815285151560c0820152600060e0820152610afe816118e6565b9c9b505050505050505050505050565b1c60ff1690565b60606000604051806102a00160405280610b3285602001516107fa565b8152602001610b4485604001516107fa565b8152602001846101a001516001600160a01b031681526020018460600151815260200184608001518152602001610b7f856101800151610db3565b815260200184610100015160020b815260200184610120015160020b815260200184610160015160020b8152602001610bc8856101000151866101200151876101400151611b12565b60000b815260200184600001518152602001610bf285602001516001600160a01b031660886107eb565b8152602001610c0f85604001516001600160a01b031660886107eb565b8152602001610c2c85602001516001600160a01b031660006107eb565b8152602001610c4985604001516001600160a01b031660006107eb565b8152602001610c7c610c6e86602001516001600160a01b031660108860000151611b49565b600060ff6010610112611b69565b8152602001610caf610ca186604001516001600160a01b031660108860000151611b49565b600060ff60646101e4611b69565b8152602001610cd4610c6e86602001516001600160a01b031660208860000151611b49565b8152602001610cf9610ca186604001516001600160a01b031660208860000151611b49565b8152602001610d1e610c6e86602001516001600160a01b031660308860000151611b49565b8152602001610d43610ca186604001516001600160a01b031660308860000151611b49565b905290506102ee81611ba7565b6040805160208082018590526bffffffffffffffffffffffff19606085901b16828401528251603481840301815260549092019092528051910120600090610d9784611e36565b60020260010160ff1660001981610daa57fe5b04119392505050565b606062ffffff8216610df9575060408051808201909152600281527f30250000000000000000000000000000000000000000000000000000000000006020820152610222565b816000805b62ffffff831615610e495760ff811615610e1a57600101610e33565b600a62ffffff84160662ffffff16600014610e33576001015b600190910190600a62ffffff8416049250610dfe565b610e51613d9a565b600060058410610f405760006004610e6c8660ff871661182f565b1015610e79576001610e7c565b60005b60ff9081169150610e90908516600161182f565b610e9b86600561182f565b10610ec757610ec2610eb160ff8616600161182f565b610ebc87600561182f565b9061182f565b610eca565b60005b60ff851660808501819052909250610ee990600190610ebc908561188c565b60ff90811660a08501526080840151610f0a918391610a3e9116600161182f565b60ff9081166040850152610f32908290610a3e90610f2b908816600161188c565b859061188c565b60ff16602084015250610fb0565b610f4b60058561182f565b600260808401819052909150610f6990600190610ebc90849061188c565b60ff90811660a0840152610f8b90610f84908516600261188c565b829061188c565b60ff1660208301819052610fa090600261182f565b60ff166040830152600160c08301525b610fcf610fc08560ff861661182f565b62ffffff891690600a0a6115ab565b8252600160e083015260048411610fe7576000610ff2565b610ff284600461182f565b60ff166060830152611003826118e6565b979650505050505050565b606060008260020267ffffffffffffffff8111801561102c57600080fd5b506040519080825280601f01601f191660200182016040528015611057576020820181803683370190505b5080519091505b80156110cd577f303132333435363738396162636465660000000000000000000000000000000085600f166010811061109357fe5b1a60f81b8260018303815181106110a657fe5b60200101906001600160f81b031916908160001a90535060049490941c936000190161105e565b509392505050565b606060008260020260020167ffffffffffffffff811180156110f657600080fd5b506040519080825280601f01601f191660200182016040528015611121576020820181803683370190505b509050600360fc1b8160008151811061113657fe5b60200101906001600160f81b031916908160001a9053507f78000000000000000000000000000000000000000000000000000000000000008160018151811061117b57fe5b60200101906001600160f81b031916908160001a905350600160028402015b6001811115611209577f303132333435363738396162636465660000000000000000000000000000000085600f16601081106111d257fe5b1a60f81b8282815181106111e257fe5b60200101906001600160f81b031916908160001a90535060049490941c936000190161119a565b50831561020b576040805162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e74604482015290519081900360640190fd5b60008060008360020b12611274578260020b61127c565b8260020b6000035b9050620d89e88111156112d6576040805162461bcd60e51b815260206004820152600160248201527f5400000000000000000000000000000000000000000000000000000000000000604482015290519081900360640190fd5b6000600182166112ea57600160801b6112fc565b6ffffcb933bd6fad37aa2d162d1a5940015b70ffffffffffffffffffffffffffffffffff1690506002821615611330576ffff97272373d413259a46990580e213a0260801c5b600482161561134f576ffff2e50f5f656932ef12357cf3c7fdcc0260801c5b600882161561136e576fffe5caca7e10e4e61c3624eaa0941cd00260801c5b601082161561138d576fffcb9843d60f6159c9db58835c9266440260801c5b60208216156113ac576fff973b41fa98c081472e6896dfb254c00260801c5b60408216156113cb576fff2ea16466c96a3843ec78b326b528610260801c5b60808216156113ea576ffe5dee046a99a2a811c461f1969c30530260801c5b61010082161561140a576ffcbe86c7900a88aedcffc83b479aa3a40260801c5b61020082161561142a576ff987a7253ac413176f2b074cf7815e540260801c5b61040082161561144a576ff3392b0822b70005940c7a398e4b70f30260801c5b61080082161561146a576fe7159475a2c29b7443b29c7fa6e889d90260801c5b61100082161561148a576fd097f3bdfd2022b8845ad8f792aa58250260801c5b6120008216156114aa576fa9f746462d870fdf8a65dc1f90e061e50260801c5b6140008216156114ca576f70d869a156d2a1b890bb3df62baf32f70260801c5b6180008216156114ea576f31be135f97d08fd981231505542fcfa60260801c5b6201000082161561150b576f09aa508b5b7a84e1c677de54f3e99bc90260801c5b6202000082161561152b576e5d6af8dedb81196699c329225ee6040260801c5b6204000082161561154a576d2216e584f5fa1ea926041bedfe980260801c5b62080000821615611567576b048a170391f7dc42444e8fa20260801c5b60008460020b131561158257806000198161157e57fe5b0490505b640100000000810615611596576001611599565b60005b60ff16602082901c0192505050919050565b6000808211611601576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b81838161160a57fe5b049392505050565b60008061162d61162860ff868116908616611ed6565b611f3b565b9050600081118015611640575060128111155b15611701578260ff168460ff1611156116aa576116746116618260026115ab565b6001600160a01b03871690600a0a611f52565b915060028106600114156116a5576116a2827003298b075b4b6a5240945790619b37fd4a600160801b611714565b91505b6116fc565b6116cb6116b88260026115ab565b6001600160a01b03871690600a0a6115ab565b915060028106600114156116fc576116f982600160801b7003298b075b4b6a5240945790619b37fd4a611714565b91505b6110cd565b50506001600160a01b0390921692915050565b600080806000198587098686029250828110908390030390508061174a576000841161173f57600080fd5b5082900490506102ee565b80841161175657600080fd5b6000848688096000868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010186841190950394909402919094039290920491909117919091029150509392505050565b600080600060058460ff1611156117eb576117e88560ff600419870116600a0a6115ab565b94505b60006004600a870611905061180186600a6115ab565b95508015611810578560010195505b85620186a0141561182657600a86049550600191505b50939492505050565b600082821115611886576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b60008282018381101561020b576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b60606000826020015160ff1667ffffffffffffffff8111801561190857600080fd5b506040519080825280601f01601f191660200182016040528015611933576020820181803683370190505b5090508260e0015115611989577f25000000000000000000000000000000000000000000000000000000000000008160018351038151811061197157fe5b60200101906001600160f81b031916908160001a9053505b8260c00151156119e657600360fc1b816000815181106119a557fe5b60200101906001600160f81b031916908160001a905350601760f91b816001815181106119ce57fe5b60200101906001600160f81b031916908160001a9053505b608083015160ff165b60a0840151611a029060ff16600161188c565b811015611a3957603060f81b828281518110611a1a57fe5b60200101906001600160f81b031916908160001a9053506001016119ef565b505b82511561021f576000836060015160ff16118015611a665750826060015160ff16836040015160ff16145b15611aa95760408301805160ff600019820181169092528251601760f91b92849216908110611a9157fe5b60200101906001600160f81b031916908160001a9053505b8251611abb90603090600a900661188c565b60f81b818460400180518091906001900360ff1660ff1681525060ff1681518110611ae257fe5b60200101906001600160f81b031916908160001a905350600a8360000181815181611b0957fe5b04905250611a3b565b60008360020b8260020b1215611b2b57506000196102ee565b8260020b8260020b1315611b41575060016102ee565b5060006102ee565b600060ff82611b588686610b0e565b0281611b6057fe5b06949350505050565b60606102d2611ba284610a3e611b7f888a61182f565b611b9c611b8c888a61182f565b611b968d8d61182f565b90611f52565b906115ab565b611fab565b6060611bb282612086565b611bce836000015184602001518560600151866080015161273a565b611be5846060015185608001518660a00151612a65565b611c038560c001518660e00151876101000151886101200151612bd1565b611c23611c14876101400151611fab565b8760c001518860e00151612f24565b611c368761014001518860400151613355565b6040516020018087805190602001908083835b60208310611c685780518252601f199092019160209182019101611c49565b51815160209384036101000a600019018019909216911617905289519190930192890191508083835b60208310611cb05780518252601f199092019160209182019101611c91565b51815160209384036101000a600019018019909216911617905288519190930192880191508083835b60208310611cf85780518252601f199092019160209182019101611cd9565b51815160209384036101000a600019018019909216911617905287519190930192870191508083835b60208310611d405780518252601f199092019160209182019101611d21565b51815160209384036101000a600019018019909216911617905286519190930192860191508083835b60208310611d885780518252601f199092019160209182019101611d69565b51815160209384036101000a600019018019909216911617905285519190930192850191508083835b60208310611dd05780518252601f199092019160209182019101611db1565b5181516020939093036101000a60001901801990911692169190911790527f3c2f7376673e000000000000000000000000000000000000000000000000000092019182525060408051808303601919018152600690920190529998505050505050505050565b6000808211611e4457600080fd5b600160801b8210611e5757608091821c91015b680100000000000000008210611e6f57604091821c91015b6401000000008210611e8357602091821c91015b620100008210611e9557601091821c91015b6101008210611ea657600891821c91015b60108210611eb657600491821c91015b60048210611ec657600291821c91015b6002821061022257600101919050565b6000818303818312801590611eeb5750838113155b80611f005750600083128015611f0057508381135b61020b5760405162461bcd60e51b8152600401808060200182810382526024815260200180615bd06024913960400191505060405180910390fd5b600080821215611f4e578160000361021f565b5090565b600082611f615750600061020e565b82820282848281611f6e57fe5b041461020b5760405162461bcd60e51b81526004018080602001828103825260218152602001806152e96021913960400191505060405180910390fd5b606081611fd057506040805180820190915260018152600360fc1b6020820152610222565b8160005b8115611fe857600101600a82049150611fd4565b60008167ffffffffffffffff8111801561200157600080fd5b506040519080825280601f01601f19166020018201604052801561202c576020820181803683370190505b50859350905060001982015b831561207d57600a840660300160f81b8282806001900393508151811061205b57fe5b60200101906001600160f81b031916908160001a905350600a84049350612038565b50949350505050565b606061211b8261016001516040516020018080614ea36081913960810182805190602001908083835b602083106120ce5780518252601f1990920191602091820191016120af565b6001836020036101000a038019825116818451168082178552505050505050905001806813979f1e17b9bb339f60b91b8152506009019150506040516020818303038152906040526133cd565b612287836101e0015184610200015185610180015160405160200180806149e06063913960630184805190602001908083835b6020831061216d5780518252601f19909201916020918201910161214e565b51815160209384036101000a600019018019909216911617905265272063793d2760d01b919093019081528551600690910192860191508083835b602083106121c75780518252601f1990920191602091820191016121a8565b51815160209384036101000a60001901801990921691161790527f2720723d273132307078272066696c6c3d272300000000000000000000000000919093019081528451601390910192850191508083835b602083106122385780518252601f199092019160209182019101612219565b6001836020036101000a038019825116818451168082178552505050505050905001806813979f1e17b9bb339f60b91b81525060090193505050506040516020818303038152906040526133cd565b6122d8846102200151856102400151866101a0015160405160200180806149e06063913960630184805190602001908083836020831061216d5780518252601f19909201916020918201910161214e565b6123f7856102600151866102800151876101c0015160405160200180806149e06063913960630184805190602001908083835b6020831061232a5780518252601f19909201916020918201910161230b565b51815160209384036101000a600019018019909216911617905265272063793d2760d01b919093019081528551600690910192860191508083835b602083106123845780518252601f199092019160209182019101612365565b51815160001960209485036101000a019081169019919091161790527f2720723d273130307078272066696c6c3d2723000000000000000000000000009390910192835284516013909301929085019150808383602083106122385780518252601f199092019160209182019101612219565b61016086015160405160200180605661475b8239605601602c61510a82397f3c646566733e0000000000000000000000000000000000000000000000000000602c820152603201604b614e588239604b0186805190602001908083835b602083106124735780518252601f199092019160209182019101612454565b6001836020036101000a03801982511681845116808217855250505050505090500180615990603e9139603e0185805190602001908083835b602083106124cb5780518252601f1990920191602091820191016124ac565b6001836020036101000a03801982511681845116808217855250505050505090500180614f24603e9139603e0184805190602001908083835b602083106125235780518252601f199092019160209182019101612504565b5181516020939093036101000a60001901801990911692169190911790527f22202f3e00000000000000000000000000000000000000000000000000000000920191825250600401603b6146538239603b0183805190602001908083835b602083106125a05780518252601f199092019160209182019101612581565b6001836020036101000a03801982511681845116808217855250505050505090500180614aa060999139609901607f6155418239607f01608861590882396088016041614b398239604101605d615ac88239605d0160726155ed823960720160496145bc823960490160be614d9a823960be01607161486c8239607101607561548482396075016066614b7a823960660160a4615136823960a40160856159ce82397f3c6720636c69702d706174683d2275726c2823636f726e65727329223e00000060858201527f3c726563742066696c6c3d22000000000000000000000000000000000000000060a2820152825160ae9091019060208401908083835b602083106126be5780518252601f19909201916020918201910161269f565b6001836020036101000a03801982511681845116808217855250505050505090500180614be060319139603101604e6146058239604e01605d614a438239605d01604161508982396041016052614f6282396052016075615a538239607501955050505050506040516020818303038152906040529050919050565b60608382858488878a896040516020018080615bab60259139602501607d614d1d8239607d0189805190602001908083835b6020831061278b5780518252601f19909201916020918201910161276c565b51815160209384036101000a600019018019909216911617905264010714051160dd1b919093019081528a516005909101928b0191508083835b602083106127e45780518252601f1990920191602091820191016127c5565b6001836020036101000a03801982511681845116808217855250505050505090500180614c11607991396079016086615b25823960860187805190602001908083835b602083106128465780518252601f199092019160209182019101612827565b51815160209384036101000a600019018019909216911617905264010714051160dd1b919093019081528851600590910192890191508083835b6020831061289f5780518252601f199092019160209182019101612880565b6001836020036101000a038019825116818451168082178552505050505050905001806147e760859139608501607b6157768239607b0185805190602001908083835b602083106129015780518252601f1990920191602091820191016128e2565b51815160209384036101000a600019018019909216911617905264010714051160dd1b919093019081528651600590910192870191508083835b6020831061295a5780518252601f19909201916020918201910161293b565b6001836020036101000a03801982511681845116808217855250505050505090500180614931605d9139605d0160a36153e1823960a30183805190602001908083835b602083106129bc5780518252601f19909201916020918201910161299d565b51815160209384036101000a600019018019909216911617905264010714051160dd1b919093019081528451600590910192850191508083835b60208310612a155780518252601f1990920191602091820191016129f6565b6001836020036101000a03801982511681845116808217855250505050505090500180614531608b9139608b01985050505050505050506040516020818303038152906040529050949350505050565b6060838383604051602001808061468e60cd913960cd0184805190602001908083835b60208310612aa75780518252601f199092019160209182019101612a88565b6001836020036101000a038019825116818451168082178552505050505050905001807f2f0000000000000000000000000000000000000000000000000000000000000081525060010183805190602001908083835b60208310612b1c5780518252601f199092019160209182019101612afd565b6001836020036101000a03801982511681845116808217855250505050505090500180615d546077913960770182805190602001908083835b60208310612b745780518252601f199092019160209182019101612b55565b5181516020939093036101000a60001901801990911692169190911790526a1e17ba32bc3a1f1e17b39f60a91b920191825250600b016073615bf48239607301935050505060405160208183030381529060405290509392505050565b606060008260000b600114612c63578260000b60001914612c27576040518060400160405280600581526020017f236e6f6e65000000000000000000000000000000000000000000000000000000815250612c5e565b6040518060400160405280600a81526020017f23666164652d646f776e000000000000000000000000000000000000000000008152505b612c9a565b6040518060400160405280600881526020017f23666164652d75700000000000000000000000000000000000000000000000008152505b90506000612ca9878787613552565b905081818383612cb8886137a0565b60405160200180807f3c67206d61736b3d2275726c2800000000000000000000000000000000000000815250600d0186805190602001908083835b60208310612d125780518252601f199092019160209182019101612cf3565b5181516020939093036101000a600019018019909116921691909117905261149160f11b92019182525060020160776151da823960770185805190602001908083835b60208310612d745780518252601f199092019160209182019101612d55565b6001836020036101000a038019825116818451168082178552505050505050905001806148dd60549139605401807f3c2f673e3c67206d61736b3d2275726c2800000000000000000000000000000081525060110184805190602001908083835b60208310612df45780518252601f199092019160209182019101612dd5565b5181516020939093036101000a600019018019909116921691909117905261149160f11b9201918252506002016029615251823960290160456152a48239604501807f3c7061746820643d22000000000000000000000000000000000000000000000081525060090183805190602001908083835b60208310612e885780518252601f199092019160209182019101612e69565b6001836020036101000a038019825116818451168082178552505050505050905001806154f96048913960480182805190602001908083835b60208310612ee05780518252601f199092019160209182019101612ec1565b6001836020036101000a0380198251168184511680821785525050505050509050019550505050505060405160208183030381529060405292505050949350505050565b60606000612f3184613c74565b90506000612f3e84613c74565b865183518251929350600490910191600a9182019101600080612f618a8a6103ba565b91509150612f7485600401600702611fab565b8b612f8486600401600702611fab565b89612f9487600401600702611fab565b8a878760405160200180806155c0602d9139602d01806c1e3932b1ba103bb4b23a341e9160991b815250600d0189805190602001908083835b60208310612fec5780518252601f199092019160209182019101612fcd565b6001836020036101000a03801982511681845116808217855250505050505090500180614fb4603d9139603d01608d615c678239608d0188805190602001908083835b6020831061304e5780518252601f19909201916020918201910161302f565b5181516020939093036101000a60001901801990911692169190911790526a1e17ba32bc3a1f1e17b39f60a91b920191825250600b01602d615e038239602d01806c1e3932b1ba103bb4b23a341e9160991b815250600d0187805190602001908083835b602083106130d15780518252601f1990920191602091820191016130b2565b6001836020036101000a03801982511681845116808217855250505050505090500180614fb4603d9139603d016093614c8a823960930186805190602001908083835b602083106131335780518252601f199092019160209182019101613114565b5181516020939093036101000a60001901801990911692169190911790526a1e17ba32bc3a1f1e17b39f60a91b920191825250600b01602d61498e8239602d01806c1e3932b1ba103bb4b23a341e9160991b815250600d0185805190602001908083835b602083106131b65780518252601f199092019160209182019101613197565b6001836020036101000a03801982511681845116808217855250505050505090500180614fb4603d9139603d0160936157f1823960930184805190602001908083835b602083106132185780518252601f1990920191602091820191016131f9565b6001836020036101000a03801982511681845116808217855250505050505090500180615dcb603891396038016060615cf48239606001606461537d823960640160256149bb823960250183805190602001908083835b6020831061328e5780518252601f19909201916020918201910161326f565b51815160209384036101000a60001901801990921691161790527f70782c2000000000000000000000000000000000000000000000000000000000919093019081528451600490910192850191508083835b602083106132ff5780518252601f1990920191602091820191016132e0565b6001836020036101000a038019825116818451168082178552505050505050905001806147b160369139603601985050505050505050506040516020818303038152906040529750505050505050509392505050565b60606133618383610d50565b156133b75760405160200180608d6156e98239608d01607361530a823960730160716150188239607101608a61565f8239608a01608461588482396084019050604051602081830303815290604052905061020e565b5060408051602081019091526000815292915050565b60608151600014156133ee5750604080516020810190915260008152610222565b60006040518060600160405280604081526020016150ca6040913990506000600384516002018161341b57fe5b04600402905060008160200167ffffffffffffffff8111801561343d57600080fd5b506040519080825280601f01601f191660200182016040528015613468576020820181803683370190505b509050818152600183018586518101602084015b818310156134d65760039283018051603f601282901c811687015160f890811b8552600c83901c8216880151811b6001860152600683901c8216880151811b60028601529116860151901b9382019390935260040161347c565b6003895106600181146134f0576002811461351c57613544565b7f3d3d000000000000000000000000000000000000000000000000000000000000600119830152613544565b7f3d000000000000000000000000000000000000000000000000000000000000006000198301525b509398975050505050505050565b606060008260020b85850360020b8161356757fe5b05905060048160020b136135b2576040518060400160405280601a81526020017f4d3120314334312034312031303520313035203134352031343500000000000081525091506110cd565b60088160020b136135fa576040518060400160405280601981526020017f4d3120314333332034392039372031313320313435203134350000000000000081525091506110cd565b60108160020b13613642576040518060400160405280601981526020017f4d3120314333332035372038392031313320313435203134350000000000000081525091506110cd565b60208160020b1361368a576040518060400160405280601981526020017f4d3120314332352036352038312031323120313435203134350000000000000081525091506110cd565b60408160020b136136d2576040518060400160405280601981526020017f4d3120314331372037332037332031323920313435203134350000000000000081525091506110cd565b60808160020b1361371a576040518060400160405280601881526020017f4d3120314339203831203635203133372031343520313435000000000000000081525091506110cd565b6101008160020b13613763576040518060400160405280601a81526020017f4d31203143312038392035372e3520313435203134352031343500000000000081525091506110cd565b505060408051808201909152601881527f4d3120314331203937203439203134352031343520313435000000000000000060208201529392505050565b604080518082018252600281527f37330000000000000000000000000000000000000000000000000000000000006020808301919091528251808401845260038082527f313930000000000000000000000000000000000000000000000000000000000082840152845180860186528181527f32313700000000000000000000000000000000000000000000000000000000008185015285518087019096529085527f3333340000000000000000000000000000000000000000000000000000000000928501929092526060939091906001600087900b148061388757508560000b600019145b15613a7e578560000b6000191461389e57816138a0565b835b8660000b600019146138b257816138b4565b835b8760000b600019146138c657836138c8565b855b8860000b600019146138da57836138dc565b855b60405160200180806b1e31b4b931b6329031bc1e9160a11b815250600c0185805190602001908083835b602083106139255780518252601f199092019160209182019101613906565b51815160209384036101000a600019018019909216911617905267383c111031bc9e9160c11b919093019081528651600890910192870191508083835b602083106139815780518252601f199092019160209182019101613962565b6001836020036101000a03801982511681845116808217855250505050505090500180614ff16027913960270183805190602001908083835b602083106139d95780518252601f1990920191602091820191016139ba565b51815160209384036101000a600019018019909216911617905267383c111031bc9e9160c11b919093019081528451600890910192850191508083835b60208310613a355780518252601f199092019160209182019101613a16565b6001836020036101000a0380198251168184511680821785525050505050509050018061527a602a9139602a019450505050506040516020818303038152906040529450613c6b565b8383838360405160200180806b1e31b4b931b6329031bc1e9160a11b815250600c0185805190602001908083835b60208310613acb5780518252601f199092019160209182019101613aac565b51815160209384036101000a600019018019909216911617905267383c111031bc9e9160c11b919093019081528651600890910192870191508083835b60208310613b275780518252601f199092019160209182019101613b08565b51815160209384036101000a60001901801990921691161790527f70782220723d22347078222066696c6c3d22776869746522202f3e0000000000919093019081526b1e31b4b931b6329031bc1e9160a11b601b8201528551602790910192860191508083835b60208310613bad5780518252601f199092019160209182019101613b8e565b51815160209384036101000a600019018019909216911617905267383c111031bc9e9160c11b919093019081528451600890910192850191508083835b60208310613c095780518252601f199092019160209182019101613bea565b6001836020036101000a038019825116818451168082178552505050505050905001807f70782220723d22347078222066696c6c3d22776869746522202f3e0000000000815250601b0194505050505060405160208183030381529060405294505b50505050919050565b6060600060405180602001604052806000815250905060008360020b1215613cd657826000190292506040518060400160405280600181526020017f2d0000000000000000000000000000000000000000000000000000000000000081525090505b80613ce38460020b611fab565b6040516020018083805190602001908083835b60208310613d155780518252601f199092019160209182019101613cf6565b51815160209384036101000a600019018019909216911617905285519190930192850191508083835b60208310613d5d5780518252601f199092019160209182019101613d3e565b6001836020036101000a03801982511681845116808217855250505050505090500192505050604051602081830303815290604052915050919050565b6040805161010081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e081019190915290565b803561022281614518565b8035801515811461022257600080fd5b8035600281900b811461022257600080fd5b600082601f830112613e1b578081fd5b8135613e2e613e2982614481565b61445d565b818152846020838601011115613e42578283fd5b816020850160208301379081016020019190915292915050565b803562ffffff8116811461022257600080fd5b803560ff8116811461022257600080fd5b600060208284031215613e91578081fd5b813561020b81614518565b60008060408385031215613eae578081fd5b8235613eb981614518565b946020939093013593505050565b60008060408385031215613ed9578182fd5b613ee283613df9565b9150613ef060208401613df9565b90509250929050565b600080600080600060a08688031215613f10578081fd5b613f1986613df9565b9450613f2760208701613df9565b9350613f3560408701613e6f565b9250613f4360608701613e6f565b9150613f5160808701613de9565b90509295509295909350565b600060208284031215613f6e578081fd5b815167ffffffffffffffff811115613f84578182fd5b8201601f81018413613f94578182fd5b8051613fa2613e2982614481565b818152856020838501011115613fb6578384fd5b6102d58260208301602086016144e8565b600060208284031215613fd8578081fd5b813567ffffffffffffffff811115613fee578182fd5b82016101c0818503121561020b578182fd5b600060208284031215614011578081fd5b813567ffffffffffffffff80821115614028578283fd5b81840191506101c080838703121561403e578384fd5b6140478161445d565b90508235815261405960208401613dde565b602082015261406a60408401613dde565b6040820152606083013582811115614080578485fd5b61408c87828601613e0b565b6060830152506080830135828111156140a3578485fd5b6140af87828601613e0b565b6080830152506140c160a08401613e6f565b60a08201526140d260c08401613e6f565b60c08201526140e360e08401613de9565b60e082015261010091506140f8828401613df9565b82820152610120915061410c828401613df9565b828201526101409150614120828401613df9565b828201526101609150614134828401613df9565b828201526101809150614148828401613e5c565b828201526101a0915061415c828401613dde565b91810191909152949350505050565b60008060006060848603121561417f578283fd5b833561418a81614518565b925061419860208501613e6f565b91506141a660408501613e6f565b90509250925092565b6000602082840312156141c0578081fd5b61020b82613e5c565b600080604083850312156141db578182fd5b8235915060208301356141ed81614518565b809150509250929050565b6001600160a01b03169052565b15159052565b60020b9052565b60008284528282602086013780602084860101526020601f19601f85011685010190509392505050565b600081518084526142548160208601602086016144e8565b601f01601f19169290920160200192915050565b62ffffff169052565b60ff169052565b901515815260200190565b60006020825261020b602083018461423c565b6000604082526142a9604083018561423c565b82810360208401526102d5818561423c565b600060208252823560208301526142d460208401613dde565b6142e160408401826141f8565b506142ee60408401613dde565b6142fb60608401826141f8565b5061430960608401846144a3565b6101c08060808601526143216101e086018385614212565b925061433060808701876144a3565b868503601f190160a08801529250614349848483614212565b93505061435860a08701613e6f565b915061436760c0860183614271565b61437360c08701613e6f565b915061438260e0860183614271565b61438e60e08701613de9565b915061010061439f81870184614205565b6143aa818801613df9565b9250506101206143bc8187018461420b565b6143c7818801613df9565b9250506101406143d98187018461420b565b6143e4818801613df9565b9250506101606143f68187018461420b565b614401818801613df9565b9250506101806144138187018461420b565b61441e818801613e5c565b9250506101a061443081870184614268565b61443b818801613dde565b92505061444a818601836141f8565b5090949350505050565b90815260200190565b60405181810167ffffffffffffffff8111828210171561447957fe5b604052919050565b600067ffffffffffffffff82111561449557fe5b50601f01601f191660200190565b6000808335601e198436030181126144b9578283fd5b830160208101925035905067ffffffffffffffff8111156144d957600080fd5b8036038313156101ef57600080fd5b60005b838110156145035781810151838201526020016144eb565b83811115614512576000848401525b50505050565b6001600160a01b038116811461452d57600080fd5b5056fe203c616e696d6174652061646469746976653d2273756d22206174747269627574654e616d653d2273746172744f6666736574222066726f6d3d2230252220746f3d22313030252220626567696e3d22307322206475723d223330732220726570656174436f756e743d22696e646566696e69746522202f3e3c2f74657874506174683e3c2f746578743e3c73746f70206f66667365743d222e39222073746f702d636f6c6f723d227768697465222073746f702d6f7061636974793d223022202f3e3c2f6c696e6561724772616469656e743e3c72656374207374796c653d2266696c7465723a2075726c28236631292220783d223070782220793d22307078222077696474683d22323930707822206865696768743d22353030707822202f3e3c6665496d61676520726573756c743d2270332220786c696e6b3a687265663d22646174613a696d6167652f7376672b786d6c3b6261736536342c3c67206d61736b3d2275726c2823666164652d73796d626f6c29223e3c726563742066696c6c3d226e6f6e652220783d223070782220793d22307078222077696474683d22323930707822206865696768743d22323030707822202f3e203c7465787420793d22373070782220783d2233327078222066696c6c3d2277686974652220666f6e742d66616d696c793d2227436f7572696572204e6577272c206d6f6e6f73706163652220666f6e742d7765696768743d223230302220666f6e742d73697a653d2233367078223e3c7376672077696474683d2232393022206865696768743d22353030222076696577426f783d2230203020323930203530302220786d6c6e733d22687474703a2f2f7777772e77332e6f72672f323030302f7376672270782c2030707829222063783d22307078222063793d223070782220723d22347078222066696c6c3d227768697465222f3e3c2f673e203c616e696d6174652061646469746976653d2273756d22206174747269627574654e616d653d2273746172744f6666736574222066726f6d3d2230252220746f3d22313030252220626567696e3d22307322206475723d223330732220726570656174436f756e743d22696e646566696e69746522202f3e203c2f74657874506174683e3c6d61736b2069643d22666164652d757022206d61736b436f6e74656e74556e6974733d226f626a656374426f756e64696e67426f78223e3c726563742077696474683d223122206865696768743d2231222066696c6c3d2275726c2823677261642d75702922202f3e3c2f6d61736b3e22207374726f6b653d227267626128302c302c302c302e332922207374726f6b652d77696474683d2233327078222066696c6c3d226e6f6e6522207374726f6b652d6c696e656361703d22726f756e6422202f3e203c616e696d6174652061646469746976653d2273756d22206174747269627574654e616d653d2273746172744f6666736574222066726f6d3d2230252220746f3d22313030252220626567696e3d22307322206475723d2233307322203c67207374796c653d227472616e73666f726d3a7472616e736c61746528323970782c20343434707829223e3c636972636c65207374796c653d227472616e73666f726d3a7472616e736c6174653364283c7376672077696474683d2732393027206865696768743d27353030272076696577426f783d2730203020323930203530302720786d6c6e733d27687474703a2f2f7777772e77332e6f72672f323030302f737667273e3c636972636c652063783d27203c67207374796c653d2266696c7465723a75726c2823746f702d726567696f6e2d626c7572293b207472616e73666f726d3a7363616c6528312e35293b207472616e73666f726d2d6f726967696e3a63656e74657220746f703b223e22202f3e3c6665426c656e64206d6f64653d226f7665726c61792220696e3d2270302220696e323d22703122202f3e3c6665426c656e64206d6f64653d226578636c7573696f6e2220696e323d22703222202f3e3c6665426c656e64206d6f64653d226f7665726c61792220696e323d2270332220726573756c743d22626c656e644f757422202f3e3c6665476175737369616e426c7572203c706174682069643d226d696e696d61702220643d224d3233342034343443323334203435372e393439203234322e323120343633203235332034363322202f3e3c6d61736b2069643d226e6f6e6522206d61736b436f6e74656e74556e6974733d226f626a656374426f756e64696e67426f78223e3c726563742077696474683d223122206865696768743d2231222066696c6c3d22776869746522202f3e3c2f6d61736b3e2220783d223070782220793d22307078222077696474683d22323930707822206865696768743d22353030707822202f3e203c616e696d6174652061646469746976653d2273756d22206174747269627574654e616d653d2273746172744f6666736574222066726f6d3d2230252220746f3d22313030252220626567696e3d22307322206475723d223330732220726570656174436f756e743d22696e646566696e69746522202f3e3c7465787420783d22313270782220793d22313770782220666f6e742d66616d696c793d2227436f7572696572204e6577272c206d6f6e6f73706163652220666f6e742d73697a653d2231327078222066696c6c3d227768697465223e3c747370616e2066696c6c3d2272676261283235352c3235352c3235352c302e3629223e4d696e205469636b3a203c2f747370616e3e3c74657874506174682073746172744f66667365743d222d31303025222066696c6c3d2277686974652220666f6e742d66616d696c793d2227436f7572696572204e6577272c206d6f6e6f73706163652220666f6e742d73697a653d22313070782220786c696e6b3a687265663d2223746578742d706174682d61223e3c6c696e6561724772616469656e742069643d22677261642d646f776e222078313d2230222078323d2231222079313d2230222079323d2231223e3c73746f70206f66667365743d22302e30222073746f702d636f6c6f723d227768697465222073746f702d6f7061636974793d223122202f3e3c73746f70206f66667365743d22302e39222073746f702d636f6c6f723d227768697465222073746f702d6f7061636974793d223022202f3e3c2f6c696e6561724772616469656e743e3c66696c7465722069643d226631223e3c6665496d61676520726573756c743d2270302220786c696e6b3a687265663d22646174613a696d6167652f7376672b786d6c3b6261736536342c3c7376672077696474683d2732393027206865696768743d27353030272076696577426f783d2730203020323930203530302720786d6c6e733d27687474703a2f2f7777772e77332e6f72672f323030302f737667273e3c726563742077696474683d27323930707827206865696768743d273530307078272066696c6c3d2723222f3e3c6665496d61676520726573756c743d2270322220786c696e6b3a687265663d22646174613a696d6167652f7376672b786d6c3b6261736536342c3c656c6c697073652063783d22353025222063793d22307078222072783d223138307078222072793d223132307078222066696c6c3d222330303022206f7061636974793d22302e383522202f3e3c2f673e707822206865696768743d2232367078222072783d22387078222072793d22387078222066696c6c3d227267626128302c302c302c302e362922202f3e70782220723d22347078222066696c6c3d22776869746522202f3e3c636972636c652063783d2231312e333437384c32342031324c31342e343334312031322e363532324c32322e333932332031384c31332e373831392031332e373831394c31382032322e333932334c31322e363532322031342e343334314c31322032344c31312e333437382031342e343334314c362032322e33393c726563742066696c6c3d226e6f6e652220783d223070782220793d22307078222077696474683d22323930707822206865696768743d22353030707822202f3e4142434445464748494a4b4c4d4e4f505152535455565758595a6162636465666768696a6b6c6d6e6f707172737475767778797a303132333435363738392b2f20786d6c6e733a786c696e6b3d27687474703a2f2f7777772e77332e6f72672f313939392f786c696e6b273e3c6c696e6561724772616469656e742069643d22677261642d73796d626f6c223e3c73746f70206f66667365743d22302e37222073746f702d636f6c6f723d227768697465222073746f702d6f7061636974793d223122202f3e3c73746f70206f66667365743d222e3935222073746f702d636f6c6f723d227768697465222073746f702d6f7061636974793d223022202f3e3c2f6c696e6561724772616469656e743e207374796c653d227472616e73666f726d3a7472616e736c61746528373270782c313839707829223e3c7265637420783d222d313670782220793d222d31367078222077696474683d22313830707822206865696768743d223138307078222066696c6c3d226e6f6e6522202f3e3c7061746820643d22207374796c653d227472616e73666f726d3a7472616e736c61746528373270782c313839707829223e70782220723d2232347078222066696c6c3d226e6f6e6522207374726f6b653d22776869746522202f3e3c7265637420783d222d313670782220793d222d31367078222077696474683d22313830707822206865696768743d223138307078222066696c6c3d226e6f6e6522202f3e536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f773c673e3c70617468207374796c653d227472616e73666f726d3a7472616e736c617465283670782c367078292220643d224d313220304c31322e3635323220392e35363538374c313820312e363037374c31332e373831392031302e323138314c32322e3339323320364c31342e34333431203c70617468207374726f6b652d6c696e656361703d22726f756e642220643d224d38203943382e30303030342032322e393439342031362e32303939203238203237203238222066696c6c3d226e6f6e6522207374726f6b653d22776869746522202f3e20726570656174436f756e743d22696e646566696e69746522202f3e3c2f74657874506174683e3c74657874506174682073746172744f66667365743d222d353025222066696c6c3d2277686974652220666f6e742d66616d696c793d2227436f7572696572204e6577272c206d6f6e6f73706163652220666f6e742d73697a653d22313070782220786c696e6b3a687265663d2223746578742d706174682d61223e3c6d61736b2069643d22666164652d646f776e22206d61736b436f6e74656e74556e6974733d226f626a656374426f756e64696e67426f78223e3c726563742077696474683d223122206865696768743d2231222066696c6c3d2275726c2823677261642d646f776e2922202f3e3c2f6d61736b3e22207374726f6b653d2272676261283235352c3235352c3235352c3129222066696c6c3d226e6f6e6522207374726f6b652d6c696e656361703d22726f756e6422202f3e3c2f673e696e3d22626c656e644f75742220737464446576696174696f6e3d22343222202f3e3c2f66696c7465723e203c636c6970506174682069643d22636f726e657273223e3c726563742077696474683d2232393022206865696768743d22353030222072783d223432222072793d22343222202f3e3c2f636c6970506174683e203c67207374796c653d227472616e73666f726d3a7472616e736c61746528323970782c20333834707829223e3c6c696e6561724772616469656e742069643d22677261642d7570222078313d2231222078323d2230222079313d2231222079323d2230223e3c73746f70206f66667365743d22302e30222073746f702d636f6c6f723d227768697465222073746f702d6f7061636974793d223122202f3e32334c31302e323138312031332e373831394c312e363037372031384c392e35363538372031322e363532324c302031324c392e35363538372031312e333437384c312e3630373720364c31302e323138312031302e323138314c3620312e363037374c31312e3334373820392e35363538374c313220305a222066696c6c3d22776869746522202f3e3c67207374796c653d227472616e73666f726d3a7472616e736c6174652832323670782c20333932707829223e3c726563742077696474683d223336707822206865696768743d2233367078222072783d22387078222072793d22387078222066696c6c3d226e6f6e6522207374726f6b653d2272676261283235352c3235352c3235352c302e322922202f3e3c74657874506174682073746172744f66667365743d22353025222066696c6c3d2277686974652220666f6e742d66616d696c793d2227436f7572696572204e6577272c206d6f6e6f73706163652220666f6e742d73697a653d22313070782220786c696e6b3a687265663d2223746578742d706174682d61223e3c7465787420783d22313270782220793d22313770782220666f6e742d66616d696c793d2227436f7572696572204e6577272c206d6f6e6f73706163652220666f6e742d73697a653d2231327078222066696c6c3d227768697465223e3c747370616e2066696c6c3d2272676261283235352c3235352c3235352c302e3629223e4d6178205469636b3a203c2f747370616e3e3c616e696d6174655472616e73666f726d206174747269627574654e616d653d227472616e73666f726d2220747970653d22726f74617465222066726f6d3d22302031382031382220746f3d2233363020313820313822206475723d223130732220726570656174436f756e743d22696e646566696e697465222f3e3c2f673e3c2f673e3c706174682069643d22746578742d706174682d612220643d224d34302031322048323530204132382032382030203020312032373820343020563436302041323820323820302030203120323530203438382048343020413238203238203020302031203132203436302056343020413238203238203020302031203430203132207a22202f3e222f3e3c6665496d61676520726573756c743d2270312220786c696e6b3a687265663d22646174613a696d6167652f7376672b786d6c3b6261736536342c3c6d61736b2069643d22666164652d73796d626f6c22206d61736b436f6e74656e74556e6974733d227573657253706163654f6e557365223e3c726563742077696474683d22323930707822206865696768743d223230307078222066696c6c3d2275726c2823677261642d73796d626f6c2922202f3e3c2f6d61736b3e3c2f646566733e3c7265637420783d22302220793d2230222077696474683d2232393022206865696768743d22353030222072783d223432222072793d223432222066696c6c3d227267626128302c302c302c302922207374726f6b653d2272676261283235352c3235352c3235352c302e322922202f3e3c2f673e3c66696c7465722069643d22746f702d726567696f6e2d626c7572223e3c6665476175737369616e426c757220696e3d22536f75726365477261706869632220737464446576696174696f6e3d22323422202f3e3c2f66696c7465723e3c2f74657874506174683e203c74657874506174682073746172744f66667365743d223025222066696c6c3d2277686974652220666f6e742d66616d696c793d2227436f7572696572204e6577272c206d6f6e6f73706163652220666f6e742d73697a653d22313070782220786c696e6b3a687265663d2223746578742d706174682d61223e3c7465787420746578742d72656e646572696e673d226f7074696d697a655370656564223e5369676e6564536166654d6174683a207375627472616374696f6e206f766572666c6f773c7265637420783d2231362220793d223136222077696474683d2232353822206865696768743d22343638222072783d223236222072793d223236222066696c6c3d227267626128302c302c302c302922207374726f6b653d2272676261283235352c3235352c3235352c302e322922202f3e3c7465787420783d22313270782220793d22313770782220666f6e742d66616d696c793d2227436f7572696572204e6577272c206d6f6e6f73706163652220666f6e742d73697a653d2231327078222066696c6c3d227768697465223e3c747370616e2066696c6c3d2272676261283235352c3235352c3235352c302e3629223e49443a203c2f747370616e3e3c726563742077696474683d223336707822206865696768743d2233367078222072783d22387078222072793d22387078222066696c6c3d226e6f6e6522207374726f6b653d2272676261283235352c3235352c3235352c302e322922202f3e3c2f746578743e3c7465787420793d2231313570782220783d2233327078222066696c6c3d2277686974652220666f6e742d66616d696c793d2227436f7572696572204e6577272c206d6f6e6f73706163652220666f6e742d7765696768743d223230302220666f6e742d73697a653d2233367078223e3c2f746578743e3c2f673e3c67207374796c653d227472616e73666f726d3a7472616e736c6174652832323670782c20343333707829223e203c67207374796c653d227472616e73666f726d3a7472616e736c61746528323970782c20343134707829223ea164736f6c6343000706000a","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xC9 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xD5C0BDD8 GT PUSH2 0x81 JUMPI DUP1 PUSH4 0xE7386906 GT PUSH2 0x5B JUMPI DUP1 PUSH4 0xE7386906 EQ PUSH2 0x197 JUMPI DUP1 PUSH4 0xEA4D3BCD EQ PUSH2 0x1B7 JUMPI DUP1 PUSH4 0xF93A7911 EQ PUSH2 0x1CA JUMPI PUSH2 0xC9 JUMP JUMPDEST DUP1 PUSH4 0xD5C0BDD8 EQ PUSH2 0x15E JUMPI DUP1 PUSH4 0xD6986D45 EQ PUSH2 0x171 JUMPI DUP1 PUSH4 0xE1649FCF EQ PUSH2 0x184 JUMPI PUSH2 0xC9 JUMP JUMPDEST DUP1 PUSH4 0x5E57966D GT PUSH2 0xB2 JUMPI DUP1 PUSH4 0x5E57966D EQ PUSH2 0x118 JUMPI DUP1 PUSH4 0x854924AB EQ PUSH2 0x12B JUMPI DUP1 PUSH4 0x9288C218 EQ PUSH2 0x14B JUMPI PUSH2 0xC9 JUMP JUMPDEST DUP1 PUSH4 0x2FA2AF10 EQ PUSH2 0xCE JUMPI DUP1 PUSH4 0x3A0CDEE2 EQ PUSH2 0xF8 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xE1 PUSH2 0xDC CALLDATASIZE PUSH1 0x4 PUSH2 0x3EC7 JUMP JUMPDEST PUSH2 0x1DD JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xEF SWAP3 SWAP2 SWAP1 PUSH2 0x4296 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x10B PUSH2 0x106 CALLDATASIZE PUSH1 0x4 PUSH2 0x3E9C JUMP JUMPDEST PUSH2 0x1F6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xEF SWAP2 SWAP1 PUSH2 0x4283 JUMP JUMPDEST PUSH2 0x10B PUSH2 0x126 CALLDATASIZE PUSH1 0x4 PUSH2 0x3E80 JUMP JUMPDEST PUSH2 0x214 JUMP JUMPDEST PUSH2 0x13E PUSH2 0x139 CALLDATASIZE PUSH1 0x4 PUSH2 0x3FC7 JUMP JUMPDEST PUSH2 0x227 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xEF SWAP2 SWAP1 PUSH2 0x4454 JUMP JUMPDEST PUSH2 0x10B PUSH2 0x159 CALLDATASIZE PUSH1 0x4 PUSH2 0x3EF9 JUMP JUMPDEST PUSH2 0x2C3 JUMP JUMPDEST PUSH2 0x10B PUSH2 0x16C CALLDATASIZE PUSH1 0x4 PUSH2 0x416B JUMP JUMPDEST PUSH2 0x2DE JUMP JUMPDEST PUSH2 0x13E PUSH2 0x17F CALLDATASIZE PUSH1 0x4 PUSH2 0x3E9C JUMP JUMPDEST PUSH2 0x2F5 JUMP JUMPDEST PUSH2 0x10B PUSH2 0x192 CALLDATASIZE PUSH1 0x4 PUSH2 0x4000 JUMP JUMPDEST PUSH2 0x30A JUMP JUMPDEST PUSH2 0x1AA PUSH2 0x1A5 CALLDATASIZE PUSH1 0x4 PUSH2 0x41C9 JUMP JUMPDEST PUSH2 0x315 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xEF SWAP2 SWAP1 PUSH2 0x4278 JUMP JUMPDEST PUSH2 0x10B PUSH2 0x1C5 CALLDATASIZE PUSH1 0x4 PUSH2 0x41AF JUMP JUMPDEST PUSH2 0x321 JUMP JUMPDEST PUSH2 0x10B PUSH2 0x1D8 CALLDATASIZE PUSH1 0x4 PUSH2 0x3FC7 JUMP JUMPDEST PUSH2 0x32C JUMP JUMPDEST PUSH1 0x60 DUP1 PUSH2 0x1EA DUP5 DUP5 PUSH2 0x3BA JUMP JUMPDEST SWAP2 POP SWAP2 POP JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x20B DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH2 0x7EB JUMP JUMPDEST SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x21F DUP3 PUSH2 0x7FA JUMP JUMPDEST SWAP1 POP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 GAS PUSH1 0x40 MLOAD PUSH4 0xC49917D7 PUSH1 0xE0 SHL DUP2 MSTORE SWAP1 SWAP2 POP PUSH20 0x0 SWAP1 PUSH4 0xC49917D7 SWAP1 PUSH2 0x265 SWAP1 DUP7 SWAP1 PUSH1 0x4 ADD PUSH2 0x42BB JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x27D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS DELEGATECALL ISZERO DUP1 ISZERO PUSH2 0x291 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x2B9 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x3F5D JUMP JUMPDEST POP GAS SWAP1 SUB SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x2D2 DUP7 DUP7 DUP7 DUP7 DUP7 PUSH2 0x810 JUMP JUMPDEST SWAP1 POP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x2EB DUP5 DUP5 DUP5 PUSH2 0x93A JUMP JUMPDEST SWAP1 POP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x20B DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH2 0xB0E JUMP JUMPDEST PUSH1 0x60 PUSH2 0x21F DUP3 PUSH2 0xB15 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x20B DUP4 DUP4 PUSH2 0xD50 JUMP JUMPDEST PUSH1 0x60 PUSH2 0x21F DUP3 PUSH2 0xDB3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xC49917D7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x60 SWAP1 PUSH20 0x0 SWAP1 PUSH4 0xC49917D7 SWAP1 PUSH2 0x366 SWAP1 DUP6 SWAP1 PUSH1 0x4 ADD PUSH2 0x42BB JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x37E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS DELEGATECALL ISZERO DUP1 ISZERO PUSH2 0x392 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x21F SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x3F5D JUMP JUMPDEST PUSH1 0x60 DUP1 PUSH1 0x0 PUSH1 0x2 DUP6 DUP6 ADD DUP2 SIGNEXTEND SDIV SWAP1 POP PUSH3 0x1E847 NOT DUP2 PUSH1 0x2 SIGNEXTEND SLT ISZERO PUSH2 0x432 JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x7 PUSH1 0xFB SHL DUP2 MSTORE POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x3700000000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP SWAP3 POP SWAP3 POP POP PUSH2 0x1EF JUMP JUMPDEST PUSH3 0x124F7 NOT DUP2 PUSH1 0x2 SIGNEXTEND SLT ISZERO PUSH2 0x49B JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x7 PUSH1 0xFB SHL DUP2 MSTORE POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x4 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x31302E3500000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP SWAP3 POP SWAP3 POP POP PUSH2 0x1EF JUMP JUMPDEST PUSH2 0x61A7 NOT DUP2 PUSH1 0x2 SIGNEXTEND SLT ISZERO PUSH2 0x503 JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x7 PUSH1 0xFB SHL DUP2 MSTORE POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x5 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x31342E3235000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP SWAP3 POP SWAP3 POP POP PUSH2 0x1EF JUMP JUMPDEST PUSH2 0x1387 NOT DUP2 PUSH1 0x2 SIGNEXTEND SLT ISZERO PUSH2 0x56C JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x2 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x3130000000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x2 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x627 PUSH1 0xF3 SHL DUP2 MSTORE POP SWAP3 POP SWAP3 POP POP PUSH2 0x1EF JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x2 SIGNEXTEND SLT ISZERO PUSH2 0x5D3 JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x2 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x3131000000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x2 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x3231 PUSH1 0xF0 SHL DUP2 MSTORE POP SWAP3 POP SWAP3 POP POP PUSH2 0x1EF JUMP JUMPDEST PUSH2 0x1388 DUP2 PUSH1 0x2 SIGNEXTEND SLT ISZERO PUSH2 0x656 JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x2 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x3133000000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x2 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x3233000000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP SWAP3 POP SWAP3 POP POP PUSH2 0x1EF JUMP JUMPDEST PUSH2 0x61A8 DUP2 PUSH1 0x2 SIGNEXTEND SLT ISZERO PUSH2 0x6D9 JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x2 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x3135000000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x2 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x3235000000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP SWAP3 POP SWAP3 POP POP PUSH2 0x1EF JUMP JUMPDEST PUSH3 0x124F8 DUP2 PUSH1 0x2 SIGNEXTEND SLT ISZERO PUSH2 0x742 JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x2 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x627 PUSH1 0xF3 SHL DUP2 MSTORE POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x2 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x3236000000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP SWAP3 POP SWAP3 POP POP PUSH2 0x1EF JUMP JUMPDEST PUSH3 0x1E848 DUP2 PUSH1 0x2 SIGNEXTEND SLT ISZERO PUSH2 0x790 JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x2 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x3231 PUSH1 0xF0 SHL DUP2 MSTORE POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x2 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x3237 PUSH1 0xF0 SHL DUP2 MSTORE POP SWAP3 POP SWAP3 POP POP PUSH2 0x1EF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x2 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x3234000000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x2 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x3237 PUSH1 0xF0 SHL DUP2 MSTORE POP SWAP3 POP SWAP3 POP POP PUSH2 0x1EF JUMP JUMPDEST PUSH1 0x60 PUSH2 0x20B DUP4 DUP4 SHR PUSH1 0x3 PUSH2 0x100E JUMP JUMPDEST PUSH1 0x60 PUSH2 0x21F PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x14 PUSH2 0x10D5 JUMP JUMPDEST PUSH1 0x60 DUP5 PUSH1 0x2 DUP2 SWAP1 SIGNEXTEND PUSH3 0xD89E7 NOT DUP2 PUSH2 0x824 JUMPI INVALID JUMPDEST SDIV MUL PUSH1 0x2 SIGNEXTEND DUP7 PUSH1 0x2 SIGNEXTEND EQ ISZERO PUSH2 0x87E JUMPI DUP2 ISZERO PUSH2 0x85A JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x3 DUP2 MSTORE PUSH1 0x20 ADD PUSH3 0x9A82B PUSH1 0xEB SHL DUP2 MSTORE POP PUSH2 0x877 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x3 DUP2 MSTORE PUSH1 0x20 ADD PUSH3 0x26A4A7 PUSH1 0xE9 SHL DUP2 MSTORE POP JUMPDEST SWAP1 POP PUSH2 0x2D5 JUMP JUMPDEST DUP5 PUSH1 0x2 DUP2 SWAP1 SIGNEXTEND PUSH3 0xD89E8 DUP2 PUSH2 0x88F JUMPI INVALID JUMPDEST SDIV MUL PUSH1 0x2 SIGNEXTEND DUP7 PUSH1 0x2 SIGNEXTEND EQ ISZERO PUSH2 0x8E5 JUMPI DUP2 ISZERO PUSH2 0x8C5 JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x3 DUP2 MSTORE PUSH1 0x20 ADD PUSH3 0x26A4A7 PUSH1 0xE9 SHL DUP2 MSTORE POP PUSH2 0x877 JUMP JUMPDEST POP PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x3 DUP2 MSTORE PUSH3 0x9A82B PUSH1 0xEB SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH2 0x2D5 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x8F0 DUP8 PUSH2 0x125D JUMP JUMPDEST SWAP1 POP DUP3 ISZERO PUSH2 0x927 JUMPI PUSH2 0x924 PUSH25 0x1000000000000000000000000000000000000000000000000 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x15AB JUMP JUMPDEST SWAP1 POP JUMPDEST PUSH2 0x932 DUP2 DUP7 DUP7 PUSH2 0x93A JUMP JUMPDEST SWAP2 POP POP PUSH2 0x2D5 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH2 0x949 DUP6 DUP6 DUP6 PUSH2 0x1612 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x961 DUP3 DUP4 PUSH9 0x10000000000000000 PUSH2 0x1714 JUMP JUMPDEST SWAP1 POP PUSH13 0x1000000000000000000000000 DUP3 LT DUP1 ISZERO PUSH2 0x9A2 JUMPI PUSH2 0x99B DUP3 PUSH19 0x47BF19673DF52E37F2410011D100000000000 PUSH1 0x1 PUSH1 0x80 SHL PUSH2 0x1714 JUMP JUMPDEST SWAP2 POP PUSH2 0x9B7 JUMP JUMPDEST PUSH2 0x9B4 DUP3 PUSH3 0x186A0 PUSH1 0x1 PUSH1 0x80 SHL PUSH2 0x1714 JUMP JUMPDEST SWAP2 POP JUMPDEST DUP2 PUSH1 0x0 JUMPDEST DUP2 ISZERO PUSH2 0x9CF JUMPI PUSH1 0x1 ADD PUSH1 0xA DUP3 DIV SWAP2 POP PUSH2 0x9BB JUMP JUMPDEST PUSH1 0x0 NOT ADD PUSH1 0x0 DUP1 PUSH2 0x9E0 DUP7 DUP5 PUSH2 0x17C3 JUMP JUMPDEST SWAP2 POP SWAP2 POP DUP1 ISZERO PUSH2 0x9F1 JUMPI PUSH1 0x1 SWAP1 SWAP3 ADD SWAP2 JUMPDEST PUSH2 0x9F9 PUSH2 0x3D9A JUMP JUMPDEST DUP6 ISZERO PUSH2 0xA6C JUMPI PUSH2 0xA18 PUSH2 0xA10 PUSH1 0x2B PUSH1 0xFF DUP8 AND PUSH2 0x182F JUMP JUMPDEST PUSH1 0x7 SWAP1 PUSH2 0x188C JUMP JUMPDEST PUSH1 0xFF SWAP1 DUP2 AND PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x2 PUSH1 0x80 DUP4 ADD MSTORE PUSH2 0xA44 SWAP1 PUSH1 0x1 SWAP1 PUSH2 0xA3E SWAP1 PUSH1 0x2B SWAP1 DUP9 AND PUSH2 0x182F JUMP JUMPDEST SWAP1 PUSH2 0x188C JUMP JUMPDEST PUSH1 0xFF SWAP1 DUP2 AND PUSH1 0xA0 DUP4 ADD MSTORE PUSH1 0x20 DUP3 ADD MLOAD PUSH2 0xA5F SWAP2 AND PUSH1 0x1 PUSH2 0x182F JUMP JUMPDEST PUSH1 0xFF AND PUSH1 0x40 DUP3 ADD MSTORE PUSH2 0xAE3 JUMP JUMPDEST PUSH1 0x9 DUP5 PUSH1 0xFF AND LT PUSH2 0xAB5 JUMPI PUSH2 0xA85 PUSH1 0xFF DUP6 AND PUSH1 0x4 PUSH2 0x182F JUMP JUMPDEST PUSH1 0xFF AND PUSH1 0x20 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x5 PUSH1 0x80 DUP4 ADD MSTORE PUSH2 0xAA1 SWAP1 PUSH1 0x1 PUSH2 0x182F JUMP JUMPDEST PUSH1 0xFF AND PUSH1 0xA0 DUP3 ADD MSTORE PUSH1 0x4 PUSH1 0x40 DUP3 ADD MSTORE PUSH2 0xAE3 JUMP JUMPDEST PUSH1 0x6 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x5 PUSH1 0x40 DUP3 ADD DUP2 SWAP1 MSTORE PUSH2 0xADA SWAP1 PUSH1 0x1 SWAP1 PUSH2 0xA3E SWAP1 PUSH1 0xFF DUP9 AND SWAP1 PUSH2 0x182F JUMP JUMPDEST PUSH1 0xFF AND PUSH1 0x60 DUP3 ADD MSTORE JUMPDEST DUP3 DUP2 MSTORE DUP6 ISZERO ISZERO PUSH1 0xC0 DUP3 ADD MSTORE PUSH1 0x0 PUSH1 0xE0 DUP3 ADD MSTORE PUSH2 0xAFE DUP2 PUSH2 0x18E6 JUMP JUMPDEST SWAP13 SWAP12 POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST SHR PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 PUSH2 0x2A0 ADD PUSH1 0x40 MSTORE DUP1 PUSH2 0xB32 DUP6 PUSH1 0x20 ADD MLOAD PUSH2 0x7FA JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xB44 DUP6 PUSH1 0x40 ADD MLOAD PUSH2 0x7FA JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD DUP5 PUSH2 0x1A0 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP5 PUSH1 0x60 ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD DUP5 PUSH1 0x80 ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xB7F DUP6 PUSH2 0x180 ADD MLOAD PUSH2 0xDB3 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD DUP5 PUSH2 0x100 ADD MLOAD PUSH1 0x2 SIGNEXTEND DUP2 MSTORE PUSH1 0x20 ADD DUP5 PUSH2 0x120 ADD MLOAD PUSH1 0x2 SIGNEXTEND DUP2 MSTORE PUSH1 0x20 ADD DUP5 PUSH2 0x160 ADD MLOAD PUSH1 0x2 SIGNEXTEND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xBC8 DUP6 PUSH2 0x100 ADD MLOAD DUP7 PUSH2 0x120 ADD MLOAD DUP8 PUSH2 0x140 ADD MLOAD PUSH2 0x1B12 JUMP JUMPDEST PUSH1 0x0 SIGNEXTEND DUP2 MSTORE PUSH1 0x20 ADD DUP5 PUSH1 0x0 ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xBF2 DUP6 PUSH1 0x20 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x88 PUSH2 0x7EB JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xC0F DUP6 PUSH1 0x40 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x88 PUSH2 0x7EB JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xC2C DUP6 PUSH1 0x20 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 PUSH2 0x7EB JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xC49 DUP6 PUSH1 0x40 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 PUSH2 0x7EB JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xC7C PUSH2 0xC6E DUP7 PUSH1 0x20 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x10 DUP9 PUSH1 0x0 ADD MLOAD PUSH2 0x1B49 JUMP JUMPDEST PUSH1 0x0 PUSH1 0xFF PUSH1 0x10 PUSH2 0x112 PUSH2 0x1B69 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xCAF PUSH2 0xCA1 DUP7 PUSH1 0x40 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x10 DUP9 PUSH1 0x0 ADD MLOAD PUSH2 0x1B49 JUMP JUMPDEST PUSH1 0x0 PUSH1 0xFF PUSH1 0x64 PUSH2 0x1E4 PUSH2 0x1B69 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xCD4 PUSH2 0xC6E DUP7 PUSH1 0x20 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x20 DUP9 PUSH1 0x0 ADD MLOAD PUSH2 0x1B49 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xCF9 PUSH2 0xCA1 DUP7 PUSH1 0x40 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x20 DUP9 PUSH1 0x0 ADD MLOAD PUSH2 0x1B49 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xD1E PUSH2 0xC6E DUP7 PUSH1 0x20 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x30 DUP9 PUSH1 0x0 ADD MLOAD PUSH2 0x1B49 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xD43 PUSH2 0xCA1 DUP7 PUSH1 0x40 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x30 DUP9 PUSH1 0x0 ADD MLOAD PUSH2 0x1B49 JUMP JUMPDEST SWAP1 MSTORE SWAP1 POP PUSH2 0x2EE DUP2 PUSH2 0x1BA7 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP1 DUP3 ADD DUP6 SWAP1 MSTORE PUSH12 0xFFFFFFFFFFFFFFFFFFFFFFFF NOT PUSH1 0x60 DUP6 SWAP1 SHL AND DUP3 DUP5 ADD MSTORE DUP3 MLOAD PUSH1 0x34 DUP2 DUP5 SUB ADD DUP2 MSTORE PUSH1 0x54 SWAP1 SWAP3 ADD SWAP1 SWAP3 MSTORE DUP1 MLOAD SWAP2 ADD KECCAK256 PUSH1 0x0 SWAP1 PUSH2 0xD97 DUP5 PUSH2 0x1E36 JUMP JUMPDEST PUSH1 0x2 MUL PUSH1 0x1 ADD PUSH1 0xFF AND PUSH1 0x0 NOT DUP2 PUSH2 0xDAA JUMPI INVALID JUMPDEST DIV GT SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH3 0xFFFFFF DUP3 AND PUSH2 0xDF9 JUMPI POP PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x2 DUP2 MSTORE PUSH32 0x3025000000000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP3 ADD MSTORE PUSH2 0x222 JUMP JUMPDEST DUP2 PUSH1 0x0 DUP1 JUMPDEST PUSH3 0xFFFFFF DUP4 AND ISZERO PUSH2 0xE49 JUMPI PUSH1 0xFF DUP2 AND ISZERO PUSH2 0xE1A JUMPI PUSH1 0x1 ADD PUSH2 0xE33 JUMP JUMPDEST PUSH1 0xA PUSH3 0xFFFFFF DUP5 AND MOD PUSH3 0xFFFFFF AND PUSH1 0x0 EQ PUSH2 0xE33 JUMPI PUSH1 0x1 ADD JUMPDEST PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 PUSH1 0xA PUSH3 0xFFFFFF DUP5 AND DIV SWAP3 POP PUSH2 0xDFE JUMP JUMPDEST PUSH2 0xE51 PUSH2 0x3D9A JUMP JUMPDEST PUSH1 0x0 PUSH1 0x5 DUP5 LT PUSH2 0xF40 JUMPI PUSH1 0x0 PUSH1 0x4 PUSH2 0xE6C DUP7 PUSH1 0xFF DUP8 AND PUSH2 0x182F JUMP JUMPDEST LT ISZERO PUSH2 0xE79 JUMPI PUSH1 0x1 PUSH2 0xE7C JUMP JUMPDEST PUSH1 0x0 JUMPDEST PUSH1 0xFF SWAP1 DUP2 AND SWAP2 POP PUSH2 0xE90 SWAP1 DUP6 AND PUSH1 0x1 PUSH2 0x182F JUMP JUMPDEST PUSH2 0xE9B DUP7 PUSH1 0x5 PUSH2 0x182F JUMP JUMPDEST LT PUSH2 0xEC7 JUMPI PUSH2 0xEC2 PUSH2 0xEB1 PUSH1 0xFF DUP7 AND PUSH1 0x1 PUSH2 0x182F JUMP JUMPDEST PUSH2 0xEBC DUP8 PUSH1 0x5 PUSH2 0x182F JUMP JUMPDEST SWAP1 PUSH2 0x182F JUMP JUMPDEST PUSH2 0xECA JUMP JUMPDEST PUSH1 0x0 JUMPDEST PUSH1 0xFF DUP6 AND PUSH1 0x80 DUP6 ADD DUP2 SWAP1 MSTORE SWAP1 SWAP3 POP PUSH2 0xEE9 SWAP1 PUSH1 0x1 SWAP1 PUSH2 0xEBC SWAP1 DUP6 PUSH2 0x188C JUMP JUMPDEST PUSH1 0xFF SWAP1 DUP2 AND PUSH1 0xA0 DUP6 ADD MSTORE PUSH1 0x80 DUP5 ADD MLOAD PUSH2 0xF0A SWAP2 DUP4 SWAP2 PUSH2 0xA3E SWAP2 AND PUSH1 0x1 PUSH2 0x182F JUMP JUMPDEST PUSH1 0xFF SWAP1 DUP2 AND PUSH1 0x40 DUP6 ADD MSTORE PUSH2 0xF32 SWAP1 DUP3 SWAP1 PUSH2 0xA3E SWAP1 PUSH2 0xF2B SWAP1 DUP9 AND PUSH1 0x1 PUSH2 0x188C JUMP JUMPDEST DUP6 SWAP1 PUSH2 0x188C JUMP JUMPDEST PUSH1 0xFF AND PUSH1 0x20 DUP5 ADD MSTORE POP PUSH2 0xFB0 JUMP JUMPDEST PUSH2 0xF4B PUSH1 0x5 DUP6 PUSH2 0x182F JUMP JUMPDEST PUSH1 0x2 PUSH1 0x80 DUP5 ADD DUP2 SWAP1 MSTORE SWAP1 SWAP2 POP PUSH2 0xF69 SWAP1 PUSH1 0x1 SWAP1 PUSH2 0xEBC SWAP1 DUP5 SWAP1 PUSH2 0x188C JUMP JUMPDEST PUSH1 0xFF SWAP1 DUP2 AND PUSH1 0xA0 DUP5 ADD MSTORE PUSH2 0xF8B SWAP1 PUSH2 0xF84 SWAP1 DUP6 AND PUSH1 0x2 PUSH2 0x188C JUMP JUMPDEST DUP3 SWAP1 PUSH2 0x188C JUMP JUMPDEST PUSH1 0xFF AND PUSH1 0x20 DUP4 ADD DUP2 SWAP1 MSTORE PUSH2 0xFA0 SWAP1 PUSH1 0x2 PUSH2 0x182F JUMP JUMPDEST PUSH1 0xFF AND PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x1 PUSH1 0xC0 DUP4 ADD MSTORE JUMPDEST PUSH2 0xFCF PUSH2 0xFC0 DUP6 PUSH1 0xFF DUP7 AND PUSH2 0x182F JUMP JUMPDEST PUSH3 0xFFFFFF DUP10 AND SWAP1 PUSH1 0xA EXP PUSH2 0x15AB JUMP JUMPDEST DUP3 MSTORE PUSH1 0x1 PUSH1 0xE0 DUP4 ADD MSTORE PUSH1 0x4 DUP5 GT PUSH2 0xFE7 JUMPI PUSH1 0x0 PUSH2 0xFF2 JUMP JUMPDEST PUSH2 0xFF2 DUP5 PUSH1 0x4 PUSH2 0x182F JUMP JUMPDEST PUSH1 0xFF AND PUSH1 0x60 DUP4 ADD MSTORE PUSH2 0x1003 DUP3 PUSH2 0x18E6 JUMP JUMPDEST SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP3 PUSH1 0x2 MUL PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP1 ISZERO PUSH2 0x102C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x1057 JUMPI PUSH1 0x20 DUP3 ADD DUP2 DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP DUP1 MLOAD SWAP1 SWAP2 POP JUMPDEST DUP1 ISZERO PUSH2 0x10CD JUMPI PUSH32 0x3031323334353637383961626364656600000000000000000000000000000000 DUP6 PUSH1 0xF AND PUSH1 0x10 DUP2 LT PUSH2 0x1093 JUMPI INVALID JUMPDEST BYTE PUSH1 0xF8 SHL DUP3 PUSH1 0x1 DUP4 SUB DUP2 MLOAD DUP2 LT PUSH2 0x10A6 JUMPI INVALID JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH1 0x4 SWAP5 SWAP1 SWAP5 SHR SWAP4 PUSH1 0x0 NOT ADD PUSH2 0x105E JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP3 PUSH1 0x2 MUL PUSH1 0x2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP1 ISZERO PUSH2 0x10F6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x1121 JUMPI PUSH1 0x20 DUP3 ADD DUP2 DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP PUSH1 0x3 PUSH1 0xFC SHL DUP2 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x1136 JUMPI INVALID JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH32 0x7800000000000000000000000000000000000000000000000000000000000000 DUP2 PUSH1 0x1 DUP2 MLOAD DUP2 LT PUSH2 0x117B JUMPI INVALID JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH1 0x1 PUSH1 0x2 DUP5 MUL ADD JUMPDEST PUSH1 0x1 DUP2 GT ISZERO PUSH2 0x1209 JUMPI PUSH32 0x3031323334353637383961626364656600000000000000000000000000000000 DUP6 PUSH1 0xF AND PUSH1 0x10 DUP2 LT PUSH2 0x11D2 JUMPI INVALID JUMPDEST BYTE PUSH1 0xF8 SHL DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x11E2 JUMPI INVALID JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH1 0x4 SWAP5 SWAP1 SWAP5 SHR SWAP4 PUSH1 0x0 NOT ADD PUSH2 0x119A JUMP JUMPDEST POP DUP4 ISZERO PUSH2 0x20B JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x537472696E67733A20686578206C656E67746820696E73756666696369656E74 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 PUSH1 0x2 SIGNEXTEND SLT PUSH2 0x1274 JUMPI DUP3 PUSH1 0x2 SIGNEXTEND PUSH2 0x127C JUMP JUMPDEST DUP3 PUSH1 0x2 SIGNEXTEND PUSH1 0x0 SUB JUMPDEST SWAP1 POP PUSH3 0xD89E8 DUP2 GT ISZERO PUSH2 0x12D6 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5400000000000000000000000000000000000000000000000000000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x1 DUP3 AND PUSH2 0x12EA JUMPI PUSH1 0x1 PUSH1 0x80 SHL PUSH2 0x12FC JUMP JUMPDEST PUSH16 0xFFFCB933BD6FAD37AA2D162D1A594001 JUMPDEST PUSH17 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND SWAP1 POP PUSH1 0x2 DUP3 AND ISZERO PUSH2 0x1330 JUMPI PUSH16 0xFFF97272373D413259A46990580E213A MUL PUSH1 0x80 SHR JUMPDEST PUSH1 0x4 DUP3 AND ISZERO PUSH2 0x134F JUMPI PUSH16 0xFFF2E50F5F656932EF12357CF3C7FDCC MUL PUSH1 0x80 SHR JUMPDEST PUSH1 0x8 DUP3 AND ISZERO PUSH2 0x136E JUMPI PUSH16 0xFFE5CACA7E10E4E61C3624EAA0941CD0 MUL PUSH1 0x80 SHR JUMPDEST PUSH1 0x10 DUP3 AND ISZERO PUSH2 0x138D JUMPI PUSH16 0xFFCB9843D60F6159C9DB58835C926644 MUL PUSH1 0x80 SHR JUMPDEST PUSH1 0x20 DUP3 AND ISZERO PUSH2 0x13AC JUMPI PUSH16 0xFF973B41FA98C081472E6896DFB254C0 MUL PUSH1 0x80 SHR JUMPDEST PUSH1 0x40 DUP3 AND ISZERO PUSH2 0x13CB JUMPI PUSH16 0xFF2EA16466C96A3843EC78B326B52861 MUL PUSH1 0x80 SHR JUMPDEST PUSH1 0x80 DUP3 AND ISZERO PUSH2 0x13EA JUMPI PUSH16 0xFE5DEE046A99A2A811C461F1969C3053 MUL PUSH1 0x80 SHR JUMPDEST PUSH2 0x100 DUP3 AND ISZERO PUSH2 0x140A JUMPI PUSH16 0xFCBE86C7900A88AEDCFFC83B479AA3A4 MUL PUSH1 0x80 SHR JUMPDEST PUSH2 0x200 DUP3 AND ISZERO PUSH2 0x142A JUMPI PUSH16 0xF987A7253AC413176F2B074CF7815E54 MUL PUSH1 0x80 SHR JUMPDEST PUSH2 0x400 DUP3 AND ISZERO PUSH2 0x144A JUMPI PUSH16 0xF3392B0822B70005940C7A398E4B70F3 MUL PUSH1 0x80 SHR JUMPDEST PUSH2 0x800 DUP3 AND ISZERO PUSH2 0x146A JUMPI PUSH16 0xE7159475A2C29B7443B29C7FA6E889D9 MUL PUSH1 0x80 SHR JUMPDEST PUSH2 0x1000 DUP3 AND ISZERO PUSH2 0x148A JUMPI PUSH16 0xD097F3BDFD2022B8845AD8F792AA5825 MUL PUSH1 0x80 SHR JUMPDEST PUSH2 0x2000 DUP3 AND ISZERO PUSH2 0x14AA JUMPI PUSH16 0xA9F746462D870FDF8A65DC1F90E061E5 MUL PUSH1 0x80 SHR JUMPDEST PUSH2 0x4000 DUP3 AND ISZERO PUSH2 0x14CA JUMPI PUSH16 0x70D869A156D2A1B890BB3DF62BAF32F7 MUL PUSH1 0x80 SHR JUMPDEST PUSH2 0x8000 DUP3 AND ISZERO PUSH2 0x14EA JUMPI PUSH16 0x31BE135F97D08FD981231505542FCFA6 MUL PUSH1 0x80 SHR JUMPDEST PUSH3 0x10000 DUP3 AND ISZERO PUSH2 0x150B JUMPI PUSH16 0x9AA508B5B7A84E1C677DE54F3E99BC9 MUL PUSH1 0x80 SHR JUMPDEST PUSH3 0x20000 DUP3 AND ISZERO PUSH2 0x152B JUMPI PUSH15 0x5D6AF8DEDB81196699C329225EE604 MUL PUSH1 0x80 SHR JUMPDEST PUSH3 0x40000 DUP3 AND ISZERO PUSH2 0x154A JUMPI PUSH14 0x2216E584F5FA1EA926041BEDFE98 MUL PUSH1 0x80 SHR JUMPDEST PUSH3 0x80000 DUP3 AND ISZERO PUSH2 0x1567 JUMPI PUSH12 0x48A170391F7DC42444E8FA2 MUL PUSH1 0x80 SHR JUMPDEST PUSH1 0x0 DUP5 PUSH1 0x2 SIGNEXTEND SGT ISZERO PUSH2 0x1582 JUMPI DUP1 PUSH1 0x0 NOT DUP2 PUSH2 0x157E JUMPI INVALID JUMPDEST DIV SWAP1 POP JUMPDEST PUSH5 0x100000000 DUP2 MOD ISZERO PUSH2 0x1596 JUMPI PUSH1 0x1 PUSH2 0x1599 JUMP JUMPDEST PUSH1 0x0 JUMPDEST PUSH1 0xFF AND PUSH1 0x20 DUP3 SWAP1 SHR ADD SWAP3 POP POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 GT PUSH2 0x1601 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x536166654D6174683A206469766973696F6E206279207A65726F000000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST DUP2 DUP4 DUP2 PUSH2 0x160A JUMPI INVALID JUMPDEST DIV SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x162D PUSH2 0x1628 PUSH1 0xFF DUP7 DUP2 AND SWAP1 DUP7 AND PUSH2 0x1ED6 JUMP JUMPDEST PUSH2 0x1F3B JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 GT DUP1 ISZERO PUSH2 0x1640 JUMPI POP PUSH1 0x12 DUP2 GT ISZERO JUMPDEST ISZERO PUSH2 0x1701 JUMPI DUP3 PUSH1 0xFF AND DUP5 PUSH1 0xFF AND GT ISZERO PUSH2 0x16AA JUMPI PUSH2 0x1674 PUSH2 0x1661 DUP3 PUSH1 0x2 PUSH2 0x15AB JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 AND SWAP1 PUSH1 0xA EXP PUSH2 0x1F52 JUMP JUMPDEST SWAP2 POP PUSH1 0x2 DUP2 MOD PUSH1 0x1 EQ ISZERO PUSH2 0x16A5 JUMPI PUSH2 0x16A2 DUP3 PUSH17 0x3298B075B4B6A5240945790619B37FD4A PUSH1 0x1 PUSH1 0x80 SHL PUSH2 0x1714 JUMP JUMPDEST SWAP2 POP JUMPDEST PUSH2 0x16FC JUMP JUMPDEST PUSH2 0x16CB PUSH2 0x16B8 DUP3 PUSH1 0x2 PUSH2 0x15AB JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 AND SWAP1 PUSH1 0xA EXP PUSH2 0x15AB JUMP JUMPDEST SWAP2 POP PUSH1 0x2 DUP2 MOD PUSH1 0x1 EQ ISZERO PUSH2 0x16FC JUMPI PUSH2 0x16F9 DUP3 PUSH1 0x1 PUSH1 0x80 SHL PUSH17 0x3298B075B4B6A5240945790619B37FD4A PUSH2 0x1714 JUMP JUMPDEST SWAP2 POP JUMPDEST PUSH2 0x10CD JUMP JUMPDEST POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 PUSH1 0x0 NOT DUP6 DUP8 MULMOD DUP7 DUP7 MUL SWAP3 POP DUP3 DUP2 LT SWAP1 DUP4 SWAP1 SUB SUB SWAP1 POP DUP1 PUSH2 0x174A JUMPI PUSH1 0x0 DUP5 GT PUSH2 0x173F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP3 SWAP1 DIV SWAP1 POP PUSH2 0x2EE JUMP JUMPDEST DUP1 DUP5 GT PUSH2 0x1756 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP5 DUP7 DUP9 MULMOD PUSH1 0x0 DUP7 DUP2 SUB DUP8 AND SWAP7 DUP8 SWAP1 DIV SWAP7 PUSH1 0x2 PUSH1 0x3 DUP10 MUL DUP2 XOR DUP1 DUP11 MUL DUP3 SUB MUL DUP1 DUP11 MUL DUP3 SUB MUL DUP1 DUP11 MUL DUP3 SUB MUL DUP1 DUP11 MUL DUP3 SUB MUL DUP1 DUP11 MUL DUP3 SUB MUL DUP1 DUP11 MUL SWAP1 SWAP2 SUB MUL SWAP2 DUP2 SWAP1 SUB DUP2 SWAP1 DIV PUSH1 0x1 ADD DUP7 DUP5 GT SWAP1 SWAP6 SUB SWAP5 SWAP1 SWAP5 MUL SWAP2 SWAP1 SWAP5 SUB SWAP3 SWAP1 SWAP3 DIV SWAP2 SWAP1 SWAP2 OR SWAP2 SWAP1 SWAP2 MUL SWAP2 POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x5 DUP5 PUSH1 0xFF AND GT ISZERO PUSH2 0x17EB JUMPI PUSH2 0x17E8 DUP6 PUSH1 0xFF PUSH1 0x4 NOT DUP8 ADD AND PUSH1 0xA EXP PUSH2 0x15AB JUMP JUMPDEST SWAP5 POP JUMPDEST PUSH1 0x0 PUSH1 0x4 PUSH1 0xA DUP8 MOD GT SWAP1 POP PUSH2 0x1801 DUP7 PUSH1 0xA PUSH2 0x15AB JUMP JUMPDEST SWAP6 POP DUP1 ISZERO PUSH2 0x1810 JUMPI DUP6 PUSH1 0x1 ADD SWAP6 POP JUMPDEST DUP6 PUSH3 0x186A0 EQ ISZERO PUSH2 0x1826 JUMPI PUSH1 0xA DUP7 DIV SWAP6 POP PUSH1 0x1 SWAP2 POP JUMPDEST POP SWAP4 SWAP5 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 GT ISZERO PUSH2 0x1886 JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x536166654D6174683A207375627472616374696F6E206F766572666C6F770000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST POP SWAP1 SUB SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 ADD DUP4 DUP2 LT ISZERO PUSH2 0x20B JUMPI PUSH1 0x40 DUP1 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x536166654D6174683A206164646974696F6E206F766572666C6F770000000000 PUSH1 0x44 DUP3 ADD MSTORE SWAP1 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x64 ADD SWAP1 REVERT JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP3 PUSH1 0x20 ADD MLOAD PUSH1 0xFF AND PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP1 ISZERO PUSH2 0x1908 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x1933 JUMPI PUSH1 0x20 DUP3 ADD DUP2 DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP DUP3 PUSH1 0xE0 ADD MLOAD ISZERO PUSH2 0x1989 JUMPI PUSH32 0x2500000000000000000000000000000000000000000000000000000000000000 DUP2 PUSH1 0x1 DUP4 MLOAD SUB DUP2 MLOAD DUP2 LT PUSH2 0x1971 JUMPI INVALID JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP JUMPDEST DUP3 PUSH1 0xC0 ADD MLOAD ISZERO PUSH2 0x19E6 JUMPI PUSH1 0x3 PUSH1 0xFC SHL DUP2 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x19A5 JUMPI INVALID JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH1 0x17 PUSH1 0xF9 SHL DUP2 PUSH1 0x1 DUP2 MLOAD DUP2 LT PUSH2 0x19CE JUMPI INVALID JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP JUMPDEST PUSH1 0x80 DUP4 ADD MLOAD PUSH1 0xFF AND JUMPDEST PUSH1 0xA0 DUP5 ADD MLOAD PUSH2 0x1A02 SWAP1 PUSH1 0xFF AND PUSH1 0x1 PUSH2 0x188C JUMP JUMPDEST DUP2 LT ISZERO PUSH2 0x1A39 JUMPI PUSH1 0x30 PUSH1 0xF8 SHL DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x1A1A JUMPI INVALID JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH1 0x1 ADD PUSH2 0x19EF JUMP JUMPDEST POP JUMPDEST DUP3 MLOAD ISZERO PUSH2 0x21F JUMPI PUSH1 0x0 DUP4 PUSH1 0x60 ADD MLOAD PUSH1 0xFF AND GT DUP1 ISZERO PUSH2 0x1A66 JUMPI POP DUP3 PUSH1 0x60 ADD MLOAD PUSH1 0xFF AND DUP4 PUSH1 0x40 ADD MLOAD PUSH1 0xFF AND EQ JUMPDEST ISZERO PUSH2 0x1AA9 JUMPI PUSH1 0x40 DUP4 ADD DUP1 MLOAD PUSH1 0xFF PUSH1 0x0 NOT DUP3 ADD DUP2 AND SWAP1 SWAP3 MSTORE DUP3 MLOAD PUSH1 0x17 PUSH1 0xF9 SHL SWAP3 DUP5 SWAP3 AND SWAP1 DUP2 LT PUSH2 0x1A91 JUMPI INVALID JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP JUMPDEST DUP3 MLOAD PUSH2 0x1ABB SWAP1 PUSH1 0x30 SWAP1 PUSH1 0xA SWAP1 MOD PUSH2 0x188C JUMP JUMPDEST PUSH1 0xF8 SHL DUP2 DUP5 PUSH1 0x40 ADD DUP1 MLOAD DUP1 SWAP2 SWAP1 PUSH1 0x1 SWAP1 SUB PUSH1 0xFF AND PUSH1 0xFF AND DUP2 MSTORE POP PUSH1 0xFF AND DUP2 MLOAD DUP2 LT PUSH2 0x1AE2 JUMPI INVALID JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH1 0xA DUP4 PUSH1 0x0 ADD DUP2 DUP2 MLOAD DUP2 PUSH2 0x1B09 JUMPI INVALID JUMPDEST DIV SWAP1 MSTORE POP PUSH2 0x1A3B JUMP JUMPDEST PUSH1 0x0 DUP4 PUSH1 0x2 SIGNEXTEND DUP3 PUSH1 0x2 SIGNEXTEND SLT ISZERO PUSH2 0x1B2B JUMPI POP PUSH1 0x0 NOT PUSH2 0x2EE JUMP JUMPDEST DUP3 PUSH1 0x2 SIGNEXTEND DUP3 PUSH1 0x2 SIGNEXTEND SGT ISZERO PUSH2 0x1B41 JUMPI POP PUSH1 0x1 PUSH2 0x2EE JUMP JUMPDEST POP PUSH1 0x0 PUSH2 0x2EE JUMP JUMPDEST PUSH1 0x0 PUSH1 0xFF DUP3 PUSH2 0x1B58 DUP7 DUP7 PUSH2 0xB0E JUMP JUMPDEST MUL DUP2 PUSH2 0x1B60 JUMPI INVALID JUMPDEST MOD SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x2D2 PUSH2 0x1BA2 DUP5 PUSH2 0xA3E PUSH2 0x1B7F DUP9 DUP11 PUSH2 0x182F JUMP JUMPDEST PUSH2 0x1B9C PUSH2 0x1B8C DUP9 DUP11 PUSH2 0x182F JUMP JUMPDEST PUSH2 0x1B96 DUP14 DUP14 PUSH2 0x182F JUMP JUMPDEST SWAP1 PUSH2 0x1F52 JUMP JUMPDEST SWAP1 PUSH2 0x15AB JUMP JUMPDEST PUSH2 0x1FAB JUMP JUMPDEST PUSH1 0x60 PUSH2 0x1BB2 DUP3 PUSH2 0x2086 JUMP JUMPDEST PUSH2 0x1BCE DUP4 PUSH1 0x0 ADD MLOAD DUP5 PUSH1 0x20 ADD MLOAD DUP6 PUSH1 0x60 ADD MLOAD DUP7 PUSH1 0x80 ADD MLOAD PUSH2 0x273A JUMP JUMPDEST PUSH2 0x1BE5 DUP5 PUSH1 0x60 ADD MLOAD DUP6 PUSH1 0x80 ADD MLOAD DUP7 PUSH1 0xA0 ADD MLOAD PUSH2 0x2A65 JUMP JUMPDEST PUSH2 0x1C03 DUP6 PUSH1 0xC0 ADD MLOAD DUP7 PUSH1 0xE0 ADD MLOAD DUP8 PUSH2 0x100 ADD MLOAD DUP9 PUSH2 0x120 ADD MLOAD PUSH2 0x2BD1 JUMP JUMPDEST PUSH2 0x1C23 PUSH2 0x1C14 DUP8 PUSH2 0x140 ADD MLOAD PUSH2 0x1FAB JUMP JUMPDEST DUP8 PUSH1 0xC0 ADD MLOAD DUP9 PUSH1 0xE0 ADD MLOAD PUSH2 0x2F24 JUMP JUMPDEST PUSH2 0x1C36 DUP8 PUSH2 0x140 ADD MLOAD DUP9 PUSH1 0x40 ADD MLOAD PUSH2 0x3355 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD DUP1 DUP8 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x1C68 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x1C49 JUMP JUMPDEST MLOAD DUP2 MLOAD PUSH1 0x20 SWAP4 DUP5 SUB PUSH2 0x100 EXP PUSH1 0x0 NOT ADD DUP1 NOT SWAP1 SWAP3 AND SWAP2 AND OR SWAP1 MSTORE DUP10 MLOAD SWAP2 SWAP1 SWAP4 ADD SWAP3 DUP10 ADD SWAP2 POP DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x1CB0 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x1C91 JUMP JUMPDEST MLOAD DUP2 MLOAD PUSH1 0x20 SWAP4 DUP5 SUB PUSH2 0x100 EXP PUSH1 0x0 NOT ADD DUP1 NOT SWAP1 SWAP3 AND SWAP2 AND OR SWAP1 MSTORE DUP9 MLOAD SWAP2 SWAP1 SWAP4 ADD SWAP3 DUP9 ADD SWAP2 POP DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x1CF8 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x1CD9 JUMP JUMPDEST MLOAD DUP2 MLOAD PUSH1 0x20 SWAP4 DUP5 SUB PUSH2 0x100 EXP PUSH1 0x0 NOT ADD DUP1 NOT SWAP1 SWAP3 AND SWAP2 AND OR SWAP1 MSTORE DUP8 MLOAD SWAP2 SWAP1 SWAP4 ADD SWAP3 DUP8 ADD SWAP2 POP DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x1D40 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x1D21 JUMP JUMPDEST MLOAD DUP2 MLOAD PUSH1 0x20 SWAP4 DUP5 SUB PUSH2 0x100 EXP PUSH1 0x0 NOT ADD DUP1 NOT SWAP1 SWAP3 AND SWAP2 AND OR SWAP1 MSTORE DUP7 MLOAD SWAP2 SWAP1 SWAP4 ADD SWAP3 DUP7 ADD SWAP2 POP DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x1D88 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x1D69 JUMP JUMPDEST MLOAD DUP2 MLOAD PUSH1 0x20 SWAP4 DUP5 SUB PUSH2 0x100 EXP PUSH1 0x0 NOT ADD DUP1 NOT SWAP1 SWAP3 AND SWAP2 AND OR SWAP1 MSTORE DUP6 MLOAD SWAP2 SWAP1 SWAP4 ADD SWAP3 DUP6 ADD SWAP2 POP DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x1DD0 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x1DB1 JUMP JUMPDEST MLOAD DUP2 MLOAD PUSH1 0x20 SWAP4 SWAP1 SWAP4 SUB PUSH2 0x100 EXP PUSH1 0x0 NOT ADD DUP1 NOT SWAP1 SWAP2 AND SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 MSTORE PUSH32 0x3C2F7376673E0000000000000000000000000000000000000000000000000000 SWAP3 ADD SWAP2 DUP3 MSTORE POP PUSH1 0x40 DUP1 MLOAD DUP1 DUP4 SUB PUSH1 0x19 NOT ADD DUP2 MSTORE PUSH1 0x6 SWAP1 SWAP3 ADD SWAP1 MSTORE SWAP10 SWAP9 POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 GT PUSH2 0x1E44 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x80 SHL DUP3 LT PUSH2 0x1E57 JUMPI PUSH1 0x80 SWAP2 DUP3 SHR SWAP2 ADD JUMPDEST PUSH9 0x10000000000000000 DUP3 LT PUSH2 0x1E6F JUMPI PUSH1 0x40 SWAP2 DUP3 SHR SWAP2 ADD JUMPDEST PUSH5 0x100000000 DUP3 LT PUSH2 0x1E83 JUMPI PUSH1 0x20 SWAP2 DUP3 SHR SWAP2 ADD JUMPDEST PUSH3 0x10000 DUP3 LT PUSH2 0x1E95 JUMPI PUSH1 0x10 SWAP2 DUP3 SHR SWAP2 ADD JUMPDEST PUSH2 0x100 DUP3 LT PUSH2 0x1EA6 JUMPI PUSH1 0x8 SWAP2 DUP3 SHR SWAP2 ADD JUMPDEST PUSH1 0x10 DUP3 LT PUSH2 0x1EB6 JUMPI PUSH1 0x4 SWAP2 DUP3 SHR SWAP2 ADD JUMPDEST PUSH1 0x4 DUP3 LT PUSH2 0x1EC6 JUMPI PUSH1 0x2 SWAP2 DUP3 SHR SWAP2 ADD JUMPDEST PUSH1 0x2 DUP3 LT PUSH2 0x222 JUMPI PUSH1 0x1 ADD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP4 SUB DUP2 DUP4 SLT DUP1 ISZERO SWAP1 PUSH2 0x1EEB JUMPI POP DUP4 DUP2 SGT ISZERO JUMPDEST DUP1 PUSH2 0x1F00 JUMPI POP PUSH1 0x0 DUP4 SLT DUP1 ISZERO PUSH2 0x1F00 JUMPI POP DUP4 DUP2 SGT JUMPDEST PUSH2 0x20B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x24 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x5BD0 PUSH1 0x24 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 DUP3 SLT ISZERO PUSH2 0x1F4E JUMPI DUP2 PUSH1 0x0 SUB PUSH2 0x21F JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x1F61 JUMPI POP PUSH1 0x0 PUSH2 0x20E JUMP JUMPDEST DUP3 DUP3 MUL DUP3 DUP5 DUP3 DUP2 PUSH2 0x1F6E JUMPI INVALID JUMPDEST DIV EQ PUSH2 0x20B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD DUP1 DUP1 PUSH1 0x20 ADD DUP3 DUP2 SUB DUP3 MSTORE PUSH1 0x21 DUP2 MSTORE PUSH1 0x20 ADD DUP1 PUSH2 0x52E9 PUSH1 0x21 SWAP2 CODECOPY PUSH1 0x40 ADD SWAP2 POP POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x60 DUP2 PUSH2 0x1FD0 JUMPI POP PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x1 DUP2 MSTORE PUSH1 0x3 PUSH1 0xFC SHL PUSH1 0x20 DUP3 ADD MSTORE PUSH2 0x222 JUMP JUMPDEST DUP2 PUSH1 0x0 JUMPDEST DUP2 ISZERO PUSH2 0x1FE8 JUMPI PUSH1 0x1 ADD PUSH1 0xA DUP3 DIV SWAP2 POP PUSH2 0x1FD4 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP1 ISZERO PUSH2 0x2001 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x202C JUMPI PUSH1 0x20 DUP3 ADD DUP2 DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP DUP6 SWAP4 POP SWAP1 POP PUSH1 0x0 NOT DUP3 ADD JUMPDEST DUP4 ISZERO PUSH2 0x207D JUMPI PUSH1 0xA DUP5 MOD PUSH1 0x30 ADD PUSH1 0xF8 SHL DUP3 DUP3 DUP1 PUSH1 0x1 SWAP1 SUB SWAP4 POP DUP2 MLOAD DUP2 LT PUSH2 0x205B JUMPI INVALID JUMPDEST PUSH1 0x20 ADD ADD SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xF8 SHL SUB NOT AND SWAP1 DUP2 PUSH1 0x0 BYTE SWAP1 MSTORE8 POP PUSH1 0xA DUP5 DIV SWAP4 POP PUSH2 0x2038 JUMP JUMPDEST POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x211B DUP3 PUSH2 0x160 ADD MLOAD PUSH1 0x40 MLOAD PUSH1 0x20 ADD DUP1 DUP1 PUSH2 0x4EA3 PUSH1 0x81 SWAP2 CODECOPY PUSH1 0x81 ADD DUP3 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x20CE JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x20AF JUMP JUMPDEST PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP3 MLOAD AND DUP2 DUP5 MLOAD AND DUP1 DUP3 OR DUP6 MSTORE POP POP POP POP POP POP SWAP1 POP ADD DUP1 PUSH9 0x13979F1E17B9BB339F PUSH1 0xB9 SHL DUP2 MSTORE POP PUSH1 0x9 ADD SWAP2 POP POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH2 0x33CD JUMP JUMPDEST PUSH2 0x2287 DUP4 PUSH2 0x1E0 ADD MLOAD DUP5 PUSH2 0x200 ADD MLOAD DUP6 PUSH2 0x180 ADD MLOAD PUSH1 0x40 MLOAD PUSH1 0x20 ADD DUP1 DUP1 PUSH2 0x49E0 PUSH1 0x63 SWAP2 CODECOPY PUSH1 0x63 ADD DUP5 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x216D JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x214E JUMP JUMPDEST MLOAD DUP2 MLOAD PUSH1 0x20 SWAP4 DUP5 SUB PUSH2 0x100 EXP PUSH1 0x0 NOT ADD DUP1 NOT SWAP1 SWAP3 AND SWAP2 AND OR SWAP1 MSTORE PUSH6 0x272063793D27 PUSH1 0xD0 SHL SWAP2 SWAP1 SWAP4 ADD SWAP1 DUP2 MSTORE DUP6 MLOAD PUSH1 0x6 SWAP1 SWAP2 ADD SWAP3 DUP7 ADD SWAP2 POP DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x21C7 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x21A8 JUMP JUMPDEST MLOAD DUP2 MLOAD PUSH1 0x20 SWAP4 DUP5 SUB PUSH2 0x100 EXP PUSH1 0x0 NOT ADD DUP1 NOT SWAP1 SWAP3 AND SWAP2 AND OR SWAP1 MSTORE PUSH32 0x2720723D273132307078272066696C6C3D272300000000000000000000000000 SWAP2 SWAP1 SWAP4 ADD SWAP1 DUP2 MSTORE DUP5 MLOAD PUSH1 0x13 SWAP1 SWAP2 ADD SWAP3 DUP6 ADD SWAP2 POP DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x2238 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x2219 JUMP JUMPDEST PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP3 MLOAD AND DUP2 DUP5 MLOAD AND DUP1 DUP3 OR DUP6 MSTORE POP POP POP POP POP POP SWAP1 POP ADD DUP1 PUSH9 0x13979F1E17B9BB339F PUSH1 0xB9 SHL DUP2 MSTORE POP PUSH1 0x9 ADD SWAP4 POP POP POP POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE PUSH2 0x33CD JUMP JUMPDEST PUSH2 0x22D8 DUP5 PUSH2 0x220 ADD MLOAD DUP6 PUSH2 0x240 ADD MLOAD DUP7 PUSH2 0x1A0 ADD MLOAD PUSH1 0x40 MLOAD PUSH1 0x20 ADD DUP1 DUP1 PUSH2 0x49E0 PUSH1 0x63 SWAP2 CODECOPY PUSH1 0x63 ADD DUP5 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 PUSH1 0x20 DUP4 LT PUSH2 0x216D JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x214E JUMP JUMPDEST PUSH2 0x23F7 DUP6 PUSH2 0x260 ADD MLOAD DUP7 PUSH2 0x280 ADD MLOAD DUP8 PUSH2 0x1C0 ADD MLOAD PUSH1 0x40 MLOAD PUSH1 0x20 ADD DUP1 DUP1 PUSH2 0x49E0 PUSH1 0x63 SWAP2 CODECOPY PUSH1 0x63 ADD DUP5 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x232A JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x230B JUMP JUMPDEST MLOAD DUP2 MLOAD PUSH1 0x20 SWAP4 DUP5 SUB PUSH2 0x100 EXP PUSH1 0x0 NOT ADD DUP1 NOT SWAP1 SWAP3 AND SWAP2 AND OR SWAP1 MSTORE PUSH6 0x272063793D27 PUSH1 0xD0 SHL SWAP2 SWAP1 SWAP4 ADD SWAP1 DUP2 MSTORE DUP6 MLOAD PUSH1 0x6 SWAP1 SWAP2 ADD SWAP3 DUP7 ADD SWAP2 POP DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x2384 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x2365 JUMP JUMPDEST MLOAD DUP2 MLOAD PUSH1 0x0 NOT PUSH1 0x20 SWAP5 DUP6 SUB PUSH2 0x100 EXP ADD SWAP1 DUP2 AND SWAP1 NOT SWAP2 SWAP1 SWAP2 AND OR SWAP1 MSTORE PUSH32 0x2720723D273130307078272066696C6C3D272300000000000000000000000000 SWAP4 SWAP1 SWAP2 ADD SWAP3 DUP4 MSTORE DUP5 MLOAD PUSH1 0x13 SWAP1 SWAP4 ADD SWAP3 SWAP1 DUP6 ADD SWAP2 POP DUP1 DUP4 DUP4 PUSH1 0x20 DUP4 LT PUSH2 0x2238 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x2219 JUMP JUMPDEST PUSH2 0x160 DUP7 ADD MLOAD PUSH1 0x40 MLOAD PUSH1 0x20 ADD DUP1 PUSH1 0x56 PUSH2 0x475B DUP3 CODECOPY PUSH1 0x56 ADD PUSH1 0x2C PUSH2 0x510A DUP3 CODECOPY PUSH32 0x3C646566733E0000000000000000000000000000000000000000000000000000 PUSH1 0x2C DUP3 ADD MSTORE PUSH1 0x32 ADD PUSH1 0x4B PUSH2 0x4E58 DUP3 CODECOPY PUSH1 0x4B ADD DUP7 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x2473 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x2454 JUMP JUMPDEST PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP3 MLOAD AND DUP2 DUP5 MLOAD AND DUP1 DUP3 OR DUP6 MSTORE POP POP POP POP POP POP SWAP1 POP ADD DUP1 PUSH2 0x5990 PUSH1 0x3E SWAP2 CODECOPY PUSH1 0x3E ADD DUP6 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x24CB JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x24AC JUMP JUMPDEST PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP3 MLOAD AND DUP2 DUP5 MLOAD AND DUP1 DUP3 OR DUP6 MSTORE POP POP POP POP POP POP SWAP1 POP ADD DUP1 PUSH2 0x4F24 PUSH1 0x3E SWAP2 CODECOPY PUSH1 0x3E ADD DUP5 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x2523 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x2504 JUMP JUMPDEST MLOAD DUP2 MLOAD PUSH1 0x20 SWAP4 SWAP1 SWAP4 SUB PUSH2 0x100 EXP PUSH1 0x0 NOT ADD DUP1 NOT SWAP1 SWAP2 AND SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 MSTORE PUSH32 0x22202F3E00000000000000000000000000000000000000000000000000000000 SWAP3 ADD SWAP2 DUP3 MSTORE POP PUSH1 0x4 ADD PUSH1 0x3B PUSH2 0x4653 DUP3 CODECOPY PUSH1 0x3B ADD DUP4 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x25A0 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x2581 JUMP JUMPDEST PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP3 MLOAD AND DUP2 DUP5 MLOAD AND DUP1 DUP3 OR DUP6 MSTORE POP POP POP POP POP POP SWAP1 POP ADD DUP1 PUSH2 0x4AA0 PUSH1 0x99 SWAP2 CODECOPY PUSH1 0x99 ADD PUSH1 0x7F PUSH2 0x5541 DUP3 CODECOPY PUSH1 0x7F ADD PUSH1 0x88 PUSH2 0x5908 DUP3 CODECOPY PUSH1 0x88 ADD PUSH1 0x41 PUSH2 0x4B39 DUP3 CODECOPY PUSH1 0x41 ADD PUSH1 0x5D PUSH2 0x5AC8 DUP3 CODECOPY PUSH1 0x5D ADD PUSH1 0x72 PUSH2 0x55ED DUP3 CODECOPY PUSH1 0x72 ADD PUSH1 0x49 PUSH2 0x45BC DUP3 CODECOPY PUSH1 0x49 ADD PUSH1 0xBE PUSH2 0x4D9A DUP3 CODECOPY PUSH1 0xBE ADD PUSH1 0x71 PUSH2 0x486C DUP3 CODECOPY PUSH1 0x71 ADD PUSH1 0x75 PUSH2 0x5484 DUP3 CODECOPY PUSH1 0x75 ADD PUSH1 0x66 PUSH2 0x4B7A DUP3 CODECOPY PUSH1 0x66 ADD PUSH1 0xA4 PUSH2 0x5136 DUP3 CODECOPY PUSH1 0xA4 ADD PUSH1 0x85 PUSH2 0x59CE DUP3 CODECOPY PUSH32 0x3C6720636C69702D706174683D2275726C2823636F726E65727329223E000000 PUSH1 0x85 DUP3 ADD MSTORE PUSH32 0x3C726563742066696C6C3D220000000000000000000000000000000000000000 PUSH1 0xA2 DUP3 ADD MSTORE DUP3 MLOAD PUSH1 0xAE SWAP1 SWAP2 ADD SWAP1 PUSH1 0x20 DUP5 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x26BE JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x269F JUMP JUMPDEST PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP3 MLOAD AND DUP2 DUP5 MLOAD AND DUP1 DUP3 OR DUP6 MSTORE POP POP POP POP POP POP SWAP1 POP ADD DUP1 PUSH2 0x4BE0 PUSH1 0x31 SWAP2 CODECOPY PUSH1 0x31 ADD PUSH1 0x4E PUSH2 0x4605 DUP3 CODECOPY PUSH1 0x4E ADD PUSH1 0x5D PUSH2 0x4A43 DUP3 CODECOPY PUSH1 0x5D ADD PUSH1 0x41 PUSH2 0x5089 DUP3 CODECOPY PUSH1 0x41 ADD PUSH1 0x52 PUSH2 0x4F62 DUP3 CODECOPY PUSH1 0x52 ADD PUSH1 0x75 PUSH2 0x5A53 DUP3 CODECOPY PUSH1 0x75 ADD SWAP6 POP POP POP POP POP POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 DUP4 DUP3 DUP6 DUP5 DUP9 DUP8 DUP11 DUP10 PUSH1 0x40 MLOAD PUSH1 0x20 ADD DUP1 DUP1 PUSH2 0x5BAB PUSH1 0x25 SWAP2 CODECOPY PUSH1 0x25 ADD PUSH1 0x7D PUSH2 0x4D1D DUP3 CODECOPY PUSH1 0x7D ADD DUP10 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x278B JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x276C JUMP JUMPDEST MLOAD DUP2 MLOAD PUSH1 0x20 SWAP4 DUP5 SUB PUSH2 0x100 EXP PUSH1 0x0 NOT ADD DUP1 NOT SWAP1 SWAP3 AND SWAP2 AND OR SWAP1 MSTORE PUSH5 0x107140511 PUSH1 0xDD SHL SWAP2 SWAP1 SWAP4 ADD SWAP1 DUP2 MSTORE DUP11 MLOAD PUSH1 0x5 SWAP1 SWAP2 ADD SWAP3 DUP12 ADD SWAP2 POP DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x27E4 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x27C5 JUMP JUMPDEST PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP3 MLOAD AND DUP2 DUP5 MLOAD AND DUP1 DUP3 OR DUP6 MSTORE POP POP POP POP POP POP SWAP1 POP ADD DUP1 PUSH2 0x4C11 PUSH1 0x79 SWAP2 CODECOPY PUSH1 0x79 ADD PUSH1 0x86 PUSH2 0x5B25 DUP3 CODECOPY PUSH1 0x86 ADD DUP8 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x2846 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x2827 JUMP JUMPDEST MLOAD DUP2 MLOAD PUSH1 0x20 SWAP4 DUP5 SUB PUSH2 0x100 EXP PUSH1 0x0 NOT ADD DUP1 NOT SWAP1 SWAP3 AND SWAP2 AND OR SWAP1 MSTORE PUSH5 0x107140511 PUSH1 0xDD SHL SWAP2 SWAP1 SWAP4 ADD SWAP1 DUP2 MSTORE DUP9 MLOAD PUSH1 0x5 SWAP1 SWAP2 ADD SWAP3 DUP10 ADD SWAP2 POP DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x289F JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x2880 JUMP JUMPDEST PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP3 MLOAD AND DUP2 DUP5 MLOAD AND DUP1 DUP3 OR DUP6 MSTORE POP POP POP POP POP POP SWAP1 POP ADD DUP1 PUSH2 0x47E7 PUSH1 0x85 SWAP2 CODECOPY PUSH1 0x85 ADD PUSH1 0x7B PUSH2 0x5776 DUP3 CODECOPY PUSH1 0x7B ADD DUP6 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x2901 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x28E2 JUMP JUMPDEST MLOAD DUP2 MLOAD PUSH1 0x20 SWAP4 DUP5 SUB PUSH2 0x100 EXP PUSH1 0x0 NOT ADD DUP1 NOT SWAP1 SWAP3 AND SWAP2 AND OR SWAP1 MSTORE PUSH5 0x107140511 PUSH1 0xDD SHL SWAP2 SWAP1 SWAP4 ADD SWAP1 DUP2 MSTORE DUP7 MLOAD PUSH1 0x5 SWAP1 SWAP2 ADD SWAP3 DUP8 ADD SWAP2 POP DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x295A JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x293B JUMP JUMPDEST PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP3 MLOAD AND DUP2 DUP5 MLOAD AND DUP1 DUP3 OR DUP6 MSTORE POP POP POP POP POP POP SWAP1 POP ADD DUP1 PUSH2 0x4931 PUSH1 0x5D SWAP2 CODECOPY PUSH1 0x5D ADD PUSH1 0xA3 PUSH2 0x53E1 DUP3 CODECOPY PUSH1 0xA3 ADD DUP4 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x29BC JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x299D JUMP JUMPDEST MLOAD DUP2 MLOAD PUSH1 0x20 SWAP4 DUP5 SUB PUSH2 0x100 EXP PUSH1 0x0 NOT ADD DUP1 NOT SWAP1 SWAP3 AND SWAP2 AND OR SWAP1 MSTORE PUSH5 0x107140511 PUSH1 0xDD SHL SWAP2 SWAP1 SWAP4 ADD SWAP1 DUP2 MSTORE DUP5 MLOAD PUSH1 0x5 SWAP1 SWAP2 ADD SWAP3 DUP6 ADD SWAP2 POP DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x2A15 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x29F6 JUMP JUMPDEST PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP3 MLOAD AND DUP2 DUP5 MLOAD AND DUP1 DUP3 OR DUP6 MSTORE POP POP POP POP POP POP SWAP1 POP ADD DUP1 PUSH2 0x4531 PUSH1 0x8B SWAP2 CODECOPY PUSH1 0x8B ADD SWAP9 POP POP POP POP POP POP POP POP POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP4 DUP4 DUP4 PUSH1 0x40 MLOAD PUSH1 0x20 ADD DUP1 DUP1 PUSH2 0x468E PUSH1 0xCD SWAP2 CODECOPY PUSH1 0xCD ADD DUP5 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x2AA7 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x2A88 JUMP JUMPDEST PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP3 MLOAD AND DUP2 DUP5 MLOAD AND DUP1 DUP3 OR DUP6 MSTORE POP POP POP POP POP POP SWAP1 POP ADD DUP1 PUSH32 0x2F00000000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP PUSH1 0x1 ADD DUP4 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x2B1C JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x2AFD JUMP JUMPDEST PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP3 MLOAD AND DUP2 DUP5 MLOAD AND DUP1 DUP3 OR DUP6 MSTORE POP POP POP POP POP POP SWAP1 POP ADD DUP1 PUSH2 0x5D54 PUSH1 0x77 SWAP2 CODECOPY PUSH1 0x77 ADD DUP3 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x2B74 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x2B55 JUMP JUMPDEST MLOAD DUP2 MLOAD PUSH1 0x20 SWAP4 SWAP1 SWAP4 SUB PUSH2 0x100 EXP PUSH1 0x0 NOT ADD DUP1 NOT SWAP1 SWAP2 AND SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 MSTORE PUSH11 0x1E17BA32BC3A1F1E17B39F PUSH1 0xA9 SHL SWAP3 ADD SWAP2 DUP3 MSTORE POP PUSH1 0xB ADD PUSH1 0x73 PUSH2 0x5BF4 DUP3 CODECOPY PUSH1 0x73 ADD SWAP4 POP POP POP POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP3 PUSH1 0x0 SIGNEXTEND PUSH1 0x1 EQ PUSH2 0x2C63 JUMPI DUP3 PUSH1 0x0 SIGNEXTEND PUSH1 0x0 NOT EQ PUSH2 0x2C27 JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x5 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x236E6F6E65000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP PUSH2 0x2C5E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0xA DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x23666164652D646F776E00000000000000000000000000000000000000000000 DUP2 MSTORE POP JUMPDEST PUSH2 0x2C9A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x8 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x23666164652D7570000000000000000000000000000000000000000000000000 DUP2 MSTORE POP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x2CA9 DUP8 DUP8 DUP8 PUSH2 0x3552 JUMP JUMPDEST SWAP1 POP DUP2 DUP2 DUP4 DUP4 PUSH2 0x2CB8 DUP9 PUSH2 0x37A0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD DUP1 DUP1 PUSH32 0x3C67206D61736B3D2275726C2800000000000000000000000000000000000000 DUP2 MSTORE POP PUSH1 0xD ADD DUP7 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x2D12 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x2CF3 JUMP JUMPDEST MLOAD DUP2 MLOAD PUSH1 0x20 SWAP4 SWAP1 SWAP4 SUB PUSH2 0x100 EXP PUSH1 0x0 NOT ADD DUP1 NOT SWAP1 SWAP2 AND SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 MSTORE PUSH2 0x1491 PUSH1 0xF1 SHL SWAP3 ADD SWAP2 DUP3 MSTORE POP PUSH1 0x2 ADD PUSH1 0x77 PUSH2 0x51DA DUP3 CODECOPY PUSH1 0x77 ADD DUP6 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x2D74 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x2D55 JUMP JUMPDEST PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP3 MLOAD AND DUP2 DUP5 MLOAD AND DUP1 DUP3 OR DUP6 MSTORE POP POP POP POP POP POP SWAP1 POP ADD DUP1 PUSH2 0x48DD PUSH1 0x54 SWAP2 CODECOPY PUSH1 0x54 ADD DUP1 PUSH32 0x3C2F673E3C67206D61736B3D2275726C28000000000000000000000000000000 DUP2 MSTORE POP PUSH1 0x11 ADD DUP5 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x2DF4 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x2DD5 JUMP JUMPDEST MLOAD DUP2 MLOAD PUSH1 0x20 SWAP4 SWAP1 SWAP4 SUB PUSH2 0x100 EXP PUSH1 0x0 NOT ADD DUP1 NOT SWAP1 SWAP2 AND SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 MSTORE PUSH2 0x1491 PUSH1 0xF1 SHL SWAP3 ADD SWAP2 DUP3 MSTORE POP PUSH1 0x2 ADD PUSH1 0x29 PUSH2 0x5251 DUP3 CODECOPY PUSH1 0x29 ADD PUSH1 0x45 PUSH2 0x52A4 DUP3 CODECOPY PUSH1 0x45 ADD DUP1 PUSH32 0x3C7061746820643D220000000000000000000000000000000000000000000000 DUP2 MSTORE POP PUSH1 0x9 ADD DUP4 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x2E88 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x2E69 JUMP JUMPDEST PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP3 MLOAD AND DUP2 DUP5 MLOAD AND DUP1 DUP3 OR DUP6 MSTORE POP POP POP POP POP POP SWAP1 POP ADD DUP1 PUSH2 0x54F9 PUSH1 0x48 SWAP2 CODECOPY PUSH1 0x48 ADD DUP3 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x2EE0 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x2EC1 JUMP JUMPDEST PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP3 MLOAD AND DUP2 DUP5 MLOAD AND DUP1 DUP3 OR DUP6 MSTORE POP POP POP POP POP POP SWAP1 POP ADD SWAP6 POP POP POP POP POP POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP3 POP POP POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH2 0x2F31 DUP5 PUSH2 0x3C74 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x2F3E DUP5 PUSH2 0x3C74 JUMP JUMPDEST DUP7 MLOAD DUP4 MLOAD DUP3 MLOAD SWAP3 SWAP4 POP PUSH1 0x4 SWAP1 SWAP2 ADD SWAP2 PUSH1 0xA SWAP2 DUP3 ADD SWAP2 ADD PUSH1 0x0 DUP1 PUSH2 0x2F61 DUP11 DUP11 PUSH2 0x3BA JUMP JUMPDEST SWAP2 POP SWAP2 POP PUSH2 0x2F74 DUP6 PUSH1 0x4 ADD PUSH1 0x7 MUL PUSH2 0x1FAB JUMP JUMPDEST DUP12 PUSH2 0x2F84 DUP7 PUSH1 0x4 ADD PUSH1 0x7 MUL PUSH2 0x1FAB JUMP JUMPDEST DUP10 PUSH2 0x2F94 DUP8 PUSH1 0x4 ADD PUSH1 0x7 MUL PUSH2 0x1FAB JUMP JUMPDEST DUP11 DUP8 DUP8 PUSH1 0x40 MLOAD PUSH1 0x20 ADD DUP1 DUP1 PUSH2 0x55C0 PUSH1 0x2D SWAP2 CODECOPY PUSH1 0x2D ADD DUP1 PUSH13 0x1E3932B1BA103BB4B23A341E91 PUSH1 0x99 SHL DUP2 MSTORE POP PUSH1 0xD ADD DUP10 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x2FEC JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x2FCD JUMP JUMPDEST PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP3 MLOAD AND DUP2 DUP5 MLOAD AND DUP1 DUP3 OR DUP6 MSTORE POP POP POP POP POP POP SWAP1 POP ADD DUP1 PUSH2 0x4FB4 PUSH1 0x3D SWAP2 CODECOPY PUSH1 0x3D ADD PUSH1 0x8D PUSH2 0x5C67 DUP3 CODECOPY PUSH1 0x8D ADD DUP9 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x304E JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x302F JUMP JUMPDEST MLOAD DUP2 MLOAD PUSH1 0x20 SWAP4 SWAP1 SWAP4 SUB PUSH2 0x100 EXP PUSH1 0x0 NOT ADD DUP1 NOT SWAP1 SWAP2 AND SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 MSTORE PUSH11 0x1E17BA32BC3A1F1E17B39F PUSH1 0xA9 SHL SWAP3 ADD SWAP2 DUP3 MSTORE POP PUSH1 0xB ADD PUSH1 0x2D PUSH2 0x5E03 DUP3 CODECOPY PUSH1 0x2D ADD DUP1 PUSH13 0x1E3932B1BA103BB4B23A341E91 PUSH1 0x99 SHL DUP2 MSTORE POP PUSH1 0xD ADD DUP8 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x30D1 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x30B2 JUMP JUMPDEST PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP3 MLOAD AND DUP2 DUP5 MLOAD AND DUP1 DUP3 OR DUP6 MSTORE POP POP POP POP POP POP SWAP1 POP ADD DUP1 PUSH2 0x4FB4 PUSH1 0x3D SWAP2 CODECOPY PUSH1 0x3D ADD PUSH1 0x93 PUSH2 0x4C8A DUP3 CODECOPY PUSH1 0x93 ADD DUP7 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x3133 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x3114 JUMP JUMPDEST MLOAD DUP2 MLOAD PUSH1 0x20 SWAP4 SWAP1 SWAP4 SUB PUSH2 0x100 EXP PUSH1 0x0 NOT ADD DUP1 NOT SWAP1 SWAP2 AND SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 MSTORE PUSH11 0x1E17BA32BC3A1F1E17B39F PUSH1 0xA9 SHL SWAP3 ADD SWAP2 DUP3 MSTORE POP PUSH1 0xB ADD PUSH1 0x2D PUSH2 0x498E DUP3 CODECOPY PUSH1 0x2D ADD DUP1 PUSH13 0x1E3932B1BA103BB4B23A341E91 PUSH1 0x99 SHL DUP2 MSTORE POP PUSH1 0xD ADD DUP6 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x31B6 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x3197 JUMP JUMPDEST PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP3 MLOAD AND DUP2 DUP5 MLOAD AND DUP1 DUP3 OR DUP6 MSTORE POP POP POP POP POP POP SWAP1 POP ADD DUP1 PUSH2 0x4FB4 PUSH1 0x3D SWAP2 CODECOPY PUSH1 0x3D ADD PUSH1 0x93 PUSH2 0x57F1 DUP3 CODECOPY PUSH1 0x93 ADD DUP5 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x3218 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x31F9 JUMP JUMPDEST PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP3 MLOAD AND DUP2 DUP5 MLOAD AND DUP1 DUP3 OR DUP6 MSTORE POP POP POP POP POP POP SWAP1 POP ADD DUP1 PUSH2 0x5DCB PUSH1 0x38 SWAP2 CODECOPY PUSH1 0x38 ADD PUSH1 0x60 PUSH2 0x5CF4 DUP3 CODECOPY PUSH1 0x60 ADD PUSH1 0x64 PUSH2 0x537D DUP3 CODECOPY PUSH1 0x64 ADD PUSH1 0x25 PUSH2 0x49BB DUP3 CODECOPY PUSH1 0x25 ADD DUP4 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x328E JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x326F JUMP JUMPDEST MLOAD DUP2 MLOAD PUSH1 0x20 SWAP4 DUP5 SUB PUSH2 0x100 EXP PUSH1 0x0 NOT ADD DUP1 NOT SWAP1 SWAP3 AND SWAP2 AND OR SWAP1 MSTORE PUSH32 0x70782C2000000000000000000000000000000000000000000000000000000000 SWAP2 SWAP1 SWAP4 ADD SWAP1 DUP2 MSTORE DUP5 MLOAD PUSH1 0x4 SWAP1 SWAP2 ADD SWAP3 DUP6 ADD SWAP2 POP DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x32FF JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x32E0 JUMP JUMPDEST PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP3 MLOAD AND DUP2 DUP5 MLOAD AND DUP1 DUP3 OR DUP6 MSTORE POP POP POP POP POP POP SWAP1 POP ADD DUP1 PUSH2 0x47B1 PUSH1 0x36 SWAP2 CODECOPY PUSH1 0x36 ADD SWAP9 POP POP POP POP POP POP POP POP POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP8 POP POP POP POP POP POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x3361 DUP4 DUP4 PUSH2 0xD50 JUMP JUMPDEST ISZERO PUSH2 0x33B7 JUMPI PUSH1 0x40 MLOAD PUSH1 0x20 ADD DUP1 PUSH1 0x8D PUSH2 0x56E9 DUP3 CODECOPY PUSH1 0x8D ADD PUSH1 0x73 PUSH2 0x530A DUP3 CODECOPY PUSH1 0x73 ADD PUSH1 0x71 PUSH2 0x5018 DUP3 CODECOPY PUSH1 0x71 ADD PUSH1 0x8A PUSH2 0x565F DUP3 CODECOPY PUSH1 0x8A ADD PUSH1 0x84 PUSH2 0x5884 DUP3 CODECOPY PUSH1 0x84 ADD SWAP1 POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP PUSH2 0x20E JUMP JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP2 MSTORE SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x60 DUP2 MLOAD PUSH1 0x0 EQ ISZERO PUSH2 0x33EE JUMPI POP PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP1 SWAP2 MSTORE PUSH1 0x0 DUP2 MSTORE PUSH2 0x222 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x40 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x50CA PUSH1 0x40 SWAP2 CODECOPY SWAP1 POP PUSH1 0x0 PUSH1 0x3 DUP5 MLOAD PUSH1 0x2 ADD DUP2 PUSH2 0x341B JUMPI INVALID JUMPDEST DIV PUSH1 0x4 MUL SWAP1 POP PUSH1 0x0 DUP2 PUSH1 0x20 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP1 ISZERO PUSH2 0x343D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x3468 JUMPI PUSH1 0x20 DUP3 ADD DUP2 DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP DUP2 DUP2 MSTORE PUSH1 0x1 DUP4 ADD DUP6 DUP7 MLOAD DUP2 ADD PUSH1 0x20 DUP5 ADD JUMPDEST DUP2 DUP4 LT ISZERO PUSH2 0x34D6 JUMPI PUSH1 0x3 SWAP3 DUP4 ADD DUP1 MLOAD PUSH1 0x3F PUSH1 0x12 DUP3 SWAP1 SHR DUP2 AND DUP8 ADD MLOAD PUSH1 0xF8 SWAP1 DUP2 SHL DUP6 MSTORE PUSH1 0xC DUP4 SWAP1 SHR DUP3 AND DUP9 ADD MLOAD DUP2 SHL PUSH1 0x1 DUP7 ADD MSTORE PUSH1 0x6 DUP4 SWAP1 SHR DUP3 AND DUP9 ADD MLOAD DUP2 SHL PUSH1 0x2 DUP7 ADD MSTORE SWAP2 AND DUP7 ADD MLOAD SWAP1 SHL SWAP4 DUP3 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH1 0x4 ADD PUSH2 0x347C JUMP JUMPDEST PUSH1 0x3 DUP10 MLOAD MOD PUSH1 0x1 DUP2 EQ PUSH2 0x34F0 JUMPI PUSH1 0x2 DUP2 EQ PUSH2 0x351C JUMPI PUSH2 0x3544 JUMP JUMPDEST PUSH32 0x3D3D000000000000000000000000000000000000000000000000000000000000 PUSH1 0x1 NOT DUP4 ADD MSTORE PUSH2 0x3544 JUMP JUMPDEST PUSH32 0x3D00000000000000000000000000000000000000000000000000000000000000 PUSH1 0x0 NOT DUP4 ADD MSTORE JUMPDEST POP SWAP4 SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP3 PUSH1 0x2 SIGNEXTEND DUP6 DUP6 SUB PUSH1 0x2 SIGNEXTEND DUP2 PUSH2 0x3567 JUMPI INVALID JUMPDEST SDIV SWAP1 POP PUSH1 0x4 DUP2 PUSH1 0x2 SIGNEXTEND SGT PUSH2 0x35B2 JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1A DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x4D31203143343120343120313035203130352031343520313435000000000000 DUP2 MSTORE POP SWAP2 POP PUSH2 0x10CD JUMP JUMPDEST PUSH1 0x8 DUP2 PUSH1 0x2 SIGNEXTEND SGT PUSH2 0x35FA JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x19 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x4D31203143333320343920393720313133203134352031343500000000000000 DUP2 MSTORE POP SWAP2 POP PUSH2 0x10CD JUMP JUMPDEST PUSH1 0x10 DUP2 PUSH1 0x2 SIGNEXTEND SGT PUSH2 0x3642 JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x19 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x4D31203143333320353720383920313133203134352031343500000000000000 DUP2 MSTORE POP SWAP2 POP PUSH2 0x10CD JUMP JUMPDEST PUSH1 0x20 DUP2 PUSH1 0x2 SIGNEXTEND SGT PUSH2 0x368A JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x19 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x4D31203143323520363520383120313231203134352031343500000000000000 DUP2 MSTORE POP SWAP2 POP PUSH2 0x10CD JUMP JUMPDEST PUSH1 0x40 DUP2 PUSH1 0x2 SIGNEXTEND SGT PUSH2 0x36D2 JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x19 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x4D31203143313720373320373320313239203134352031343500000000000000 DUP2 MSTORE POP SWAP2 POP PUSH2 0x10CD JUMP JUMPDEST PUSH1 0x80 DUP2 PUSH1 0x2 SIGNEXTEND SGT PUSH2 0x371A JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x18 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x4D31203143392038312036352031333720313435203134350000000000000000 DUP2 MSTORE POP SWAP2 POP PUSH2 0x10CD JUMP JUMPDEST PUSH2 0x100 DUP2 PUSH1 0x2 SIGNEXTEND SGT PUSH2 0x3763 JUMPI PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1A DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x4D31203143312038392035372E35203134352031343520313435000000000000 DUP2 MSTORE POP SWAP2 POP PUSH2 0x10CD JUMP JUMPDEST POP POP PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD SWAP1 SWAP2 MSTORE PUSH1 0x18 DUP2 MSTORE PUSH32 0x4D31203143312039372034392031343520313435203134350000000000000000 PUSH1 0x20 DUP3 ADD MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD DUP3 MSTORE PUSH1 0x2 DUP2 MSTORE PUSH32 0x3733000000000000000000000000000000000000000000000000000000000000 PUSH1 0x20 DUP1 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP3 MLOAD DUP1 DUP5 ADD DUP5 MSTORE PUSH1 0x3 DUP1 DUP3 MSTORE PUSH32 0x3139300000000000000000000000000000000000000000000000000000000000 DUP3 DUP5 ADD MSTORE DUP5 MLOAD DUP1 DUP7 ADD DUP7 MSTORE DUP2 DUP2 MSTORE PUSH32 0x3231370000000000000000000000000000000000000000000000000000000000 DUP2 DUP6 ADD MSTORE DUP6 MLOAD DUP1 DUP8 ADD SWAP1 SWAP7 MSTORE SWAP1 DUP6 MSTORE PUSH32 0x3333340000000000000000000000000000000000000000000000000000000000 SWAP3 DUP6 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x60 SWAP4 SWAP1 SWAP2 SWAP1 PUSH1 0x1 PUSH1 0x0 DUP8 SWAP1 SIGNEXTEND EQ DUP1 PUSH2 0x3887 JUMPI POP DUP6 PUSH1 0x0 SIGNEXTEND PUSH1 0x0 NOT EQ JUMPDEST ISZERO PUSH2 0x3A7E JUMPI DUP6 PUSH1 0x0 SIGNEXTEND PUSH1 0x0 NOT EQ PUSH2 0x389E JUMPI DUP2 PUSH2 0x38A0 JUMP JUMPDEST DUP4 JUMPDEST DUP7 PUSH1 0x0 SIGNEXTEND PUSH1 0x0 NOT EQ PUSH2 0x38B2 JUMPI DUP2 PUSH2 0x38B4 JUMP JUMPDEST DUP4 JUMPDEST DUP8 PUSH1 0x0 SIGNEXTEND PUSH1 0x0 NOT EQ PUSH2 0x38C6 JUMPI DUP4 PUSH2 0x38C8 JUMP JUMPDEST DUP6 JUMPDEST DUP9 PUSH1 0x0 SIGNEXTEND PUSH1 0x0 NOT EQ PUSH2 0x38DA JUMPI DUP4 PUSH2 0x38DC JUMP JUMPDEST DUP6 JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD DUP1 DUP1 PUSH12 0x1E31B4B931B6329031BC1E91 PUSH1 0xA1 SHL DUP2 MSTORE POP PUSH1 0xC ADD DUP6 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x3925 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x3906 JUMP JUMPDEST MLOAD DUP2 MLOAD PUSH1 0x20 SWAP4 DUP5 SUB PUSH2 0x100 EXP PUSH1 0x0 NOT ADD DUP1 NOT SWAP1 SWAP3 AND SWAP2 AND OR SWAP1 MSTORE PUSH8 0x383C111031BC9E91 PUSH1 0xC1 SHL SWAP2 SWAP1 SWAP4 ADD SWAP1 DUP2 MSTORE DUP7 MLOAD PUSH1 0x8 SWAP1 SWAP2 ADD SWAP3 DUP8 ADD SWAP2 POP DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x3981 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x3962 JUMP JUMPDEST PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP3 MLOAD AND DUP2 DUP5 MLOAD AND DUP1 DUP3 OR DUP6 MSTORE POP POP POP POP POP POP SWAP1 POP ADD DUP1 PUSH2 0x4FF1 PUSH1 0x27 SWAP2 CODECOPY PUSH1 0x27 ADD DUP4 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x39D9 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x39BA JUMP JUMPDEST MLOAD DUP2 MLOAD PUSH1 0x20 SWAP4 DUP5 SUB PUSH2 0x100 EXP PUSH1 0x0 NOT ADD DUP1 NOT SWAP1 SWAP3 AND SWAP2 AND OR SWAP1 MSTORE PUSH8 0x383C111031BC9E91 PUSH1 0xC1 SHL SWAP2 SWAP1 SWAP4 ADD SWAP1 DUP2 MSTORE DUP5 MLOAD PUSH1 0x8 SWAP1 SWAP2 ADD SWAP3 DUP6 ADD SWAP2 POP DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x3A35 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x3A16 JUMP JUMPDEST PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP3 MLOAD AND DUP2 DUP5 MLOAD AND DUP1 DUP3 OR DUP6 MSTORE POP POP POP POP POP POP SWAP1 POP ADD DUP1 PUSH2 0x527A PUSH1 0x2A SWAP2 CODECOPY PUSH1 0x2A ADD SWAP5 POP POP POP POP POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP5 POP PUSH2 0x3C6B JUMP JUMPDEST DUP4 DUP4 DUP4 DUP4 PUSH1 0x40 MLOAD PUSH1 0x20 ADD DUP1 DUP1 PUSH12 0x1E31B4B931B6329031BC1E91 PUSH1 0xA1 SHL DUP2 MSTORE POP PUSH1 0xC ADD DUP6 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x3ACB JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x3AAC JUMP JUMPDEST MLOAD DUP2 MLOAD PUSH1 0x20 SWAP4 DUP5 SUB PUSH2 0x100 EXP PUSH1 0x0 NOT ADD DUP1 NOT SWAP1 SWAP3 AND SWAP2 AND OR SWAP1 MSTORE PUSH8 0x383C111031BC9E91 PUSH1 0xC1 SHL SWAP2 SWAP1 SWAP4 ADD SWAP1 DUP2 MSTORE DUP7 MLOAD PUSH1 0x8 SWAP1 SWAP2 ADD SWAP3 DUP8 ADD SWAP2 POP DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x3B27 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x3B08 JUMP JUMPDEST MLOAD DUP2 MLOAD PUSH1 0x20 SWAP4 DUP5 SUB PUSH2 0x100 EXP PUSH1 0x0 NOT ADD DUP1 NOT SWAP1 SWAP3 AND SWAP2 AND OR SWAP1 MSTORE PUSH32 0x70782220723D22347078222066696C6C3D22776869746522202F3E0000000000 SWAP2 SWAP1 SWAP4 ADD SWAP1 DUP2 MSTORE PUSH12 0x1E31B4B931B6329031BC1E91 PUSH1 0xA1 SHL PUSH1 0x1B DUP3 ADD MSTORE DUP6 MLOAD PUSH1 0x27 SWAP1 SWAP2 ADD SWAP3 DUP7 ADD SWAP2 POP DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x3BAD JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x3B8E JUMP JUMPDEST MLOAD DUP2 MLOAD PUSH1 0x20 SWAP4 DUP5 SUB PUSH2 0x100 EXP PUSH1 0x0 NOT ADD DUP1 NOT SWAP1 SWAP3 AND SWAP2 AND OR SWAP1 MSTORE PUSH8 0x383C111031BC9E91 PUSH1 0xC1 SHL SWAP2 SWAP1 SWAP4 ADD SWAP1 DUP2 MSTORE DUP5 MLOAD PUSH1 0x8 SWAP1 SWAP2 ADD SWAP3 DUP6 ADD SWAP2 POP DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x3C09 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x3BEA JUMP JUMPDEST PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP3 MLOAD AND DUP2 DUP5 MLOAD AND DUP1 DUP3 OR DUP6 MSTORE POP POP POP POP POP POP SWAP1 POP ADD DUP1 PUSH32 0x70782220723D22347078222066696C6C3D22776869746522202F3E0000000000 DUP2 MSTORE POP PUSH1 0x1B ADD SWAP5 POP POP POP POP POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP5 POP JUMPDEST POP POP POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 PUSH1 0x20 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE POP SWAP1 POP PUSH1 0x0 DUP4 PUSH1 0x2 SIGNEXTEND SLT ISZERO PUSH2 0x3CD6 JUMPI DUP3 PUSH1 0x0 NOT MUL SWAP3 POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x1 DUP2 MSTORE PUSH1 0x20 ADD PUSH32 0x2D00000000000000000000000000000000000000000000000000000000000000 DUP2 MSTORE POP SWAP1 POP JUMPDEST DUP1 PUSH2 0x3CE3 DUP5 PUSH1 0x2 SIGNEXTEND PUSH2 0x1FAB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 ADD DUP1 DUP4 DUP1 MLOAD SWAP1 PUSH1 0x20 ADD SWAP1 DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x3D15 JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x3CF6 JUMP JUMPDEST MLOAD DUP2 MLOAD PUSH1 0x20 SWAP4 DUP5 SUB PUSH2 0x100 EXP PUSH1 0x0 NOT ADD DUP1 NOT SWAP1 SWAP3 AND SWAP2 AND OR SWAP1 MSTORE DUP6 MLOAD SWAP2 SWAP1 SWAP4 ADD SWAP3 DUP6 ADD SWAP2 POP DUP1 DUP4 DUP4 JUMPDEST PUSH1 0x20 DUP4 LT PUSH2 0x3D5D JUMPI DUP1 MLOAD DUP3 MSTORE PUSH1 0x1F NOT SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 DUP3 ADD SWAP2 ADD PUSH2 0x3D3E JUMP JUMPDEST PUSH1 0x1 DUP4 PUSH1 0x20 SUB PUSH2 0x100 EXP SUB DUP1 NOT DUP3 MLOAD AND DUP2 DUP5 MLOAD AND DUP1 DUP3 OR DUP6 MSTORE POP POP POP POP POP POP SWAP1 POP ADD SWAP3 POP POP POP PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH2 0x100 DUP2 ADD DUP3 MSTORE PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP2 SWAP1 MSTORE SWAP2 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x60 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x80 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0xA0 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0xC0 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0xE0 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP1 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH2 0x222 DUP2 PUSH2 0x4518 JUMP JUMPDEST DUP1 CALLDATALOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x222 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH1 0x2 DUP2 SWAP1 SIGNEXTEND DUP2 EQ PUSH2 0x222 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x3E1B JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x3E2E PUSH2 0x3E29 DUP3 PUSH2 0x4481 JUMP JUMPDEST PUSH2 0x445D JUMP JUMPDEST DUP2 DUP2 MSTORE DUP5 PUSH1 0x20 DUP4 DUP7 ADD ADD GT ISZERO PUSH2 0x3E42 JUMPI DUP3 DUP4 REVERT JUMPDEST DUP2 PUSH1 0x20 DUP6 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY SWAP1 DUP2 ADD PUSH1 0x20 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH3 0xFFFFFF DUP2 AND DUP2 EQ PUSH2 0x222 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH1 0xFF DUP2 AND DUP2 EQ PUSH2 0x222 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3E91 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x20B DUP2 PUSH2 0x4518 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x3EAE JUMPI DUP1 DUP2 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x3EB9 DUP2 PUSH2 0x4518 JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x3ED9 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH2 0x3EE2 DUP4 PUSH2 0x3DF9 JUMP JUMPDEST SWAP2 POP PUSH2 0x3EF0 PUSH1 0x20 DUP5 ADD PUSH2 0x3DF9 JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x3F10 JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0x3F19 DUP7 PUSH2 0x3DF9 JUMP JUMPDEST SWAP5 POP PUSH2 0x3F27 PUSH1 0x20 DUP8 ADD PUSH2 0x3DF9 JUMP JUMPDEST SWAP4 POP PUSH2 0x3F35 PUSH1 0x40 DUP8 ADD PUSH2 0x3E6F JUMP JUMPDEST SWAP3 POP PUSH2 0x3F43 PUSH1 0x60 DUP8 ADD PUSH2 0x3E6F JUMP JUMPDEST SWAP2 POP PUSH2 0x3F51 PUSH1 0x80 DUP8 ADD PUSH2 0x3DE9 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3F6E JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3F84 JUMPI DUP2 DUP3 REVERT JUMPDEST DUP3 ADD PUSH1 0x1F DUP2 ADD DUP5 SGT PUSH2 0x3F94 JUMPI DUP2 DUP3 REVERT JUMPDEST DUP1 MLOAD PUSH2 0x3FA2 PUSH2 0x3E29 DUP3 PUSH2 0x4481 JUMP JUMPDEST DUP2 DUP2 MSTORE DUP6 PUSH1 0x20 DUP4 DUP6 ADD ADD GT ISZERO PUSH2 0x3FB6 JUMPI DUP4 DUP5 REVERT JUMPDEST PUSH2 0x2D5 DUP3 PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x44E8 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3FD8 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3FEE JUMPI DUP2 DUP3 REVERT JUMPDEST DUP3 ADD PUSH2 0x1C0 DUP2 DUP6 SUB SLT ISZERO PUSH2 0x20B JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4011 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x4028 JUMPI DUP3 DUP4 REVERT JUMPDEST DUP2 DUP5 ADD SWAP2 POP PUSH2 0x1C0 DUP1 DUP4 DUP8 SUB SLT ISZERO PUSH2 0x403E JUMPI DUP4 DUP5 REVERT JUMPDEST PUSH2 0x4047 DUP2 PUSH2 0x445D JUMP JUMPDEST SWAP1 POP DUP3 CALLDATALOAD DUP2 MSTORE PUSH2 0x4059 PUSH1 0x20 DUP5 ADD PUSH2 0x3DDE JUMP JUMPDEST PUSH1 0x20 DUP3 ADD MSTORE PUSH2 0x406A PUSH1 0x40 DUP5 ADD PUSH2 0x3DDE JUMP JUMPDEST PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 DUP4 ADD CALLDATALOAD DUP3 DUP2 GT ISZERO PUSH2 0x4080 JUMPI DUP5 DUP6 REVERT JUMPDEST PUSH2 0x408C DUP8 DUP3 DUP7 ADD PUSH2 0x3E0B JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MSTORE POP PUSH1 0x80 DUP4 ADD CALLDATALOAD DUP3 DUP2 GT ISZERO PUSH2 0x40A3 JUMPI DUP5 DUP6 REVERT JUMPDEST PUSH2 0x40AF DUP8 DUP3 DUP7 ADD PUSH2 0x3E0B JUMP JUMPDEST PUSH1 0x80 DUP4 ADD MSTORE POP PUSH2 0x40C1 PUSH1 0xA0 DUP5 ADD PUSH2 0x3E6F JUMP JUMPDEST PUSH1 0xA0 DUP3 ADD MSTORE PUSH2 0x40D2 PUSH1 0xC0 DUP5 ADD PUSH2 0x3E6F JUMP JUMPDEST PUSH1 0xC0 DUP3 ADD MSTORE PUSH2 0x40E3 PUSH1 0xE0 DUP5 ADD PUSH2 0x3DE9 JUMP JUMPDEST PUSH1 0xE0 DUP3 ADD MSTORE PUSH2 0x100 SWAP2 POP PUSH2 0x40F8 DUP3 DUP5 ADD PUSH2 0x3DF9 JUMP JUMPDEST DUP3 DUP3 ADD MSTORE PUSH2 0x120 SWAP2 POP PUSH2 0x410C DUP3 DUP5 ADD PUSH2 0x3DF9 JUMP JUMPDEST DUP3 DUP3 ADD MSTORE PUSH2 0x140 SWAP2 POP PUSH2 0x4120 DUP3 DUP5 ADD PUSH2 0x3DF9 JUMP JUMPDEST DUP3 DUP3 ADD MSTORE PUSH2 0x160 SWAP2 POP PUSH2 0x4134 DUP3 DUP5 ADD PUSH2 0x3DF9 JUMP JUMPDEST DUP3 DUP3 ADD MSTORE PUSH2 0x180 SWAP2 POP PUSH2 0x4148 DUP3 DUP5 ADD PUSH2 0x3E5C JUMP JUMPDEST DUP3 DUP3 ADD MSTORE PUSH2 0x1A0 SWAP2 POP PUSH2 0x415C DUP3 DUP5 ADD PUSH2 0x3DDE JUMP JUMPDEST SWAP2 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x417F JUMPI DUP3 DUP4 REVERT JUMPDEST DUP4 CALLDATALOAD PUSH2 0x418A DUP2 PUSH2 0x4518 JUMP JUMPDEST SWAP3 POP PUSH2 0x4198 PUSH1 0x20 DUP6 ADD PUSH2 0x3E6F JUMP JUMPDEST SWAP2 POP PUSH2 0x41A6 PUSH1 0x40 DUP6 ADD PUSH2 0x3E6F JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x41C0 JUMPI DUP1 DUP2 REVERT JUMPDEST PUSH2 0x20B DUP3 PUSH2 0x3E5C JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x41DB JUMPI DUP2 DUP3 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH2 0x41ED DUP2 PUSH2 0x4518 JUMP JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 MSTORE JUMP JUMPDEST ISZERO ISZERO SWAP1 MSTORE JUMP JUMPDEST PUSH1 0x2 SIGNEXTEND SWAP1 MSTORE JUMP JUMPDEST PUSH1 0x0 DUP3 DUP5 MSTORE DUP3 DUP3 PUSH1 0x20 DUP7 ADD CALLDATACOPY DUP1 PUSH1 0x20 DUP5 DUP7 ADD ADD MSTORE PUSH1 0x20 PUSH1 0x1F NOT PUSH1 0x1F DUP6 ADD AND DUP6 ADD ADD SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0x4254 DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x44E8 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH3 0xFFFFFF AND SWAP1 MSTORE JUMP JUMPDEST PUSH1 0xFF AND SWAP1 MSTORE JUMP JUMPDEST SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 MSTORE PUSH2 0x20B PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x423C JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 MSTORE PUSH2 0x42A9 PUSH1 0x40 DUP4 ADD DUP6 PUSH2 0x423C JUMP JUMPDEST DUP3 DUP2 SUB PUSH1 0x20 DUP5 ADD MSTORE PUSH2 0x2D5 DUP2 DUP6 PUSH2 0x423C JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 MSTORE DUP3 CALLDATALOAD PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x42D4 PUSH1 0x20 DUP5 ADD PUSH2 0x3DDE JUMP JUMPDEST PUSH2 0x42E1 PUSH1 0x40 DUP5 ADD DUP3 PUSH2 0x41F8 JUMP JUMPDEST POP PUSH2 0x42EE PUSH1 0x40 DUP5 ADD PUSH2 0x3DDE JUMP JUMPDEST PUSH2 0x42FB PUSH1 0x60 DUP5 ADD DUP3 PUSH2 0x41F8 JUMP JUMPDEST POP PUSH2 0x4309 PUSH1 0x60 DUP5 ADD DUP5 PUSH2 0x44A3 JUMP JUMPDEST PUSH2 0x1C0 DUP1 PUSH1 0x80 DUP7 ADD MSTORE PUSH2 0x4321 PUSH2 0x1E0 DUP7 ADD DUP4 DUP6 PUSH2 0x4212 JUMP JUMPDEST SWAP3 POP PUSH2 0x4330 PUSH1 0x80 DUP8 ADD DUP8 PUSH2 0x44A3 JUMP JUMPDEST DUP7 DUP6 SUB PUSH1 0x1F NOT ADD PUSH1 0xA0 DUP9 ADD MSTORE SWAP3 POP PUSH2 0x4349 DUP5 DUP5 DUP4 PUSH2 0x4212 JUMP JUMPDEST SWAP4 POP POP PUSH2 0x4358 PUSH1 0xA0 DUP8 ADD PUSH2 0x3E6F JUMP JUMPDEST SWAP2 POP PUSH2 0x4367 PUSH1 0xC0 DUP7 ADD DUP4 PUSH2 0x4271 JUMP JUMPDEST PUSH2 0x4373 PUSH1 0xC0 DUP8 ADD PUSH2 0x3E6F JUMP JUMPDEST SWAP2 POP PUSH2 0x4382 PUSH1 0xE0 DUP7 ADD DUP4 PUSH2 0x4271 JUMP JUMPDEST PUSH2 0x438E PUSH1 0xE0 DUP8 ADD PUSH2 0x3DE9 JUMP JUMPDEST SWAP2 POP PUSH2 0x100 PUSH2 0x439F DUP2 DUP8 ADD DUP5 PUSH2 0x4205 JUMP JUMPDEST PUSH2 0x43AA DUP2 DUP9 ADD PUSH2 0x3DF9 JUMP JUMPDEST SWAP3 POP POP PUSH2 0x120 PUSH2 0x43BC DUP2 DUP8 ADD DUP5 PUSH2 0x420B JUMP JUMPDEST PUSH2 0x43C7 DUP2 DUP9 ADD PUSH2 0x3DF9 JUMP JUMPDEST SWAP3 POP POP PUSH2 0x140 PUSH2 0x43D9 DUP2 DUP8 ADD DUP5 PUSH2 0x420B JUMP JUMPDEST PUSH2 0x43E4 DUP2 DUP9 ADD PUSH2 0x3DF9 JUMP JUMPDEST SWAP3 POP POP PUSH2 0x160 PUSH2 0x43F6 DUP2 DUP8 ADD DUP5 PUSH2 0x420B JUMP JUMPDEST PUSH2 0x4401 DUP2 DUP9 ADD PUSH2 0x3DF9 JUMP JUMPDEST SWAP3 POP POP PUSH2 0x180 PUSH2 0x4413 DUP2 DUP8 ADD DUP5 PUSH2 0x420B JUMP JUMPDEST PUSH2 0x441E DUP2 DUP9 ADD PUSH2 0x3E5C JUMP JUMPDEST SWAP3 POP POP PUSH2 0x1A0 PUSH2 0x4430 DUP2 DUP8 ADD DUP5 PUSH2 0x4268 JUMP JUMPDEST PUSH2 0x443B DUP2 DUP9 ADD PUSH2 0x3DDE JUMP JUMPDEST SWAP3 POP POP PUSH2 0x444A DUP2 DUP7 ADD DUP4 PUSH2 0x41F8 JUMP JUMPDEST POP SWAP1 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP2 DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x4479 JUMPI INVALID JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x4495 JUMPI INVALID JUMPDEST POP PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 CALLDATALOAD PUSH1 0x1E NOT DUP5 CALLDATASIZE SUB ADD DUP2 SLT PUSH2 0x44B9 JUMPI DUP3 DUP4 REVERT JUMPDEST DUP4 ADD PUSH1 0x20 DUP2 ADD SWAP3 POP CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x44D9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATASIZE SUB DUP4 SGT ISZERO PUSH2 0x1EF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x4503 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x44EB JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x4512 JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x452D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID KECCAK256 EXTCODECOPY PUSH2 0x6E69 PUSH14 0x6174652061646469746976653D22 PUSH20 0x756D22206174747269627574654E616D653D2273 PUSH21 0x6172744F6666736574222066726F6D3D2230252220 PUSH21 0x6F3D22313030252220626567696E3D223073222064 PUSH22 0x723D223330732220726570656174436F756E743D2269 PUSH15 0x646566696E69746522202F3E3C2F74 PUSH6 0x787450617468 RETURNDATACOPY EXTCODECOPY 0x2F PUSH21 0x6578743E3C73746F70206F66667365743D222E3922 KECCAK256 PUSH20 0x746F702D636F6C6F723D22776869746522207374 PUSH16 0x702D6F7061636974793D223022202F3E EXTCODECOPY 0x2F PUSH13 0x696E6561724772616469656E74 RETURNDATACOPY EXTCODECOPY PUSH19 0x656374207374796C653D2266696C7465723A20 PUSH22 0x726C28236631292220783D223070782220793D223070 PUSH25 0x222077696474683D22323930707822206865696768743D2235 ADDRESS ADDRESS PUSH17 0x7822202F3E3C6665496D61676520726573 PUSH22 0x6C743D2270332220786C696E6B3A687265663D226461 PUSH21 0x613A696D6167652F7376672B786D6C3B6261736536 CALLVALUE 0x2C EXTCODECOPY PUSH8 0x206D61736B3D2275 PUSH19 0x6C2823666164652D73796D626F6C29223E3C72 PUSH6 0x63742066696C PUSH13 0x3D226E6F6E652220783D223070 PUSH25 0x2220793D22307078222077696474683D223239307078222068 PUSH6 0x696768743D22 ORIGIN ADDRESS ADDRESS PUSH17 0x7822202F3E203C7465787420793D223730 PUSH17 0x782220783D2233327078222066696C6C3D 0x22 PUSH24 0x686974652220666F6E742D66616D696C793D2227436F7572 PUSH10 0x6572204E6577272C206D PUSH16 0x6E6F73706163652220666F6E742D7765 PUSH10 0x6768743D223230302220 PUSH7 0x6F6E742D73697A PUSH6 0x3D2233367078 0x22 RETURNDATACOPY EXTCODECOPY PUSH20 0x76672077696474683D2232393022206865696768 PUSH21 0x3D22353030222076696577426F783D223020302032 CODECOPY ADDRESS KECCAK256 CALLDATALOAD ADDRESS ADDRESS 0x22 KECCAK256 PUSH25 0x6D6C6E733D22687474703A2F2F7777772E77332E6F72672F32 ADDRESS ADDRESS ADDRESS 0x2F PUSH20 0x76672270782C2030707829222063783D22307078 0x22 KECCAK256 PUSH4 0x793D2230 PUSH17 0x782220723D22347078222066696C6C3D22 PUSH24 0x68697465222F3E3C2F673E203C616E696D61746520616464 PUSH10 0x746976653D2273756D22 KECCAK256 PUSH2 0x7474 PUSH19 0x69627574654E616D653D2273746172744F6666 PUSH20 0x6574222066726F6D3D2230252220746F3D223130 ADDRESS 0x25 0x22 KECCAK256 PUSH3 0x656769 PUSH15 0x3D22307322206475723D2233307322 KECCAK256 PUSH19 0x6570656174436F756E743D22696E646566696E PUSH10 0x746522202F3E203C2F74 PUSH6 0x787450617468 RETURNDATACOPY EXTCODECOPY PUSH14 0x61736B2069643D22666164652D75 PUSH17 0x22206D61736B436F6E74656E74556E6974 PUSH20 0x3D226F626A656374426F756E64696E67426F7822 RETURNDATACOPY EXTCODECOPY PUSH19 0x6563742077696474683D223122206865696768 PUSH21 0x3D2231222066696C6C3D2275726C2823677261642D PUSH22 0x702922202F3E3C2F6D61736B3E22207374726F6B653D 0x22 PUSH19 0x67626128302C302C302C302E33292220737472 PUSH16 0x6B652D77696474683D22333270782220 PUSH7 0x696C6C3D226E6F PUSH15 0x6522207374726F6B652D6C696E6563 PUSH2 0x703D 0x22 PUSH19 0x6F756E6422202F3E203C616E696D6174652061 PUSH5 0x6469746976 PUSH6 0x3D2273756D22 KECCAK256 PUSH2 0x7474 PUSH19 0x69627574654E616D653D2273746172744F6666 PUSH20 0x6574222066726F6D3D2230252220746F3D223130 ADDRESS 0x25 0x22 KECCAK256 PUSH3 0x656769 PUSH15 0x3D22307322206475723D2233307322 KECCAK256 EXTCODECOPY PUSH8 0x207374796C653D22 PUSH21 0x72616E73666F726D3A7472616E736C617465283239 PUSH17 0x782C20343434707829223E3C636972636C PUSH6 0x207374796C65 RETURNDATASIZE 0x22 PUSH21 0x72616E73666F726D3A7472616E736C617465336428 EXTCODECOPY PUSH20 0x76672077696474683D2732393027206865696768 PUSH21 0x3D27353030272076696577426F783D273020302032 CODECOPY ADDRESS KECCAK256 CALLDATALOAD ADDRESS ADDRESS 0x27 KECCAK256 PUSH25 0x6D6C6E733D27687474703A2F2F7777772E77332E6F72672F32 ADDRESS ADDRESS ADDRESS 0x2F PUSH20 0x7667273E3C636972636C652063783D27203C6720 PUSH20 0x74796C653D2266696C7465723A75726C2823746F PUSH17 0x2D726567696F6E2D626C7572293B207472 PUSH2 0x6E73 PUSH7 0x6F726D3A736361 PUSH13 0x6528312E35293B207472616E73 PUSH7 0x6F726D2D6F7269 PUSH8 0x696E3A63656E7465 PUSH19 0x20746F703B223E22202F3E3C6665426C656E64 KECCAK256 PUSH14 0x6F64653D226F7665726C61792220 PUSH10 0x6E3D2270302220696E32 RETURNDATASIZE 0x22 PUSH17 0x3122202F3E3C6665426C656E64206D6F64 PUSH6 0x3D226578636C PUSH22 0x73696F6E2220696E323D22703222202F3E3C6665426C PUSH6 0x6E64206D6F64 PUSH6 0x3D226F766572 PUSH13 0x61792220696E323D2270332220 PUSH19 0x6573756C743D22626C656E644F757422202F3E EXTCODECOPY PUSH7 0x65476175737369 PUSH2 0x6E42 PUSH13 0x7572203C706174682069643D22 PUSH14 0x696E696D61702220643D224D3233 CALLVALUE KECCAK256 CALLVALUE CALLVALUE CALLVALUE NUMBER ORIGIN CALLER CALLVALUE KECCAK256 CALLVALUE CALLDATALOAD CALLDATACOPY 0x2E CODECOPY CALLVALUE CODECOPY KECCAK256 ORIGIN CALLVALUE ORIGIN 0x2E ORIGIN BALANCE KECCAK256 CALLVALUE CALLDATASIZE CALLER KECCAK256 ORIGIN CALLDATALOAD CALLER KECCAK256 CALLVALUE CALLDATASIZE CALLER 0x22 KECCAK256 0x2F RETURNDATACOPY EXTCODECOPY PUSH14 0x61736B2069643D226E6F6E652220 PUSH14 0x61736B436F6E74656E74556E6974 PUSH20 0x3D226F626A656374426F756E64696E67426F7822 RETURNDATACOPY EXTCODECOPY PUSH19 0x6563742077696474683D223122206865696768 PUSH21 0x3D2231222066696C6C3D22776869746522202F3E3C 0x2F PUSH14 0x61736B3E2220783D223070782220 PUSH26 0x3D22307078222077696474683D22323930707822206865696768 PUSH21 0x3D22353030707822202F3E203C616E696D61746520 PUSH2 0x6464 PUSH10 0x746976653D2273756D22 KECCAK256 PUSH2 0x7474 PUSH19 0x69627574654E616D653D2273746172744F6666 PUSH20 0x6574222066726F6D3D2230252220746F3D223130 ADDRESS 0x25 0x22 KECCAK256 PUSH3 0x656769 PUSH15 0x3D22307322206475723D2233307322 KECCAK256 PUSH19 0x6570656174436F756E743D22696E646566696E PUSH10 0x746522202F3E3C746578 PUSH21 0x20783D22313270782220793D22313770782220666F PUSH15 0x742D66616D696C793D2227436F7572 PUSH10 0x6572204E6577272C206D PUSH16 0x6E6F73706163652220666F6E742D7369 PUSH27 0x653D2231327078222066696C6C3D227768697465223E3C74737061 PUSH15 0x2066696C6C3D227267626128323535 0x2C ORIGIN CALLDATALOAD CALLDATALOAD 0x2C ORIGIN CALLDATALOAD CALLDATALOAD 0x2C ADDRESS 0x2E CALLDATASIZE 0x29 0x22 RETURNDATACOPY 0x4D PUSH10 0x6E205469636B3A203C2F PUSH21 0x7370616E3E3C74657874506174682073746172744F PUSH7 0x667365743D222D BALANCE ADDRESS ADDRESS 0x25 0x22 KECCAK256 PUSH7 0x696C6C3D227768 PUSH10 0x74652220666F6E742D66 PUSH2 0x6D69 PUSH13 0x793D2227436F7572696572204E PUSH6 0x77272C206D6F PUSH15 0x6F73706163652220666F6E742D7369 PUSH27 0x653D22313070782220786C696E6B3A687265663D2223746578742D PUSH17 0x6174682D61223E3C6C696E656172477261 PUSH5 0x69656E7420 PUSH10 0x643D22677261642D646F PUSH24 0x6E222078313D2230222078323D2231222079313D22302220 PUSH26 0x323D2231223E3C73746F70206F66667365743D22302E30222073 PUSH21 0x6F702D636F6C6F723D227768697465222073746F70 0x2D PUSH16 0x7061636974793D223122202F3E3C7374 PUSH16 0x70206F66667365743D22302E39222073 PUSH21 0x6F702D636F6C6F723D227768697465222073746F70 0x2D PUSH16 0x7061636974793D223022202F3E3C2F6C PUSH10 0x6E656172477261646965 PUSH15 0x743E3C66696C7465722069643D2266 BALANCE 0x22 RETURNDATACOPY EXTCODECOPY PUSH7 0x65496D61676520 PUSH19 0x6573756C743D2270302220786C696E6B3A6872 PUSH6 0x663D22646174 PUSH2 0x3A69 PUSH14 0x6167652F7376672B786D6C3B6261 PUSH20 0x6536342C3C7376672077696474683D2732393027 KECCAK256 PUSH9 0x65696768743D273530 ADDRESS 0x27 KECCAK256 PUSH23 0x696577426F783D2730203020323930203530302720786D PUSH13 0x6E733D27687474703A2F2F7777 PUSH24 0x2E77332E6F72672F323030302F737667273E3C7265637420 PUSH24 0x696474683D27323930707827206865696768743D27353030 PUSH17 0x78272066696C6C3D2723222F3E3C666549 PUSH14 0x61676520726573756C743D227032 0x22 KECCAK256 PUSH25 0x6C696E6B3A687265663D22646174613A696D6167652F737667 0x2B PUSH25 0x6D6C3B6261736536342C3C656C6C697073652063783D223530 0x25 0x22 KECCAK256 PUSH4 0x793D2230 PUSH17 0x78222072783D223138307078222072793D 0x22 BALANCE ORIGIN ADDRESS PUSH17 0x78222066696C6C3D222330303022206F70 PUSH2 0x6369 PUSH21 0x793D22302E383522202F3E3C2F673E707822206865 PUSH10 0x6768743D223236707822 KECCAK256 PUSH19 0x783D22387078222072793D2238707822206669 PUSH13 0x6C3D227267626128302C302C30 0x2C ADDRESS 0x2E CALLDATASIZE 0x29 0x22 KECCAK256 0x2F RETURNDATACOPY PUSH17 0x782220723D22347078222066696C6C3D22 PUSH24 0x6869746522202F3E3C636972636C652063783D2231312E33 CALLVALUE CALLDATACOPY CODESIZE 0x4C ORIGIN CALLVALUE KECCAK256 BALANCE ORIGIN 0x4C BALANCE CALLVALUE 0x2E CALLVALUE CALLER CALLVALUE BALANCE KECCAK256 BALANCE ORIGIN 0x2E CALLDATASIZE CALLDATALOAD ORIGIN ORIGIN 0x4C ORIGIN ORIGIN 0x2E CALLER CODECOPY ORIGIN CALLER KECCAK256 BALANCE CODESIZE 0x4C BALANCE CALLER 0x2E CALLDATACOPY CODESIZE BALANCE CODECOPY KECCAK256 BALANCE CALLER 0x2E CALLDATACOPY CODESIZE BALANCE CODECOPY 0x4C BALANCE CODESIZE KECCAK256 ORIGIN ORIGIN 0x2E CALLER CODECOPY ORIGIN CALLER 0x4C BALANCE ORIGIN 0x2E CALLDATASIZE CALLDATALOAD ORIGIN ORIGIN KECCAK256 BALANCE CALLVALUE 0x2E CALLVALUE CALLER CALLVALUE BALANCE 0x4C BALANCE ORIGIN KECCAK256 ORIGIN CALLVALUE 0x4C BALANCE BALANCE 0x2E CALLER CALLVALUE CALLDATACOPY CODESIZE KECCAK256 BALANCE CALLVALUE 0x2E CALLVALUE CALLER CALLVALUE BALANCE 0x4C CALLDATASIZE KECCAK256 ORIGIN ORIGIN 0x2E CALLER CODECOPY EXTCODECOPY PUSH19 0x6563742066696C6C3D226E6F6E652220783D22 ADDRESS PUSH17 0x782220793D22307078222077696474683D 0x22 ORIGIN CODECOPY ADDRESS PUSH17 0x7822206865696768743D22353030707822 KECCAK256 0x2F RETURNDATACOPY COINBASE TIMESTAMP NUMBER DIFFICULTY GASLIMIT CHAINID SELFBALANCE 0x48 0x49 0x4A 0x4B 0x4C 0x4D 0x4E 0x4F POP MLOAD MSTORE MSTORE8 SLOAD SSTORE JUMP JUMPI PC MSIZE GAS PUSH2 0x6263 PUSH5 0x6566676869 PUSH11 0x6B6C6D6E6F707172737475 PUSH23 0x7778797A303132333435363738392B2F20786D6C6E733A PUSH25 0x6C696E6B3D27687474703A2F2F7777772E77332E6F72672F31 CODECOPY CODECOPY CODECOPY 0x2F PUSH25 0x6C696E6B273E3C6C696E6561724772616469656E742069643D 0x22 PUSH8 0x7261642D73796D62 PUSH16 0x6C223E3C73746F70206F66667365743D 0x22 ADDRESS 0x2E CALLDATACOPY 0x22 KECCAK256 PUSH20 0x746F702D636F6C6F723D22776869746522207374 PUSH16 0x702D6F7061636974793D223122202F3E EXTCODECOPY PUSH20 0x746F70206F66667365743D222E3935222073746F PUSH17 0x2D636F6C6F723D22776869746522207374 PUSH16 0x702D6F7061636974793D223022202F3E EXTCODECOPY 0x2F PUSH13 0x696E6561724772616469656E74 RETURNDATACOPY KECCAK256 PUSH20 0x74796C653D227472616E73666F726D3A7472616E PUSH20 0x6C61746528373270782C313839707829223E3C72 PUSH6 0x637420783D22 0x2D BALANCE CALLDATASIZE PUSH17 0x782220793D222D31367078222077696474 PUSH9 0x3D2231383070782220 PUSH9 0x65696768743D223138 ADDRESS PUSH17 0x78222066696C6C3D226E6F6E6522202F3E EXTCODECOPY PUSH17 0x61746820643D22207374796C653D227472 PUSH2 0x6E73 PUSH7 0x6F726D3A747261 PUSH15 0x736C61746528373270782C31383970 PUSH25 0x29223E70782220723D2232347078222066696C6C3D226E6F6E PUSH6 0x22207374726F PUSH12 0x653D22776869746522202F3E EXTCODECOPY PUSH19 0x65637420783D222D313670782220793D222D31 CALLDATASIZE PUSH17 0x78222077696474683D2231383070782220 PUSH9 0x65696768743D223138 ADDRESS PUSH17 0x78222066696C6C3D226E6F6E6522202F3E MSTORE8 PUSH2 0x6665 0x4D PUSH2 0x7468 GASPRICE KECCAK256 PUSH14 0x756C7469706C69636174696F6E20 PUSH16 0x766572666C6F773C673E3C7061746820 PUSH20 0x74796C653D227472616E73666F726D3A7472616E PUSH20 0x6C617465283670782C367078292220643D224D31 ORIGIN KECCAK256 ADDRESS 0x4C BALANCE ORIGIN 0x2E CALLDATASIZE CALLDATALOAD ORIGIN ORIGIN KECCAK256 CODECOPY 0x2E CALLDATALOAD CALLDATASIZE CALLDATALOAD CODESIZE CALLDATACOPY 0x4C BALANCE CODESIZE KECCAK256 BALANCE 0x2E CALLDATASIZE ADDRESS CALLDATACOPY CALLDATACOPY 0x4C BALANCE CALLER 0x2E CALLDATACOPY CODESIZE BALANCE CODECOPY KECCAK256 BALANCE ADDRESS 0x2E ORIGIN BALANCE CODESIZE BALANCE 0x4C ORIGIN ORIGIN 0x2E CALLER CODECOPY ORIGIN CALLER KECCAK256 CALLDATASIZE 0x4C BALANCE CALLVALUE 0x2E CALLVALUE CALLER CALLVALUE BALANCE KECCAK256 EXTCODECOPY PUSH17 0x617468207374726F6B652D6C696E656361 PUSH17 0x3D22726F756E642220643D224D38203943 CODESIZE 0x2E ADDRESS ADDRESS ADDRESS ADDRESS CALLVALUE KECCAK256 ORIGIN ORIGIN 0x2E CODECOPY CALLVALUE CODECOPY CALLVALUE KECCAK256 BALANCE CALLDATASIZE 0x2E ORIGIN ADDRESS CODECOPY CODECOPY KECCAK256 ORIGIN CODESIZE KECCAK256 ORIGIN CALLDATACOPY KECCAK256 ORIGIN CODESIZE 0x22 KECCAK256 PUSH7 0x696C6C3D226E6F PUSH15 0x6522207374726F6B653D2277686974 PUSH6 0x22202F3E2072 PUSH6 0x70656174436F PUSH22 0x6E743D22696E646566696E69746522202F3E3C2F7465 PUSH25 0x74506174683E3C74657874506174682073746172744F666673 PUSH6 0x743D222D3530 0x25 0x22 KECCAK256 PUSH7 0x696C6C3D227768 PUSH10 0x74652220666F6E742D66 PUSH2 0x6D69 PUSH13 0x793D2227436F7572696572204E PUSH6 0x77272C206D6F PUSH15 0x6F73706163652220666F6E742D7369 PUSH27 0x653D22313070782220786C696E6B3A687265663D2223746578742D PUSH17 0x6174682D61223E3C6D61736B2069643D22 PUSH7 0x6164652D646F77 PUSH15 0x22206D61736B436F6E74656E74556E PUSH10 0x74733D226F626A656374 TIMESTAMP PUSH16 0x756E64696E67426F78223E3C72656374 KECCAK256 PUSH24 0x696474683D223122206865696768743D2231222066696C6C RETURNDATASIZE 0x22 PUSH22 0x726C2823677261642D646F776E2922202F3E3C2F6D61 PUSH20 0x6B3E22207374726F6B653D227267626128323535 0x2C ORIGIN CALLDATALOAD CALLDATALOAD 0x2C ORIGIN CALLDATALOAD CALLDATALOAD 0x2C BALANCE 0x29 0x22 KECCAK256 PUSH7 0x696C6C3D226E6F PUSH15 0x6522207374726F6B652D6C696E6563 PUSH2 0x703D 0x22 PUSH19 0x6F756E6422202F3E3C2F673E696E3D22626C65 PUSH15 0x644F75742220737464446576696174 PUSH10 0x6F6E3D22343222202F3E EXTCODECOPY 0x2F PUSH7 0x696C7465723E20 EXTCODECOPY PUSH4 0x6C697050 PUSH2 0x7468 KECCAK256 PUSH10 0x643D22636F726E657273 0x22 RETURNDATACOPY EXTCODECOPY PUSH19 0x6563742077696474683D223239302220686569 PUSH8 0x68743D2235303022 KECCAK256 PUSH19 0x783D223432222072793D22343222202F3E3C2F PUSH4 0x6C697050 PUSH2 0x7468 RETURNDATACOPY KECCAK256 EXTCODECOPY PUSH8 0x207374796C653D22 PUSH21 0x72616E73666F726D3A7472616E736C617465283239 PUSH17 0x782C20333834707829223E3C6C696E6561 PUSH19 0x4772616469656E742069643D22677261642D75 PUSH17 0x222078313D2231222078323D2230222079 BALANCE RETURNDATASIZE 0x22 BALANCE 0x22 KECCAK256 PUSH26 0x323D2230223E3C73746F70206F66667365743D22302E30222073 PUSH21 0x6F702D636F6C6F723D227768697465222073746F70 0x2D PUSH16 0x7061636974793D223122202F3E32334C BALANCE ADDRESS 0x2E ORIGIN BALANCE CODESIZE BALANCE KECCAK256 BALANCE CALLER 0x2E CALLDATACOPY CODESIZE BALANCE CODECOPY 0x4C BALANCE 0x2E CALLDATASIZE ADDRESS CALLDATACOPY CALLDATACOPY KECCAK256 BALANCE CODESIZE 0x4C CODECOPY 0x2E CALLDATALOAD CALLDATASIZE CALLDATALOAD CODESIZE CALLDATACOPY KECCAK256 BALANCE ORIGIN 0x2E CALLDATASIZE CALLDATALOAD ORIGIN ORIGIN 0x4C ADDRESS KECCAK256 BALANCE ORIGIN 0x4C CODECOPY 0x2E CALLDATALOAD CALLDATASIZE CALLDATALOAD CODESIZE CALLDATACOPY KECCAK256 BALANCE BALANCE 0x2E CALLER CALLVALUE CALLDATACOPY CODESIZE 0x4C BALANCE 0x2E CALLDATASIZE ADDRESS CALLDATACOPY CALLDATACOPY KECCAK256 CALLDATASIZE 0x4C BALANCE ADDRESS 0x2E ORIGIN BALANCE CODESIZE BALANCE KECCAK256 BALANCE ADDRESS 0x2E ORIGIN BALANCE CODESIZE BALANCE 0x4C CALLDATASIZE KECCAK256 BALANCE 0x2E CALLDATASIZE ADDRESS CALLDATACOPY CALLDATACOPY 0x4C BALANCE BALANCE 0x2E CALLER CALLVALUE CALLDATACOPY CODESIZE KECCAK256 CODECOPY 0x2E CALLDATALOAD CALLDATASIZE CALLDATALOAD CODESIZE CALLDATACOPY 0x4C BALANCE ORIGIN KECCAK256 ADDRESS GAS 0x22 KECCAK256 PUSH7 0x696C6C3D227768 PUSH10 0x746522202F3E3C672073 PUSH21 0x796C653D227472616E73666F726D3A7472616E736C PUSH2 0x7465 0x28 ORIGIN ORIGIN CALLDATASIZE PUSH17 0x782C20333932707829223E3C7265637420 PUSH24 0x696474683D223336707822206865696768743D2233367078 0x22 KECCAK256 PUSH19 0x783D22387078222072793D2238707822206669 PUSH13 0x6C3D226E6F6E6522207374726F PUSH12 0x653D2272676261283235352C ORIGIN CALLDATALOAD CALLDATALOAD 0x2C ORIGIN CALLDATALOAD CALLDATALOAD 0x2C ADDRESS 0x2E ORIGIN 0x29 0x22 KECCAK256 0x2F RETURNDATACOPY EXTCODECOPY PUSH21 0x657874506174682073746172744F66667365743D22 CALLDATALOAD ADDRESS 0x25 0x22 KECCAK256 PUSH7 0x696C6C3D227768 PUSH10 0x74652220666F6E742D66 PUSH2 0x6D69 PUSH13 0x793D2227436F7572696572204E PUSH6 0x77272C206D6F PUSH15 0x6F73706163652220666F6E742D7369 PUSH27 0x653D22313070782220786C696E6B3A687265663D2223746578742D PUSH17 0x6174682D61223E3C7465787420783D2231 ORIGIN PUSH17 0x782220793D22313770782220666F6E742D PUSH7 0x616D696C793D22 0x27 NUMBER PUSH16 0x7572696572204E6577272C206D6F6E6F PUSH20 0x706163652220666F6E742D73697A653D22313270 PUSH25 0x222066696C6C3D227768697465223E3C747370616E2066696C PUSH13 0x3D2272676261283235352C3235 CALLDATALOAD 0x2C ORIGIN CALLDATALOAD CALLDATALOAD 0x2C ADDRESS 0x2E CALLDATASIZE 0x29 0x22 RETURNDATACOPY 0x4D PUSH2 0x7820 SLOAD PUSH10 0x636B3A203C2F74737061 PUSH15 0x3E3C616E696D6174655472616E7366 PUSH16 0x726D206174747269627574654E616D65 RETURNDATASIZE 0x22 PUSH21 0x72616E73666F726D2220747970653D22726F746174 PUSH6 0x222066726F6D RETURNDATASIZE 0x22 ADDRESS KECCAK256 BALANCE CODESIZE KECCAK256 BALANCE CODESIZE 0x22 KECCAK256 PUSH21 0x6F3D2233363020313820313822206475723D223130 PUSH20 0x2220726570656174436F756E743D22696E646566 PUSH10 0x6E697465222F3E3C2F67 RETURNDATACOPY EXTCODECOPY 0x2F PUSH8 0x3E3C706174682069 PUSH5 0x3D22746578 PUSH21 0x2D706174682D612220643D224D3430203132204832 CALLDATALOAD ADDRESS KECCAK256 COINBASE ORIGIN CODESIZE KECCAK256 ORIGIN CODESIZE KECCAK256 ADDRESS KECCAK256 ADDRESS KECCAK256 BALANCE KECCAK256 ORIGIN CALLDATACOPY CODESIZE KECCAK256 CALLVALUE ADDRESS KECCAK256 JUMP CALLVALUE CALLDATASIZE ADDRESS KECCAK256 COINBASE ORIGIN CODESIZE KECCAK256 ORIGIN CODESIZE KECCAK256 ADDRESS KECCAK256 ADDRESS KECCAK256 BALANCE KECCAK256 ORIGIN CALLDATALOAD ADDRESS KECCAK256 CALLVALUE CODESIZE CODESIZE KECCAK256 0x48 CALLVALUE ADDRESS KECCAK256 COINBASE ORIGIN CODESIZE KECCAK256 ORIGIN CODESIZE KECCAK256 ADDRESS KECCAK256 ADDRESS KECCAK256 BALANCE KECCAK256 BALANCE ORIGIN KECCAK256 CALLVALUE CALLDATASIZE ADDRESS KECCAK256 JUMP CALLVALUE ADDRESS KECCAK256 COINBASE ORIGIN CODESIZE KECCAK256 ORIGIN CODESIZE KECCAK256 ADDRESS KECCAK256 ADDRESS KECCAK256 BALANCE KECCAK256 CALLVALUE ADDRESS KECCAK256 BALANCE ORIGIN KECCAK256 PUSH27 0x22202F3E222F3E3C6665496D61676520726573756C743D22703122 KECCAK256 PUSH25 0x6C696E6B3A687265663D22646174613A696D6167652F737667 0x2B PUSH25 0x6D6C3B6261736536342C3C6D61736B2069643D22666164652D PUSH20 0x796D626F6C22206D61736B436F6E74656E74556E PUSH10 0x74733D22757365725370 PUSH2 0x6365 0x4F PUSH15 0x557365223E3C726563742077696474 PUSH9 0x3D2232393070782220 PUSH9 0x65696768743D223230 ADDRESS PUSH17 0x78222066696C6C3D2275726C2823677261 PUSH5 0x2D73796D62 PUSH16 0x6C2922202F3E3C2F6D61736B3E3C2F64 PUSH6 0x66733E3C7265 PUSH4 0x7420783D 0x22 ADDRESS 0x22 KECCAK256 PUSH26 0x3D2230222077696474683D2232393022206865696768743D2235 ADDRESS ADDRESS 0x22 KECCAK256 PUSH19 0x783D223432222072793D223432222066696C6C RETURNDATASIZE 0x22 PUSH19 0x67626128302C302C302C302922207374726F6B PUSH6 0x3D2272676261 0x28 ORIGIN CALLDATALOAD CALLDATALOAD 0x2C ORIGIN CALLDATALOAD CALLDATALOAD 0x2C ORIGIN CALLDATALOAD CALLDATALOAD 0x2C ADDRESS 0x2E ORIGIN 0x29 0x22 KECCAK256 0x2F RETURNDATACOPY EXTCODECOPY 0x2F PUSH8 0x3E3C66696C746572 KECCAK256 PUSH10 0x643D22746F702D726567 PUSH10 0x6F6E2D626C7572223E3C PUSH7 0x65476175737369 PUSH2 0x6E42 PUSH13 0x757220696E3D22536F75726365 SELFBALANCE PUSH19 0x61706869632220737464446576696174696F6E RETURNDATASIZE 0x22 ORIGIN CALLVALUE 0x22 KECCAK256 0x2F RETURNDATACOPY EXTCODECOPY 0x2F PUSH7 0x696C7465723E3C 0x2F PUSH21 0x657874506174683E203C7465787450617468207374 PUSH2 0x7274 0x4F PUSH7 0x667365743D2230 0x25 0x22 KECCAK256 PUSH7 0x696C6C3D227768 PUSH10 0x74652220666F6E742D66 PUSH2 0x6D69 PUSH13 0x793D2227436F7572696572204E PUSH6 0x77272C206D6F PUSH15 0x6F73706163652220666F6E742D7369 PUSH27 0x653D22313070782220786C696E6B3A687265663D2223746578742D PUSH17 0x6174682D61223E3C746578742074657874 0x2D PUSH19 0x656E646572696E673D226F7074696D697A6553 PUSH17 0x656564223E5369676E6564536166654D61 PUSH21 0x683A207375627472616374696F6E206F766572666C PUSH16 0x773C7265637420783D2231362220793D 0x22 BALANCE CALLDATASIZE 0x22 KECCAK256 PUSH24 0x696474683D2232353822206865696768743D223436382220 PUSH19 0x783D223236222072793D223236222066696C6C RETURNDATASIZE 0x22 PUSH19 0x67626128302C302C302C302922207374726F6B PUSH6 0x3D2272676261 0x28 ORIGIN CALLDATALOAD CALLDATALOAD 0x2C ORIGIN CALLDATALOAD CALLDATALOAD 0x2C ORIGIN CALLDATALOAD CALLDATALOAD 0x2C ADDRESS 0x2E ORIGIN 0x29 0x22 KECCAK256 0x2F RETURNDATACOPY EXTCODECOPY PUSH21 0x65787420783D22313270782220793D223137707822 KECCAK256 PUSH7 0x6F6E742D66616D PUSH10 0x6C793D2227436F757269 PUSH6 0x72204E657727 0x2C KECCAK256 PUSH14 0x6F6E6F73706163652220666F6E74 0x2D PUSH20 0x697A653D2231327078222066696C6C3D22776869 PUSH21 0x65223E3C747370616E2066696C6C3D227267626128 ORIGIN CALLDATALOAD CALLDATALOAD 0x2C ORIGIN CALLDATALOAD CALLDATALOAD 0x2C ORIGIN CALLDATALOAD CALLDATALOAD 0x2C ADDRESS 0x2E CALLDATASIZE 0x29 0x22 RETURNDATACOPY 0x49 DIFFICULTY GASPRICE KECCAK256 EXTCODECOPY 0x2F PUSH21 0x7370616E3E3C726563742077696474683D22333670 PUSH25 0x22206865696768743D2233367078222072783D223870782220 PUSH19 0x793D22387078222066696C6C3D226E6F6E6522 KECCAK256 PUSH20 0x74726F6B653D2272676261283235352C3235352C ORIGIN CALLDATALOAD CALLDATALOAD 0x2C ADDRESS 0x2E ORIGIN 0x29 0x22 KECCAK256 0x2F RETURNDATACOPY EXTCODECOPY 0x2F PUSH21 0x6578743E3C7465787420793D223131357078222078 RETURNDATASIZE 0x22 CALLER ORIGIN PUSH17 0x78222066696C6C3D227768697465222066 PUSH16 0x6E742D66616D696C793D2227436F7572 PUSH10 0x6572204E6577272C206D PUSH16 0x6E6F73706163652220666F6E742D7765 PUSH10 0x6768743D223230302220 PUSH7 0x6F6E742D73697A PUSH6 0x3D2233367078 0x22 RETURNDATACOPY EXTCODECOPY 0x2F PUSH21 0x6578743E3C2F673E3C67207374796C653D22747261 PUSH15 0x73666F726D3A7472616E736C617465 0x28 ORIGIN ORIGIN CALLDATASIZE PUSH17 0x782C20343333707829223E203C67207374 PUSH26 0x6C653D227472616E73666F726D3A7472616E736C617465283239 PUSH17 0x782C20343134707829223EA164736F6C63 NUMBER STOP SMOD MOD STOP EXP ","sourceMap":"198:2291:17:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2167:174;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;1827:169;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;1496:142::-;;;;;;:::i;:::-;;:::i;467:271::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;744:321::-;;;;;;:::i;:::-;;:::i;1071:276::-;;;;;;:::i;:::-;;:::i;2002:159::-;;;;;;:::i;:::-;;:::i;1644:177::-;;;;;;:::i;:::-;;:::i;2347:140::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;1353:137::-;;;;;;:::i;:::-;;:::i;266:195::-;;;;;;:::i;:::-;;:::i;2167:174::-;2245:13;2260;2292:42;2313:9;2324;2292:20;:42::i;:::-;2285:49;;;;2167:174;;;;;;:::o;1827:169::-;1904:13;1936:53;1974:5;-1:-1:-1;;;;;1966:14:17;1982:6;1936:29;:53::i;:::-;1929:60;;1827:169;;;;;:::o;1496:142::-;1560:13;1592:39;1622:8;1592:29;:39::i;:::-;1585:46;;1496:142;;;;:::o;467:271::-;596:7;615:17;635:9;654:39;;-1:-1:-1;;;654:39:17;;615:29;;-1:-1:-1;654:13:17;;:31;;:39;;686:6;;654:39;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;654:39:17;;;;;;;;;;;;:::i;:::-;;722:9;710:21;;;467:271;-1:-1:-1;;467:271:17:o;744:321::-;931:13;963:95;997:4;1003:11;1016:14;1032;1048:9;963:33;:95::i;:::-;956:102;;744:321;;;;;;;;:::o;1071:276::-;1223:13;1255:85;1295:12;1309:14;1325;1255:39;:85::i;:::-;1248:92;;1071:276;;;;;;:::o;2002:159::-;2077:7;2103:51;2139:5;-1:-1:-1;;;;;2131:14:17;2147:6;2103:27;:51::i;1644:177::-;1744:13;1776:38;1807:6;1776:30;:38::i;2347:140::-;2422:4;2445:35;2459:7;2468:11;2445:13;:35::i;1353:137::-;1414:13;1446:37;1479:3;1446:32;:37::i;266:195::-;415:39;;-1:-1:-1;;;415:39:17;;383:13;;415;;:31;;:39;;447:6;;415:39;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;415:39:17;;;;;;;;;;;;:::i;17199:881:16:-;17279:13;;17319:14;17362:1;17337:21;;;17336:27;;;17319:44;;-1:-1:-1;;17377:8:16;:19;;;17373:701;;;17412:17;;;;;;;;;;;;;-1:-1:-1;;;17412:17:16;;;;;;;;;;;;;;;;;;;;;;;;;;;17373:701;-1:-1:-1;;17450:8:16;:18;;;17446:628;;;17484:20;;;;;;;;;;;;;-1:-1:-1;;;17484:20:16;;;;;;;;;;;;;;;;;;;;;;;;;;;17446:628;-1:-1:-1;;17525:8:16;:18;;;17521:553;;;17559:21;;;;;;;;;;;;;-1:-1:-1;;;17559:21:16;;;;;;;;;;;;;;;;;;;;;;;;;;;17521:553;-1:-1:-1;;17601:8:16;:17;;;17597:477;;;17634:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;17634:19:16;;;;;;;;;;17597:477;17685:1;17674:8;:12;;;17670:404;;;17702:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;17702:19:16;;;;;;;;;;17670:404;17753:5;17742:8;:16;;;17738:336;;;17774:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17738:336;17825:6;17814:8;:17;;;17810:264;;;17847:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17810:264;17898:6;17887:8;:17;;;17883:191;;;17920:19;;;;;;;;;;;;;-1:-1:-1;;;17920:19:16;;;;;;;;;;;;;;;;;;;;;;;;;;;17883:191;17971:7;17960:8;:18;;;17956:118;;;17994:19;;;;;;;;;;;;;-1:-1:-1;;;17994:19:16;;;;;;;;;;;;;;;;-1:-1:-1;;;17994:19:16;;;;;;;;;;17956:118;18044:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;18044:19:16;;;;;;;;;;17837:170:15;17916:17;17959:40;17960:15;;;17997:1;17959:37;:40::i;15332:132::-;15394:13;15426:31;-1:-1:-1;;;;;15427:13:15;;15454:2;15426:27;:31::i;8572:777::-;8768:13;8841:11;8806:31;;;;-1:-1:-1;;8806:31:15;;;;;;8805:47;8797:55;;:4;:55;;;8793:550;;;8876:9;8875:10;:26;;;;;;;;;;;;;;;-1:-1:-1;;;8875:26:15;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;8875:26:15;;;;8868:33;;;;8793:550;8966:11;8931:31;;;;644:9:9;8931:31:15;;;;;;8930:47;8922:55;;:4;:55;;;8918:425;;;9001:9;9000:10;:26;;;;;;;;;;;;;;;-1:-1:-1;;;9000:26:15;;;;;;-1:-1:-1;9000:26:15;;;;;;;;;;;;-1:-1:-1;;;9000:26:15;;;;8993:33;;8918:425;9057:20;9080:33;9108:4;9080:27;:33::i;:::-;9057:56;;9131:9;9127:107;;;9183:35;9191:8;-1:-1:-1;;;;;9183:35:15;;:21;:35::i;:::-;9160:59;;9127:107;9254:78;9280:12;9294:17;9313:18;9254:25;:78::i;:::-;9247:85;;;;;11150:2269;11311:13;11336:28;11367:78;11393:12;11407:17;11426:18;11367:25;:78::i;:::-;11336:109;;11455:13;11471:68;11487:20;11509;11531:7;11471:15;:68::i;:::-;11455:84;-1:-1:-1;11592:7:15;11569:30;;11609:357;;;;11758:42;11774:5;11781:8;-1:-1:-1;;;11758:15:15;:42::i;:::-;11750:50;;11609:357;;;11914:41;11930:5;11937:7;-1:-1:-1;;;11914:15:15;:41::i;:::-;11906:49;;11609:357;12018:5;12003:12;12055:75;12062:9;;12055:75;;12087:8;;12117:2;12109:10;;;;12055:75;;;-1:-1:-1;;12201:10:15;12251:15;;12287:29;12302:5;12201:10;12287:14;:29::i;:::-;12250:66;;;;12330:10;12326:49;;;12356:8;;;;;12326:49;12385:33;;:::i;:::-;12432:11;12428:826;;;12552:35;12565:21;12571:2;12565:21;;;:13;:21::i;:::-;12558:1;;12552:12;:35::i;:::-;12524:64;;;;:19;;;:64;12627:1;12602:22;;;:26;12671:30;;12699:1;;12671:23;;12679:2;;12671:23;;:15;:23::i;:::-;:27;;:30::i;:::-;12642:60;;;;:20;;;:60;12743:19;;;;:26;;:23;12767:1;12743:23;:26::i;:::-;12716:54;;:18;;;:54;12428:826;;;12801:1;12791:6;:11;;;12787:467;;12888:13;:10;;;12899:1;12888:10;:13::i;:::-;12860:42;;:19;;;:42;;;12941:1;12916:22;;;:26;12985;;13009:1;12985:23;:26::i;:::-;12956:56;;:20;;;:56;13047:1;13026:18;;;:22;12787:467;;;13143:1;13121:19;;;:23;13179:1;13158:18;;;:22;;;13222:20;;13240:1;;13222:13;;13121:23;13222:10;;;;:13::i;:20::-;13194:49;;:19;;;:49;12787:467;13263:24;;;13297:34;;;:20;;;:34;13263:14;13341:16;;;:24;13383:29;13263:6;13383:21;:29::i;:::-;13376:36;11150:2269;-1:-1:-1;;;;;;;;;;;;11150:2269:15:o;18207:141::-;18324:15;18310:31;;;18207:141::o;15470:1795::-;15558:17;15587:33;15623:1588;;;;;;;;15666:41;15682:6;:24;;;15666:15;:41::i;:::-;15623:1588;;;;15732:40;15748:6;:23;;;15732:15;:40::i;:::-;15623:1588;;;;15799:6;:18;;;-1:-1:-1;;;;;15623:1588:15;;;;;15849:6;:23;;;15623:1588;;;;15903:6;:22;;;15623:1588;;;;15948:30;15967:6;:10;;;15948:18;:30::i;:::-;15623:1588;;;;16003:6;:16;;;15623:1588;;;;;;16044:6;:16;;;15623:1588;;;;;;16087:6;:18;;;15623:1588;;;;;;16130:65;16140:6;:16;;;16158:6;:16;;;16176:6;:18;;;16130:9;:65::i;:::-;15623:1588;;;;;;16218:6;:14;;;15623:1588;;;;16254:55;16278:6;:24;;;-1:-1:-1;;;;;16270:33:15;16305:3;16254:15;:55::i;:::-;15623:1588;;;;16331:54;16355:6;:23;;;-1:-1:-1;;;;;16347:32:15;16381:3;16331:15;:54::i;:::-;15623:1588;;;;16407:53;16431:6;:24;;;-1:-1:-1;;;;;16423:33:15;16458:1;16407:15;:53::i;:::-;15623:1588;;;;16482:52;16506:6;:23;;;-1:-1:-1;;;;;16498:32:15;16532:1;16482:15;:52::i;:::-;15623:1588;;;;16552:93;16558:69;16581:6;:24;;;-1:-1:-1;;;;;16573:33:15;16608:2;16612:6;:14;;;16558;:69::i;:::-;16629:1;16632:3;16637:2;16641:3;16552:5;:93::i;:::-;15623:1588;;;;16663:93;16669:68;16692:6;:23;;;-1:-1:-1;;;;;16684:32:15;16718:2;16722:6;:14;;;16669;:68::i;:::-;16739:1;16742:3;16747;16752;16663:5;:93::i;:::-;15623:1588;;;;16774:93;16780:69;16803:6;:24;;;-1:-1:-1;;;;;16795:33:15;16830:2;16834:6;:14;;;16780;:69::i;16774:93::-;15623:1588;;;;16885:93;16891:68;16914:6;:23;;;-1:-1:-1;;;;;16906:32:15;16940:2;16944:6;:14;;;16891;:68::i;16885:93::-;15623:1588;;;;16996:93;17002:69;17025:6;:24;;;-1:-1:-1;;;;;17017:33:15;17052:2;17056:6;:14;;;17002;:69::i;16996:93::-;15623:1588;;;;17107:93;17113:68;17136:6;:23;;;-1:-1:-1;;;;;17128:32:15;17162:2;17166:6;:14;;;17113;:68::i;17107:93::-;15623:1588;;15587:1624;-1:-1:-1;17229:29:15;15587:1624;17229:18;:29::i;19154:256:16:-;19269:38;;;;;;;;;;-1:-1:-1;;19269:38:16;;;;;;;;;;;;;;;;;;;;;;;;;19259:49;;;;;19231:4;;19363:35;19286:7;19363:26;:35::i;:::-;19401:1;19363:39;19359:1;:43;19338:65;;-1:-1:-1;;19338:65:16;;;;;;-1:-1:-1;;19154:256:16;-1:-1:-1;;;19154:256:16:o;13521:1805:15:-;13584:13;13613:8;;;13609:50;;-1:-1:-1;13637:11:15;;;;;;;;;;;;;;;;;;;13609:50;13682:3;13668:11;;13745:295;13752:9;;;;13745:295;;13781:14;;;;13777:207;;13886:12;;13777:207;;;13930:2;13923:9;;;;:14;;13936:1;13923:14;13919:65;;13957:12;;13919:65;13997:8;;;;;14027:2;14019:10;;;;;;13745:295;;;14050:33;;:::i;:::-;14093:14;14131:1;14121:6;:11;14117:979;;14208:20;14257:1;14231:22;:6;:22;;;:10;:22::i;:::-;:27;;:35;;14265:1;14231:35;;;14261:1;14231:35;14208:58;;;;;-1:-1:-1;14306:17:15;;:14;;14321:1;14306:14;:17::i;:::-;14289:13;:6;14300:1;14289:10;:13::i;:::-;:35;:78;;14331:36;14349:17;:14;;;14364:1;14349:14;:17::i;:::-;14331:13;:6;14342:1;14331:10;:13::i;:::-;:17;;:36::i;:::-;14289:78;;;14327:1;14289:78;14381:35;;;:22;;;:35;;;14280:87;;-1:-1:-1;14459:41:15;;14498:1;;14459:34;;14280:87;14459:26;:34::i;:41::-;14430:71;;;;:20;;;:71;14542:22;;;;:47;;14576:12;;14542:29;;:26;14569:1;14542:26;:29::i;:47::-;14515:75;;;;:18;;;:75;14632:47;;14666:12;;14632:29;;14643:17;;:14;;14658:1;14643:14;:17::i;:::-;14632:6;;:10;:29::i;:47::-;14604:76;;:19;;;:76;-1:-1:-1;14117:979:15;;;14755:22;14763:1;14770:6;14755:14;:22::i;:::-;14816:1;14791:22;;;:26;;;14746:31;;-1:-1:-1;14860:41:15;;14899:1;;14860:34;;14746:31;;14860:10;:34::i;:41::-;14831:71;;;;:20;;;:71;14944:29;;14955:17;;:14;;14970:1;14955:14;:17::i;:::-;14944:6;;:10;:29::i;:::-;14916:58;;:19;;;:58;;;15015:28;;15041:1;15015:25;:28::i;:::-;14988:56;;:18;;;:56;15081:4;15058:20;;;:27;14117:979;15122:48;15146:22;:6;:22;;;:10;:22::i;:::-;15122:12;;;;15139:2;:30;15122:16;:48::i;:::-;15105:65;;15199:4;15180:16;;;:23;15244:1;15235:10;;:37;;15271:1;15235:37;;;15254:13;:6;15265:1;15254:10;:13::i;:::-;15213:59;;:19;;;:59;15290:29;15213:6;15290:21;:29::i;:::-;15283:36;13521:1805;-1:-1:-1;;;;;;;13521:1805:15:o;880:329:14:-;963:13;988:19;1024:6;1020:1;:10;1010:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1010:21:14;-1:-1:-1;1058:13:14;;988:43;;-1:-1:-1;1041:131:14;1073:5;;1041:131;;1115:8;1124:5;1132:3;1124:11;1115:21;;;;;;;;;;1099:6;1110:1;1106;:5;1099:13;;;;;;;;;;;:37;-1:-1:-1;;;;;1099:37:14;;;;;;;;-1:-1:-1;1160:1:14;1150:11;;;;;-1:-1:-1;;1080:3:14;1041:131;;;-1:-1:-1;1195:6:14;880:329;-1:-1:-1;;;880:329:14:o;437:437::-;512:13;537:19;573:6;569:1;:10;582:1;569:14;559:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;559:25:14;;537:47;;-1:-1:-1;;;594:6:14;601:1;594:9;;;;;;;;;;;:15;-1:-1:-1;;;;;594:15:14;;;;;;;;;619;:6;626:1;619:9;;;;;;;;;;;:15;-1:-1:-1;;;;;619:15:14;;;;;;;;-1:-1:-1;674:1:14;661;:10;;:14;644:128;681:1;677;:5;644:128;;;715:8;724:5;732:3;724:11;715:21;;;;;;;;;;703:6;710:1;703:9;;;;;;;;;;;:33;-1:-1:-1;;;;;703:33:14;;;;;;;;-1:-1:-1;760:1:14;750:11;;;;;-1:-1:-1;;684:3:14;644:128;;;-1:-1:-1;789:10:14;;781:55;;;;;-1:-1:-1;;;781:55:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;1362:2580:9;1425:20;1457:15;1482:1;1475:4;:8;;;:57;;1526:4;1519:12;;1475:57;;;1502:4;1495:12;;1494:13;;1475:57;1457:75;-1:-1:-1;644:9:9;1550:28;;;1542:42;;;;;-1:-1:-1;;;1542:42:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;1595:13;1621:3;1611:13;;:93;;-1:-1:-1;;;1611:93:9;;;1632:34;1611:93;1595:109;;;-1:-1:-1;1728:3:9;1718:13;;:18;1714:83;;1755:34;1747:42;1794:3;1746:51;1714:83;1821:3;1811:13;;:18;1807:83;;1848:34;1840:42;1887:3;1839:51;1807:83;1914:3;1904:13;;:18;1900:83;;1941:34;1933:42;1980:3;1932:51;1900:83;2007:4;1997:14;;:19;1993:84;;2035:34;2027:42;2074:3;2026:51;1993:84;2101:4;2091:14;;:19;2087:84;;2129:34;2121:42;2168:3;2120:51;2087:84;2195:4;2185:14;;:19;2181:84;;2223:34;2215:42;2262:3;2214:51;2181:84;2289:4;2279:14;;:19;2275:84;;2317:34;2309:42;2356:3;2308:51;2275:84;2383:5;2373:15;;:20;2369:85;;2412:34;2404:42;2451:3;2403:51;2369:85;2478:5;2468:15;;:20;2464:85;;2507:34;2499:42;2546:3;2498:51;2464:85;2573:5;2563:15;;:20;2559:85;;2602:34;2594:42;2641:3;2593:51;2559:85;2668:5;2658:15;;:20;2654:85;;2697:34;2689:42;2736:3;2688:51;2654:85;2763:6;2753:16;;:21;2749:86;;2793:34;2785:42;2832:3;2784:51;2749:86;2859:6;2849:16;;:21;2845:86;;2889:34;2881:42;2928:3;2880:51;2845:86;2955:6;2945:16;;:21;2941:86;;2985:34;2977:42;3024:3;2976:51;2941:86;3051:6;3041:16;;:21;3037:86;;3081:34;3073:42;3120:3;3072:51;3037:86;3147:7;3137:17;;:22;3133:86;;3178:33;3170:41;3216:3;3169:50;3133:86;3243:7;3233:17;;:22;3229:85;;3274:32;3266:40;3311:3;3265:49;3229:85;3338:7;3328:17;;:22;3324:83;;3369:30;3361:38;3404:3;3360:47;3324:83;3431:7;3421:17;;:22;3417:78;;3462:25;3454:33;3492:3;3453:42;3417:78;3517:1;3510:4;:8;;;3506:47;;;3548:5;-1:-1:-1;;3528:25:9;;;;;;3520:33;;3506:47;3912:7;3903:5;:17;:22;:30;;3932:1;3903:30;;;3928:1;3903:30;3886:48;;3896:2;3887:5;:11;;3886:48;3863:72;;1362:2580;;;;;:::o;4209:150:10:-;4267:7;4298:1;4294;:5;4286:44;;;;;-1:-1:-1;;;4286:44:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;4351:1;4347;:5;;;;;;;4209:150;-1:-1:-1;;;4209:150:10:o;9888:1016:15:-;10048:28;;10109:62;10113:57;10143:26;10113:25;;;;10143:26;;10113:29;:57::i;:::-;10109:3;:62::i;:::-;10088:83;;10198:1;10185:10;:14;:34;;;;;10217:2;10203:10;:16;;10185:34;10181:717;;;10259:18;10239:38;;:17;:38;;;10235:578;;;10320:43;10344:17;:10;10359:1;10344:14;:17::i;:::-;-1:-1:-1;;;;;10320:16:15;;;10337:2;:25;10320:16;:43::i;:::-;10297:66;-1:-1:-1;10398:1:15;10385:10;:14;10403:1;10385:19;10381:148;;;10451:59;10467:20;1097:40;-1:-1:-1;;;10451:15:15;:59::i;:::-;10428:82;;10381:148;10235:578;;;10590:43;10614:17;:10;10629:1;10614:14;:17::i;:::-;-1:-1:-1;;;;;10590:16:15;;;10607:2;:25;10590:16;:43::i;:::-;10567:66;-1:-1:-1;10668:1:15;10655:10;:14;10673:1;10655:19;10651:148;;;10721:59;10737:20;-1:-1:-1;;;1097:40:15;10721:15;:59::i;:::-;10698:82;;10651:148;10181:717;;;-1:-1:-1;;;;;;;10866:21:15;;;;9888:1016;-1:-1:-1;;9888:1016:15:o;749:3746:8:-;831:14;;;-1:-1:-1;;1338:1:8;1335;1328:20;1370:9;;;;-1:-1:-1;1421:13:8;;;1405:14;;;;1401:34;;-1:-1:-1;1517:10:8;1513:179;;1565:1;1551:11;:15;1543:24;;;;;;-1:-1:-1;1618:23:8;;;;-1:-1:-1;1668:13:8;;1513:179;1819:5;1805:11;:19;1797:28;;;;;;2102:17;2178:11;2175:1;2172;2165:25;2530:12;2545;;;:26;;2665:22;;;;;3468:1;3449;:15;;3448:21;;3695:17;;;3691:21;;3684:28;3753:17;;;3749:21;;3742:28;3812:17;;;3808:21;;3801:28;3871:17;;;3867:21;;3860:28;3930:17;;;3926:21;;3919:28;3990:17;;;3986:21;;;3979:28;3037:12;;;;3033:23;;;3058:1;3029:31;2307:20;;;2296:32;;;3088:12;;;;2350:21;;;;2793:16;;;;3079:21;;;;4454:11;;;;;-1:-1:-1;;749:3746:8;;;;;:::o;9355:527:15:-;9430:7;9439:4;9455:15;9493:1;9484:6;:10;;;9480:80;;;9518:31;:5;9529:18;-1:-1:-1;;9536:10:15;;9529:18;:2;:18;9518:9;:31::i;:::-;9510:39;;9480:80;9569:12;9597:1;9592:2;9584:5;:10;:14;;-1:-1:-1;9616:13:15;:5;9626:2;9616:9;:13::i;:::-;9608:21;;9643:7;9639:55;;;9674:5;9682:1;9674:9;9666:17;;9639:55;9756:5;9765:6;9756:15;9752:88;;;9796:2;9787:11;;;;9825:4;9812:17;;9752:88;-1:-1:-1;9857:5:15;;9355:527;-1:-1:-1;;;9355:527:15:o;3128:155:10:-;3186:7;3218:1;3213;:6;;3205:49;;;;;-1:-1:-1;;;3205:49:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3271:5:10;;;3128:155::o;2682:175::-;2740:7;2771:5;;;2794:6;;;;2786:46;;;;;-1:-1:-1;;;2786:46:10;;;;;;;;;;;;;;;;;;;;;;;;;;;7599:967:15;7687:13;7712:19;7744:6;:19;;;7734:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7734:30:15;;7712:52;;7778:6;:16;;;7774:78;;;7810:31;:6;7833:1;7817:6;:13;:17;7810:25;;;;;;;;;;;:31;-1:-1:-1;;;;;7810:31:15;;;;;;;;;7774:78;7865:6;:20;;;7861:95;;;-1:-1:-1;;;7901:6:15;7908:1;7901:9;;;;;;;;;;;:15;-1:-1:-1;;;;;7901:15:15;;;;;;;;;-1:-1:-1;;;7930:6:15;7937:1;7930:9;;;;;;;;;;;:15;-1:-1:-1;;;;;7930:15:15;;;;;;;;;7861:95;8029:22;;;;8007:44;;8002:173;8067:20;;;;:27;;:24;;8092:1;8067:24;:27::i;:::-;8053:11;:41;8002:173;;;8160:2;8147:17;;8125:6;8132:11;8125:19;;;;;;;;;;;:39;-1:-1:-1;;;;;8125:39:15;;;;;;;;-1:-1:-1;8096:13:15;;8002:173;;;;8207:322;8214:14;;:18;8207:322;;8274:1;8252:6;:19;;;:23;;;:68;;;;;8301:6;:19;;;8279:41;;:6;:18;;;:41;;;8252:68;8248:141;;;8347:18;;;:20;;;-1:-1:-1;;8347:20:15;;;;;;;8340:28;;-1:-1:-1;;;8340:34:15;:6;;:28;;;;;;;;;;;:34;-1:-1:-1;;;;;8340:34:15;;;;;;;;;8248:141;8462:14;;8446:36;;8454:2;;8479;8462:19;;8446:15;:36::i;:::-;8433:51;;8402:6;8409;:18;;:20;;;;;;;;;;;;;;;8402:28;;;;;;;;;;;;;:82;-1:-1:-1;;;;;8402:82:15;;;;;;;;;8516:2;8498:6;:14;;:20;;;;;;;;;;;-1:-1:-1;8207:322:15;;17271:286;17365:4;17399:9;17385:23;;:11;:23;;;17381:170;;;-1:-1:-1;;;17424:9:15;;17381:170;17468:9;17454:23;;:11;:23;;;17450:101;;;-1:-1:-1;17500:1:15;17493:8;;17450:101;-1:-1:-1;17539:1:15;17532:8;;18013:188;18115:7;18191:3;18180:7;18142:35;18156:12;18170:6;18142:13;:35::i;:::-;:45;18141:53;;;;;;;18013:188;-1:-1:-1;;;;18013:188:15:o;17563:268::-;17715:13;17747:77;17748:64;17806:5;17748:53;17786:14;:4;17795;17786:8;:14::i;:::-;17748:33;17764:16;:5;17774;17764:9;:16::i;:::-;17748:11;:1;17754:4;17748:5;:11::i;:::-;:15;;:33::i;:::-;:37;;:53::i;:64::-;17747:75;:77::i;1427:1385:16:-;1496:17;1955:23;1971:6;1955:15;:23::i;:::-;2000:225;2047:6;:17;;;2090:6;:16;;;2132:6;:23;;;2181:6;:22;;;2000:21;:225::i;:::-;2247:86;2269:6;:23;;;2294:6;:22;;;2318:6;:14;;;2247:21;:86::i;:::-;2355:90;2372:6;:16;;;2390:6;:16;;;2408:6;:18;;;2428:6;:16;;;2355;:90::i;:::-;2467:196;2532:25;:6;:14;;;:23;:25::i;:::-;2583:6;:16;;;2625:6;:16;;;2467:39;:196::i;:::-;2685:58;2708:6;:14;;;2724:6;:18;;;2685:22;:58::i;:::-;1917:874;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1917:874:16;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1917:874:16;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1917:874:16;;;;;;;;;;;;;-1:-1:-1;;1917:874:16;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1917:874:16;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1917:874:16;;;;;;;;;;;;;-1:-1:-1;;1917:874:16;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1917:874:16;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1917:874:16;;;;;;;;;;;;;-1:-1:-1;;1917:874:16;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1917:874:16;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1917:874:16;;;;;;;;;;;;;-1:-1:-1;;1917:874:16;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1917:874:16;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1917:874:16;;;;;;;;;;;;;-1:-1:-1;;1917:874:16;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1917:874:16;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1917:874:16;;;;;;-1:-1:-1;;1917:874:16;;;;;;;;;;;-1:-1:-1;;;;;;;;;1427:1385:16:o;671:731:7:-;733:7;764:1;760;:5;752:14;;;;;;-1:-1:-1;;;781:1:7;:40;777:102;;843:3;837:9;;;;860:8;777:102;897:19;892:1;:24;888:84;;938:2;932:8;;;;954:7;888:84;990:11;985:1;:16;981:76;;1023:2;1017:8;;;;1039:7;981:76;1075:7;1070:1;:12;1066:72;;1104:2;1098:8;;;;1120:7;1066:72;1156:5;1151:1;:10;1147:68;;1183:1;1177:7;;;;1198:6;1147:68;1233:4;1228:1;:9;1224:67;;1259:1;1253:7;;;;1274:6;1224:67;1309:3;1304:1;:8;1300:66;;1334:1;1328:7;;;;1349:6;1300:66;1384:3;1379:1;:8;1375:20;;1394:1;1389:6;671:731;;;:::o;2000:213:11:-;2056:6;2085:5;;;2109:6;;;;;;:16;;;2124:1;2119;:6;;2109:16;2108:38;;;;2135:1;2131;:5;:14;;;;;2144:1;2140;:5;2131:14;2100:87;;;;-1:-1:-1;;;2100:87:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10910:102:15;10955:7;10994:1;10989;:6;;:15;;11003:1;11002:2;;10989:15;;;-1:-1:-1;10998:1:15;10910:102::o;3530:215:10:-;3588:7;3611:6;3607:20;;-1:-1:-1;3626:1:10;3619:8;;3607:20;3649:5;;;3653:1;3649;:5;:1;3672:5;;;;;:10;3664:56;;;;-1:-1:-1;;;3664:56:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;202:725:12;258:13;475:10;471:51;;-1:-1:-1;501:10:12;;;;;;;;;;;;-1:-1:-1;;;501:10:12;;;;;;471:51;546:5;531:12;585:75;592:9;;585:75;;617:8;;647:2;639:10;;;;585:75;;;669:19;701:6;691:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;691:17:12;-1:-1:-1;761:5:12;;-1:-1:-1;669:39:12;-1:-1:-1;;;734:10:12;;776:114;783:9;;776:114;;851:2;844:4;:9;839:2;:14;826:29;;808:6;815:7;;;;;;;808:15;;;;;;;;;;;:47;-1:-1:-1;;;;;808:47:12;;;;;;;;-1:-1:-1;877:2:12;869:10;;;;776:114;;;-1:-1:-1;913:6:12;202:725;-1:-1:-1;;;;202:725:12:o;2818:5343:16:-;2890:17;3270:393;3543:6;:13;;;3336:287;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3336:287:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;3336:287:16;;;;;;;;;;;;;;;;;;;;3270:13;:393::i;:::-;3763:530;4006:6;:9;;;4083:6;:9;;;4173:6;:13;;;3829:424;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3829:424:16;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3829:424:16;;;;;;;;;;;-1:-1:-1;;;3829:424:16;;;;;;;;;;;;;;;;;-1:-1:-1;3829:424:16;;;;;;;;;;;;;-1:-1:-1;;3829:424:16;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3829:424:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3829:424:16;;;;;;;;;;;;;-1:-1:-1;;3829:424:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;3829:424:16;;;;;;;;;;;;;;;;;;;;;;3763:13;:530::i;:::-;4393;4636:6;:9;;;4713:6;:9;;;4803:6;:13;;;4459:424;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4459:424:16;;;;;;;;;;;;4393:530;5044;5287:6;:9;;;5364:6;:9;;;5454:6;:13;;;5110:424;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;5110:424:16;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;5110:424:16;;;;;;;;;;;-1:-1:-1;;;5110:424:16;;;;;;;;;;;;;;;;;-1:-1:-1;5110:424:16;;;;;;;;;;;;;-1:-1:-1;;5110:424:16;;;;;;;;;;;;;;;;-1:-1:-1;;5110:424:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5110:424:16;;;;;;;;;;;;-1:-1:-1;;5110:424:16;;;;;;;;;;;;5044:530;7513:13;;;;2945:5199;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2945:5199:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2945:5199:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2945:5199:16;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2945:5199:16;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2945:5199:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2945:5199:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2945:5199:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2919:5235;;2818:5343;;;:::o;8167:1935::-;8372:17;8665:9;8724:15;9054:9;9113:15;9444:10;9504:16;9836:10;9896:16;8427:1658;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;8427:1658:16;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;8427:1658:16;;;;;;;;;;;-1:-1:-1;;;8427:1658:16;;;;;;;;;;;;;;;;;-1:-1:-1;8427:1658:16;;;;;;;;;;;;;-1:-1:-1;;8427:1658:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;8427:1658:16;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;8427:1658:16;;;;;;;;;;;-1:-1:-1;;;8427:1658:16;;;;;;;;;;;;;;;;;-1:-1:-1;8427:1658:16;;;;;;;;;;;;;-1:-1:-1;;8427:1658:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;8427:1658:16;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;8427:1658:16;;;;;;;;;;;-1:-1:-1;;;8427:1658:16;;;;;;;;;;;;;;;;;-1:-1:-1;8427:1658:16;;;;;;;;;;;;;-1:-1:-1;;8427:1658:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;8427:1658:16;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;8427:1658:16;;;;;;;;;;;-1:-1:-1;;;8427:1658:16;;;;;;;;;;;;;;;;;-1:-1:-1;8427:1658:16;;;;;;;;;;;;;-1:-1:-1;;8427:1658:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8401:1694;;8167:1935;;;;;;:::o;10108:918::-;10277:17;10593:16;10648:15;10822:7;10332:677;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;10332:677:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;10332:677:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;10332:677:16;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;10332:677:16;;;;;;;;;;;;;;-1:-1:-1;;;10332:677:16;;;;;-1:-1:-1;10332:677:16;;;;;;;;;;;;;;;;;;;;;;;;;10306:713;;10108:918;;;;;:::o;11032:1296::-;11187:17;11216:18;11237:9;:14;;11250:1;11237:14;:126;;11291:9;:15;;-1:-1:-1;;11291:15:16;:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11237:126;;;;;;;;;;;;;;;;;;;;;11216:147;;11373:19;11395:43;11404:9;11415;11426:11;11395:8;:43::i;:::-;11373:65;;11541:4;11762:5;11926:4;12149:5;12264:33;12287:9;12264:22;:33::i;:::-;11474:837;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;11474:837:16;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;11474:837:16;;;;;;;;;;;;;;-1:-1:-1;;;11474:837:16;;;;;-1:-1:-1;11474:837:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;11474:837:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;11474:837:16;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;11474:837:16;;;;;;;;;;;;;;-1:-1:-1;;;11474:837:16;;;;;-1:-1:-1;11474:837:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;11474:837:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;11474:837:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11448:873;;11032:1296;;;;;;;;:::o;14366:2549::-;14524:17;14553:26;14582:23;14595:9;14582:12;:23::i;:::-;14553:52;;14615:26;14644:23;14657:9;14644:12;:23::i;:::-;14698:21;;14754:26;;14816;;14615:52;;-1:-1:-1;14722:1:16;14698:25;;;;14783:2;14754:31;;;;14816;14677:18;;14904:35;14918:9;14929;14904:13;:35::i;:::-;14857:82;;;;15107:40;15120:10;15133:1;15120:14;15115:1;:20;15107:38;:40::i;:::-;15409:7;15563:40;15576:10;15589:1;15576:14;15571:1;:20;15563:38;:40::i;:::-;15871:12;16030:40;16043:10;16056:1;16043:14;16038:1;:20;16030:38;:40::i;:::-;16338:12;16756:6;16804;14975:1923;;;;;;;;;;;;;-1:-1:-1;;;14975:1923:16;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;14975:1923:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;14975:1923:16;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;14975:1923:16;;;;;;;;;;;;;;-1:-1:-1;;;14975:1923:16;;;;;-1:-1:-1;14975:1923:16;;;;;;;;;-1:-1:-1;;;14975:1923:16;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;14975:1923:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;14975:1923:16;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;14975:1923:16;;;;;;;;;;;;;;-1:-1:-1;;;14975:1923:16;;;;;-1:-1:-1;14975:1923:16;;;;;;;;;-1:-1:-1;;;14975:1923:16;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;14975:1923:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;14975:1923:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;14975:1923:16;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;14975:1923:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;14975:1923:16;;;;;;;;;;;;;-1:-1:-1;;14975:1923:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14949:1959;;14366:2549;;;;;;;;;;;;:::o;18086:1062::-;18178:17;18211:28;18218:7;18227:11;18211:6;:28::i;:::-;18207:935;;;18285:793;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18255:837;;18207:935;;;-1:-1:-1;19123:8:16;;;;;;;;;-1:-1:-1;19123:8:16;;18086:1062;;;;:::o;293:1985:13:-;351:13;380:4;:11;395:1;380:16;376:31;;;-1:-1:-1;398:9:13;;;;;;;;;-1:-1:-1;398:9:13;;;;376:31;464:19;486:5;;;;;;;;;;;;;;;;;464:27;;540:18;586:1;567:4;:11;581:1;567:15;566:21;;;;;;561:1;:27;540:48;;668:20;702:10;715:2;702:15;691:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;691:27:13;;668:50;;811:10;803:6;796:26;915:1;908:5;904:13;983:4;1033;1027:11;1018:7;1014:25;1138:2;1130:6;1126:15;1220:794;1239:6;1230:7;1227:19;1220:794;;;1303:1;1290:15;;;1381:14;;1531:4;1519:2;1515:14;;;1511:25;;1497:40;;1491:47;1486:3;1482:57;;;1464:76;;1657:2;1653:14;;;1649:25;;1635:40;;1629:47;1620:57;;1584:1;1569:17;;1602:76;1796:1;1791:14;;;1787:25;;1773:40;;1767:47;1758:57;;1707:17;;;1740:76;1925:25;;1911:40;;1905:47;1896:57;;1845:17;;;1878:76;;;;1983:17;;1220:794;;;2096:1;2089:4;2083:11;2079:19;2116:1;2111:54;;;;2183:1;2178:52;;;;2072:158;;2111:54;2146:16;-1:-1:-1;;2127:17:13;;2120:43;2111:54;;2178:52;2213:14;-1:-1:-1;;2194:17:13;;2187:41;2072:158;-1:-1:-1;2265:6:13;;293:1985;-1:-1:-1;;;;;;;;293:1985:13:o;12334:697:16:-;12428:19;12459:15;12503:11;12477:37;;12490:9;12478;:21;12477:37;;;;;;;;12459:55;;12541:1;12528:9;:14;;;12524:501;;12566:6;;;;;;;;;;;;;;;;;12558:14;;12524:501;;;12606:1;12593:9;:14;;;12589:436;;12631:6;;;;;;;;;;;;;;;;;12623:14;;12589:436;;;12671:2;12658:9;:15;;;12654:371;;12697:6;;;;;;;;;;;;;;;;;12689:14;;12654:371;;;12737:2;12724:9;:15;;;12720:305;;12763:6;;;;;;;;;;;;;;;;;12755:14;;12720:305;;;12803:2;12790:9;:15;;;12786:239;;12829:6;;;;;;;;;;;;;;;;;12821:14;;12786:239;;;12869:3;12856:9;:16;;;12852:173;;12896:6;;;;;;;;;;;;;;;;;12888:14;;12852:173;;;12936:3;12923:9;:16;;;12919:106;;12963:6;;;;;;;;;;;;;;;;;12955:14;;12919:106;;;-1:-1:-1;;13008:6:16;;;;;;;;;;;;;;;;;;12334:697;-1:-1:-1;;;12334:697:16:o;13037:1323::-;13137:28;;;;;;;;;;;;;;;;;;;;13175:29;;;;;;;;;;;;;;;;13214;;;;;;;;;;;;;;;13253;;;;;;;;;;;;;;;;;;;13108:17;;13175:29;;13214;13309:1;13137:21;13296:14;;;;;:33;;;13314:9;:15;;-1:-1:-1;;13314:15:16;13296:33;13292:1062;;;13449:9;:15;;-1:-1:-1;;13449:15:16;:35;;13477:7;13449:35;;;13467:7;13449:35;13538:9;:15;;-1:-1:-1;;13538:15:16;:35;;13566:7;13538:35;;;13556:7;13538:35;13658:9;:15;;-1:-1:-1;;13658:15:16;:35;;13686:7;13658:35;;;13676:7;13658:35;13747:9;:15;;-1:-1:-1;;13747:15:16;:35;;13775:7;13747:35;;;13765:7;13747:35;13375:491;;;;;;-1:-1:-1;;;13375:491:16;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;13375:491:16;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;13375:491:16;;;;;;;;;;;-1:-1:-1;;;13375:491:16;;;;;;;;;;;;;;;;;-1:-1:-1;13375:491:16;;;;;;;;;;;;;-1:-1:-1;;13375:491:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;13375:491:16;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;13375:491:16;;;;;;;;;;;-1:-1:-1;;;13375:491:16;;;;;;;;;;;;;;;;;-1:-1:-1;13375:491:16;;;;;;;;;;;;;-1:-1:-1;;13375:491:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13345:535;;13292:1062;;;14015:7;14076;14192;14253;13941:388;;;;;;-1:-1:-1;;;13941:388:16;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;13941:388:16;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;13941:388:16;;;;;;;;;;;-1:-1:-1;;;13941:388:16;;;;;;;;;;;;;;;;;-1:-1:-1;13941:388:16;;;;;;;;;;;;;-1:-1:-1;;13941:388:16;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;13941:388:16;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;13941:388:16;;;;;;;;;;;;;;-1:-1:-1;13941:388:16;;;;;;;;;;;;;-1:-1:-1;;13941:388:16;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;13941:388:16;;;;;;;;;;;-1:-1:-1;;;13941:388:16;;;;;;;;;;;;;;;;;-1:-1:-1;13941:388:16;;;;;;;;;;;;;-1:-1:-1;;13941:388:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13911:432;;13292:1062;13037:1323;;;;;;;:::o;16921:272::-;16977:13;17002:18;:23;;;;;;;;;;;;;;17046:1;17039:4;:8;;;17035:79;;;17070:4;-1:-1:-1;;17070:9:16;17063:16;;17093:10;;;;;;;;;;;;;;;;;;;17035:79;17154:4;17160:24;17168:4;17160:13;;:22;:24::i;:::-;17137:48;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;17137:48:16;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;17137:48:16;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;17137:48:16;;;;;;;;;;;;;-1:-1:-1;;17137:48:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17123:63;;;16921:272;;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;14:138:18:-;84:20;;113:33;84:20;113:33;:::i;157:162::-;224:20;;280:13;;273:21;263:32;;253:2;;309:1;306;299:12;324:162;392:20;;452:1;441:20;;;431:31;;421:2;;476:1;473;466:12;491:487;;589:3;582:4;574:6;570:17;566:27;556:2;;611:5;604;597:20;556:2;651:6;638:20;682:50;697:34;728:2;697:34;:::i;:::-;682:50;:::i;:::-;757:2;748:7;741:19;803:3;796:4;791:2;783:6;779:15;775:26;772:35;769:2;;;824:5;817;810:20;769:2;893;886:4;878:6;874:17;867:4;858:7;854:18;841:55;916:16;;;934:4;912:27;905:42;;;;920:7;546:432;-1:-1:-1;;546:432:18:o;983:163::-;1052:20;;1112:8;1101:20;;1091:31;;1081:2;;1136:1;1133;1126:12;1151:158;1219:20;;1279:4;1268:16;;1258:27;;1248:2;;1299:1;1296;1289:12;1314:259;;1426:2;1414:9;1405:7;1401:23;1397:32;1394:2;;;1447:6;1439;1432:22;1394:2;1491:9;1478:23;1510:33;1537:5;1510:33;:::i;1578:327::-;;;1707:2;1695:9;1686:7;1682:23;1678:32;1675:2;;;1728:6;1720;1713:22;1675:2;1772:9;1759:23;1791:33;1818:5;1791:33;:::i;:::-;1843:5;1895:2;1880:18;;;;1867:32;;-1:-1:-1;;;1665:240:18:o;1910:266::-;;;2035:2;2023:9;2014:7;2010:23;2006:32;2003:2;;;2056:6;2048;2041:22;2003:2;2084:29;2103:9;2084:29;:::i;:::-;2074:39;;2132:38;2166:2;2155:9;2151:18;2132:38;:::i;:::-;2122:48;;1993:183;;;;;:::o;2181:482::-;;;;;;2350:3;2338:9;2329:7;2325:23;2321:33;2318:2;;;2372:6;2364;2357:22;2318:2;2400:29;2419:9;2400:29;:::i;:::-;2390:39;;2448:38;2482:2;2471:9;2467:18;2448:38;:::i;:::-;2438:48;;2505:38;2539:2;2528:9;2524:18;2505:38;:::i;:::-;2495:48;;2562:38;2596:2;2585:9;2581:18;2562:38;:::i;:::-;2552:48;;2619:38;2652:3;2641:9;2637:19;2619:38;:::i;:::-;2609:48;;2308:355;;;;;;;;:::o;2668:677::-;;2801:2;2789:9;2780:7;2776:23;2772:32;2769:2;;;2822:6;2814;2807:22;2769:2;2860:9;2854:16;2893:18;2885:6;2882:30;2879:2;;;2930:6;2922;2915:22;2879:2;2958:22;;3011:4;3003:13;;2999:27;-1:-1:-1;2989:2:18;;3045:6;3037;3030:22;2989:2;3079;3073:9;3104:50;3119:34;3150:2;3119:34;:::i;3104:50::-;3177:2;3170:5;3163:17;3217:7;3212:2;3207;3203;3199:11;3195:20;3192:33;3189:2;;;3243:6;3235;3228:22;3189:2;3261:54;3312:2;3307;3300:5;3296:14;3291:2;3287;3283:11;3261:54;:::i;3350:433::-;;3505:2;3493:9;3484:7;3480:23;3476:32;3473:2;;;3526:6;3518;3511:22;3473:2;3571:9;3558:23;3604:18;3596:6;3593:30;3590:2;;;3641:6;3633;3626:22;3590:2;3669:22;;3725:3;3707:16;;;3703:26;3700:2;;;3747:6;3739;3732:22;3788:1779;;3941:2;3929:9;3920:7;3916:23;3912:32;3909:2;;;3962:6;3954;3947:22;3909:2;4007:9;3994:23;4036:18;4077:2;4069:6;4066:14;4063:2;;;4098:6;4090;4083:22;4063:2;4141:6;4130:9;4126:22;4116:32;;4167:6;4207:2;4202;4193:7;4189:16;4185:25;4182:2;;;4228:6;4220;4213:22;4182:2;4259:18;4274:2;4259:18;:::i;:::-;4246:31;;4313:2;4300:16;4293:5;4286:31;4349:33;4378:2;4374;4370:11;4349:33;:::i;:::-;4344:2;4337:5;4333:14;4326:57;4415:33;4444:2;4440;4436:11;4415:33;:::i;:::-;4410:2;4403:5;4399:14;4392:57;4495:2;4491;4487:11;4474:25;4524:2;4514:8;4511:16;4508:2;;;4545:6;4537;4530:22;4508:2;4586:47;4625:7;4614:8;4610:2;4606:17;4586:47;:::i;:::-;4581:2;4574:5;4570:14;4563:71;;4680:3;4676:2;4672:12;4659:26;4710:2;4700:8;4697:16;4694:2;;;4731:6;4723;4716:22;4694:2;4773:47;4812:7;4801:8;4797:2;4793:17;4773:47;:::i;:::-;4767:3;4760:5;4756:15;4749:72;;4854:32;4881:3;4877:2;4873:12;4854:32;:::i;:::-;4848:3;4841:5;4837:15;4830:57;4920:32;4947:3;4943:2;4939:12;4920:32;:::i;:::-;4914:3;4907:5;4903:15;4896:57;4986:31;5012:3;5008:2;5004:12;4986:31;:::i;:::-;4980:3;4973:5;4969:15;4962:56;5037:3;5027:13;;5072:31;5099:2;5095;5091:11;5072:31;:::i;:::-;5067:2;5060:5;5056:14;5049:55;5123:3;5113:13;;5158:31;5185:2;5181;5177:11;5158:31;:::i;:::-;5153:2;5146:5;5142:14;5135:55;5209:3;5199:13;;5244:31;5271:2;5267;5263:11;5244:31;:::i;:::-;5239:2;5232:5;5228:14;5221:55;5295:3;5285:13;;5330:31;5357:2;5353;5349:11;5330:31;:::i;:::-;5325:2;5318:5;5314:14;5307:55;5381:3;5371:13;;5416:32;5444:2;5440;5436:11;5416:32;:::i;:::-;5411:2;5404:5;5400:14;5393:56;5468:3;5458:13;;5503:33;5532:2;5528;5524:11;5503:33;:::i;:::-;5487:14;;;5480:57;;;;5491:5;3899:1668;-1:-1:-1;;;;3899:1668:18:o;5572:403::-;;;;5714:2;5702:9;5693:7;5689:23;5685:32;5682:2;;;5735:6;5727;5720:22;5682:2;5779:9;5766:23;5798:33;5825:5;5798:33;:::i;:::-;5850:5;-1:-1:-1;5874:38:18;5908:2;5893:18;;5874:38;:::i;:::-;5864:48;;5931:38;5965:2;5954:9;5950:18;5931:38;:::i;:::-;5921:48;;5672:303;;;;;:::o;5980:196::-;;6091:2;6079:9;6070:7;6066:23;6062:32;6059:2;;;6112:6;6104;6097:22;6059:2;6140:30;6160:9;6140:30;:::i;6181:327::-;;;6310:2;6298:9;6289:7;6285:23;6281:32;6278:2;;;6331:6;6323;6316:22;6278:2;6372:9;6359:23;6349:33;;6432:2;6421:9;6417:18;6404:32;6445:33;6472:5;6445:33;:::i;:::-;6497:5;6487:15;;;6268:240;;;;;:::o;6513:129::-;-1:-1:-1;;;;;6581:54:18;6569:67;;6559:83::o;6647:93::-;6719:13;6712:21;6700:34;;6690:50::o;6745:93::-;6822:1;6811:20;6799:33;;6789:49::o;6843:271::-;;6934:6;6929:3;6922:19;6986:6;6979:5;6972:4;6967:3;6963:14;6950:43;7038:3;7031:4;7022:6;7017:3;7013:16;7009:27;7002:40;7103:4;7096:2;7092:7;7087:2;7079:6;7075:15;7071:29;7066:3;7062:39;7058:50;7051:57;;6912:202;;;;;:::o;7119:260::-;;7201:5;7195:12;7228:6;7223:3;7216:19;7244:63;7300:6;7293:4;7288:3;7284:14;7277:4;7270:5;7266:16;7244:63;:::i;:::-;7361:2;7340:15;-1:-1:-1;;7336:29:18;7327:39;;;;7368:4;7323:50;;7171:208;-1:-1:-1;;7171:208:18:o;7384:94::-;7462:8;7451:20;7439:33;;7429:49::o;7483:77::-;7552:4;7541:16;7529:29;;7527:33::o;7565:187::-;7730:14;;7723:22;7705:41;;7693:2;7678:18;;7660:92::o;7757:222::-;;7906:2;7895:9;7888:21;7926:47;7969:2;7958:9;7954:18;7946:6;7926:47;:::i;7984:387::-;;8181:2;8170:9;8163:21;8207:47;8250:2;8239:9;8235:18;8227:6;8207:47;:::i;:::-;8302:9;8294:6;8290:22;8285:2;8274:9;8270:18;8263:50;8330:35;8358:6;8350;8330:35;:::i;8376:2259::-;;8597:2;8586:9;8579:21;8649:6;8636:20;8631:2;8620:9;8616:18;8609:48;8679:37;8712:2;8704:6;8700:15;8679:37;:::i;:::-;8725:47;8768:2;8757:9;8753:18;8746:5;8725:47;:::i;:::-;;8796:37;8829:2;8821:6;8817:15;8796:37;:::i;:::-;8842:49;8887:2;8876:9;8872:18;8863:7;8842:49;:::i;:::-;;8934:58;8988:2;8980:6;8976:15;8968:6;8934:58;:::i;:::-;9011:6;9054:2;9048:3;9037:9;9033:19;9026:31;9080:77;9152:3;9141:9;9137:19;9123:12;9109;9080:77;:::i;:::-;9066:91;;9204:59;9258:3;9250:6;9246:16;9238:6;9204:59;:::i;:::-;9304:22;;;-1:-1:-1;;9300:36:18;9294:3;9279:19;;9272:65;9166:97;-1:-1:-1;9360:68:18;9308:6;9166:97;9389:14;9360:68;:::i;:::-;9346:82;;;9452:36;9483:3;9475:6;9471:16;9452:36;:::i;:::-;9437:51;;9497:48;9540:3;9529:9;9525:19;9516:7;9497:48;:::i;:::-;9569:36;9600:3;9592:6;9588:16;9569:36;:::i;:::-;9554:51;;9614:48;9657:3;9646:9;9642:19;9633:7;9614:48;:::i;:::-;9686:35;9716:3;9708:6;9704:16;9686:35;:::i;:::-;9671:50;;9740:3;9752:46;9794:2;9783:9;9779:18;9770:7;9752:46;:::i;:::-;9822:35;9853:2;9845:6;9841:15;9822:35;:::i;:::-;9807:50;;;9876:3;9888:47;9931:2;9920:9;9916:18;9907:7;9888:47;:::i;:::-;9959:35;9990:2;9982:6;9978:15;9959:35;:::i;:::-;9944:50;;;10013:3;10025:47;10068:2;10057:9;10053:18;10044:7;10025:47;:::i;:::-;10096:35;10127:2;10119:6;10115:15;10096:35;:::i;:::-;10081:50;;;10150:3;10162:47;10205:2;10194:9;10190:18;10181:7;10162:47;:::i;:::-;10233:35;10264:2;10256:6;10252:15;10233:35;:::i;:::-;10218:50;;;10287:3;10299:47;10342:2;10331:9;10327:18;10318:7;10299:47;:::i;:::-;10370:36;10402:2;10394:6;10390:15;10370:36;:::i;:::-;10355:51;;;10425:3;10437:48;10481:2;10470:9;10466:18;10457:7;10437:48;:::i;:::-;10510:37;10543:2;10535:6;10531:15;10510:37;:::i;:::-;10494:53;;;10556:50;10602:2;10591:9;10587:18;10577:8;10556:50;:::i;:::-;-1:-1:-1;10623:6:18;;8569:2066;-1:-1:-1;;;;8569:2066:18:o;10640:177::-;10786:25;;;10774:2;10759:18;;10741:76::o;10822:242::-;10892:2;10886:9;10922:17;;;10969:18;10954:34;;10990:22;;;10951:62;10948:2;;;11016:9;10948:2;11043;11036:22;10866:198;;-1:-1:-1;10866:198:18:o;11069:182::-;;11153:18;11145:6;11142:30;11139:2;;;11175:9;11139:2;-1:-1:-1;11234:2:18;11211:17;-1:-1:-1;;11207:31:18;11240:4;11203:42;;11129:122::o;11256:514::-;;;11384:3;11371:17;11470:2;11466:7;11455:8;11439:14;11435:29;11431:43;11411:18;11407:68;11397:2;;11493:5;11486;11479:20;11397:2;11525:33;;11629:4;11616:18;;;-1:-1:-1;11577:21:18;;-1:-1:-1;11657:18:18;11646:30;;11643:2;;;11689:1;11686;11679:12;11643:2;11739:6;11723:14;11719:27;11709:8;11705:42;11702:2;;;11760:1;11757;11750:12;11775:258;11847:1;11857:113;11871:6;11868:1;11865:13;11857:113;;;11947:11;;;11941:18;11928:11;;;11921:39;11893:2;11886:10;11857:113;;;11988:6;11985:1;11982:13;11979:2;;;12023:1;12014:6;12009:3;12005:16;11998:27;11979:2;;11828:205;;;:::o;12038:156::-;-1:-1:-1;;;;;12119:5:18;12115:54;12108:5;12105:65;12095:2;;12184:1;12181;12174:12;12095:2;12085:109;:::o"},"methodIdentifiers":{"addressToString(address)":"5e57966d","constructTokenURI((uint256,address,address,string,string,uint8,uint8,bool,int24,int24,int24,int24,uint24,address))":"f93a7911","feeToPercentString(uint24)":"ea4d3bcd","fixedPointToDecimalString(uint160,uint8,uint8)":"d5c0bdd8","generateSVGImage((uint256,address,address,string,string,uint8,uint8,bool,int24,int24,int24,int24,uint24,address))":"e1649fcf","getGasCostOfConstructTokenURI((uint256,address,address,string,string,uint8,uint8,bool,int24,int24,int24,int24,uint24,address))":"854924ab","isRare(uint256,address)":"e7386906","rangeLocation(int24,int24)":"2fa2af10","sliceTokenHex(address,uint256)":"d6986d45","tickToDecimalString(int24,int24,uint8,uint8,bool)":"9288c218","tokenToColorHex(address,uint256)":"3a0cdee2"}},"metadata":"{\"compiler\":{\"version\":\"0.7.6+commit.7338295f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_address\",\"type\":\"address\"}],\"name\":\"addressToString\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"quoteTokenAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"baseTokenAddress\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"quoteTokenSymbol\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"baseTokenSymbol\",\"type\":\"string\"},{\"internalType\":\"uint8\",\"name\":\"quoteTokenDecimals\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"baseTokenDecimals\",\"type\":\"uint8\"},{\"internalType\":\"bool\",\"name\":\"flipRatio\",\"type\":\"bool\"},{\"internalType\":\"int24\",\"name\":\"tickLower\",\"type\":\"int24\"},{\"internalType\":\"int24\",\"name\":\"tickUpper\",\"type\":\"int24\"},{\"internalType\":\"int24\",\"name\":\"tickCurrent\",\"type\":\"int24\"},{\"internalType\":\"int24\",\"name\":\"tickSpacing\",\"type\":\"int24\"},{\"internalType\":\"uint24\",\"name\":\"fee\",\"type\":\"uint24\"},{\"internalType\":\"address\",\"name\":\"poolAddress\",\"type\":\"address\"}],\"internalType\":\"struct NFTDescriptor.ConstructTokenURIParams\",\"name\":\"params\",\"type\":\"tuple\"}],\"name\":\"constructTokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint24\",\"name\":\"fee\",\"type\":\"uint24\"}],\"name\":\"feeToPercentString\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint160\",\"name\":\"sqrtRatioX96\",\"type\":\"uint160\"},{\"internalType\":\"uint8\",\"name\":\"token0Decimals\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"token1Decimals\",\"type\":\"uint8\"}],\"name\":\"fixedPointToDecimalString\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"quoteTokenAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"baseTokenAddress\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"quoteTokenSymbol\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"baseTokenSymbol\",\"type\":\"string\"},{\"internalType\":\"uint8\",\"name\":\"quoteTokenDecimals\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"baseTokenDecimals\",\"type\":\"uint8\"},{\"internalType\":\"bool\",\"name\":\"flipRatio\",\"type\":\"bool\"},{\"internalType\":\"int24\",\"name\":\"tickLower\",\"type\":\"int24\"},{\"internalType\":\"int24\",\"name\":\"tickUpper\",\"type\":\"int24\"},{\"internalType\":\"int24\",\"name\":\"tickCurrent\",\"type\":\"int24\"},{\"internalType\":\"int24\",\"name\":\"tickSpacing\",\"type\":\"int24\"},{\"internalType\":\"uint24\",\"name\":\"fee\",\"type\":\"uint24\"},{\"internalType\":\"address\",\"name\":\"poolAddress\",\"type\":\"address\"}],\"internalType\":\"struct NFTDescriptor.ConstructTokenURIParams\",\"name\":\"params\",\"type\":\"tuple\"}],\"name\":\"generateSVGImage\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"quoteTokenAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"baseTokenAddress\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"quoteTokenSymbol\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"baseTokenSymbol\",\"type\":\"string\"},{\"internalType\":\"uint8\",\"name\":\"quoteTokenDecimals\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"baseTokenDecimals\",\"type\":\"uint8\"},{\"internalType\":\"bool\",\"name\":\"flipRatio\",\"type\":\"bool\"},{\"internalType\":\"int24\",\"name\":\"tickLower\",\"type\":\"int24\"},{\"internalType\":\"int24\",\"name\":\"tickUpper\",\"type\":\"int24\"},{\"internalType\":\"int24\",\"name\":\"tickCurrent\",\"type\":\"int24\"},{\"internalType\":\"int24\",\"name\":\"tickSpacing\",\"type\":\"int24\"},{\"internalType\":\"uint24\",\"name\":\"fee\",\"type\":\"uint24\"},{\"internalType\":\"address\",\"name\":\"poolAddress\",\"type\":\"address\"}],\"internalType\":\"struct NFTDescriptor.ConstructTokenURIParams\",\"name\":\"params\",\"type\":\"tuple\"}],\"name\":\"getGasCostOfConstructTokenURI\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"poolAddress\",\"type\":\"address\"}],\"name\":\"isRare\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int24\",\"name\":\"tickLower\",\"type\":\"int24\"},{\"internalType\":\"int24\",\"name\":\"tickUpper\",\"type\":\"int24\"}],\"name\":\"rangeLocation\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"offset\",\"type\":\"uint256\"}],\"name\":\"sliceTokenHex\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"int24\",\"name\":\"tick\",\"type\":\"int24\"},{\"internalType\":\"int24\",\"name\":\"tickSpacing\",\"type\":\"int24\"},{\"internalType\":\"uint8\",\"name\":\"token0Decimals\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"token1Decimals\",\"type\":\"uint8\"},{\"internalType\":\"bool\",\"name\":\"flipRatio\",\"type\":\"bool\"}],\"name\":\"tickToDecimalString\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"offset\",\"type\":\"uint256\"}],\"name\":\"tokenToColorHex\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/test/NFTDescriptorTest.sol\":\"NFTDescriptorTest\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[]},\"sources\":{\"@airdao/astra-cl-core/contracts/interfaces/IAstraCLPool.sol\":{\"keccak256\":\"0xd86f876af8f4253bfc7564ae46cfad2d09d83290f4a6a4b133a44740e73d2640\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://bde092b2aba1f27df9701ff9ed1ec7370fb443b0373be6f468ae57dd1e433273\",\"dweb:/ipfs/Qmd3M893Bosob7PVUqC33hcoD2XYHTVFtjgAPhRQibWkFe\"]},\"@airdao/astra-cl-core/contracts/interfaces/pool/IAstraCLPoolActions.sol\":{\"keccak256\":\"0x29e91b8993d8df671a62aa4c3a861bac77990d2ac9f7b8ba883eacfb271964f0\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://d520d78a7d6ed69f53b72fcfea1267fd1d9fa517df6a4138df996f931f8161d8\",\"dweb:/ipfs/QmcRtZcqFBjs163wJxFZ9A4JE6CyR4ySSRqBcDe4KsL4dD\"]},\"@airdao/astra-cl-core/contracts/interfaces/pool/IAstraCLPoolDerivedState.sol\":{\"keccak256\":\"0x17b2c352ea0e1b5c8137c6f1c3aef7ef3b02ac95a6d9a7e165c573c45518748c\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://45af49340294535c5e28f80df0f3a2927a8a8f8b2d8a656197c36734ba018659\",\"dweb:/ipfs/QmYXJZArrZF93TaUMibWe8GDQEqAp4yP7oDMDjTqkaPzVW\"]},\"@airdao/astra-cl-core/contracts/interfaces/pool/IAstraCLPoolEvents.sol\":{\"keccak256\":\"0x33715230197f3b2e24a7d76c9b4ea78dacbde03d5b5e4614b118f59fad2ca004\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://1da6ef4e8c8549ea5836e040233afe78424b33de50bbf8a83bc521fc1ae0b7f5\",\"dweb:/ipfs/QmVt57cHvYNaQ94VrnTgRhDN81hq7zeV3UU1EQ3F8z2kw7\"]},\"@airdao/astra-cl-core/contracts/interfaces/pool/IAstraCLPoolImmutables.sol\":{\"keccak256\":\"0x366c9b646ed0a7e8a2ff3b01e61b078b0397b605459804948a3b5dbfadf87f07\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://4a211d5a178f08cd93b082fddd142fb144f4bc76a0d56f7bddc6b01b5433f864\",\"dweb:/ipfs/QmXbsAbdrcyiHZwksqvQ45m579Qc9C6ThPXQUttP72gUFa\"]},\"@airdao/astra-cl-core/contracts/interfaces/pool/IAstraCLPoolOwnerActions.sol\":{\"keccak256\":\"0xf783673049e12e1f5ab4784c9ffdbaef66d4cd7709ac7c43af3ab163dfcc4819\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://c64e566d63ff5e1cf081d718e5356810fedce220a473330c20aef166275cd9a9\",\"dweb:/ipfs/QmdsBonXzuaiQC8BxYVCvmcWUtnkKzp873poeH6jbsuidP\"]},\"@airdao/astra-cl-core/contracts/interfaces/pool/IAstraCLPoolState.sol\":{\"keccak256\":\"0xb41dbeb5a9faebd4222678080759032377f8dedf65388bfe1644dc6f2aaeef39\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://c7ebd43d4b1c485d5b536160d138b0206b985cf6c5f82c19dd945ff0d87ca350\",\"dweb:/ipfs/QmPuuoryMaBArNtHvNaY5PpDGmfNajoqjdyWBmGWCdbXkW\"]},\"@airdao/astra-cl-core/contracts/libraries/BitMath.sol\":{\"keccak256\":\"0x82e425066110aac05ed8a9fc90f9ee85142b6f434769447e49d4438a8d9fcd82\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://77a97078bc992c18c59cb61e07fa4632c8a26b6babf00f3b16eabb5dcaa953b4\",\"dweb:/ipfs/QmTj15ufLWk6AxedSVXBcLp5cYf2DCJAeDi94cVemCkm54\"]},\"@airdao/astra-cl-core/contracts/libraries/FullMath.sol\":{\"keccak256\":\"0x5340256039418f5d03512a44173d3dcf1da277a73a461e06fb5668f49cfc46f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://75dee99795d1125875233a7f1d356935099cc97b4085c0e451060d77db85d144\",\"dweb:/ipfs/QmTGqyrxVLQd8TBaarqSQDiYvq1QFutCdmTyXk6JpxzKTN\"]},\"@airdao/astra-cl-core/contracts/libraries/TickMath.sol\":{\"keccak256\":\"0xe22d07f1ebf9c8468c81cb6905bfc8f8a54fa2f9b4a50742202a47cdbcb5af80\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://d4773ca5008d2a2f496370695942c8ba3d6e1d487adbf5cda1149da12e3a6268\",\"dweb:/ipfs/QmcPYTLpEWfU8e3KAYBfHH7uYR4tGAkvnWrWS1CG8EkyLC\"]},\"@openzeppelin/contracts/math/SafeMath.sol\":{\"keccak256\":\"0xe22a1fc7400ae196eba2ad1562d0386462b00a6363b742d55a2fd2021a58586f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4a635cec58fb4141a16cfd408f1a21ac944c335a3beaba541c35d2e95c04536f\",\"dweb:/ipfs/QmXWcz73UenN1ji8jiWMbzxHjjfLbNQwLVKTEB5zNFE34K\"]},\"@openzeppelin/contracts/math/SignedSafeMath.sol\":{\"keccak256\":\"0xba085261d44cf28d2583f7c8cdb2f0a6a495ff1a640f86d995ea9d36b42b0046\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://03481543f67d854c94f73b006609ccd0e11a2461837296bf9d27b14b4bde7de6\",\"dweb:/ipfs/QmVt8ZoWv6jPdtoo5zikqrj7ijDvKoQ4BWYiufctStkXd3\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0x08e38e034333372aea8cb1b8846085b7fbab42c6b77a0af464d2c6827827c4f0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://22746e9348187309fb4fbd3f79f6ad88787103eac10f24bd18f67257fafdd8ad\",\"dweb:/ipfs/QmSLXfXg8b27Xstq58DFGvCpqgtTqpfrGbLMq19PtEKQJS\"]},\"base64-sol/base64.sol\":{\"keccak256\":\"0x0c8ad17afea99676d4dbab1857f52a7660b67602a79d03abd0a4c742074bbeb3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://692d64ac089a389d2e955d92c75e9f3ee642257a39c91c2efa7493a21e79d61a\",\"dweb:/ipfs/QmVSGRBRjeh4APNHjHD5GbYY7BrBhWRj8aHkmqHJQwQiK1\"]},\"contracts/libraries/HexStrings.sol\":{\"keccak256\":\"0x667d05bd5eb87dd445aee26790f8a96ad1fb339f324be97f85f20d6697533ebc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0deb463c872c0befbc355adabf6eedc42fdddbcbc43ec9baaa7a51fd7422992c\",\"dweb:/ipfs/QmW3Q9jSUCijLet37aLrV4jJcR5ZR3WgUhM3uCf9dDyeFC\"]},\"contracts/libraries/NFTDescriptor.sol\":{\"keccak256\":\"0x2f57a3e5e35059ef99c6390d46ced83b9b77834ee06ce10d00b09f3381b17d96\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://7e42934b3a7dd9093be4efa84ae2e113f5f91c2a00c4c1aec428b1d1514caba2\",\"dweb:/ipfs/QmVDcHMePtMgGkR1qANL8oQBgJXz6AB23c9vtSs6cKWm1p\"]},\"contracts/libraries/NFTSVG.sol\":{\"keccak256\":\"0x1ad3e059ed0fedde1bccd2006fec33c7da3ddc1355cdd86499c1bcb18e7f5fd3\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://22617c2261586fd19540e41ffaef1bbe35dd6f4133c0b319b2a4fa30b8d2819e\",\"dweb:/ipfs/QmfQPyA9w3N3jGUxYXkZT6HiKJQu5EkrKtiMyQTiztzmmU\"]},\"contracts/test/NFTDescriptorTest.sol\":{\"keccak256\":\"0x80a8a5caeb62dcef70f5ab440aa2101427d716b7304768b5f5bb16e7de9219ac\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://c6f70def1a59d24aa87a14567553717cf5115e7cd2f97cab3de4063eb6fb5dd1\",\"dweb:/ipfs/QmdeTHZXgJYaAKx6aZQUD9GkRAWyHcMyMzeL8A4hyarQFW\"]}},\"version\":1}"}}}}}