{
  "contractName": "TickMath",
  "abi": [],
  "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\":{\"/Users/warrenmason/Documents/UniswapV3Contracts/Core/LiveContracts/MoonwalkerSwap-v1-Core/contracts/libraries/TickMath.sol\":\"TickMath\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/warrenmason/Documents/UniswapV3Contracts/Core/LiveContracts/MoonwalkerSwap-v1-Core/contracts/libraries/TickMath.sol\":{\"keccak256\":\"0x1f864a2bf61ba05f3173eaf2e3f94c5e1da4bec0554757527b6d1ef1fe439e4e\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://5139b586df546a9d1c46804ca400b1cb9ce87236eaf212ebd64edee6747a172a\",\"dweb:/ipfs/QmVa2kcRw3VyuB6j1EVWXACKnkbQZgfXYXNi5voq3XkYG8\"]}},\"version\":1}",
  "bytecode": "0x60566023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212204cf495d4e0c9d616382caaabacdbd41c44aa86a9a0c55cf1ef61d4d7e41e2f9c64736f6c63430007060033",
  "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212204cf495d4e0c9d616382caaabacdbd41c44aa86a9a0c55cf1ef61d4d7e41e2f9c64736f6c63430007060033",
  "immutableReferences": {},
  "generatedSources": [],
  "deployedGeneratedSources": [],
  "sourceMap": "306:8331:30:-:0;;;;;;;;;;;;;;;;;;;;;;;;;",
  "deployedSourceMap": "306:8331:30:-:0;;;;;;;;",
  "source": "// SPDX-License-Identifier: GPL-2.0-or-later\npragma solidity >=0.5.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 ? tickLow : getSqrtRatioAtTick(tickHi) <= sqrtPriceX96 ? tickHi : tickLow;\n    }\n}\n",
  "sourcePath": "/Users/warrenmason/Documents/UniswapV3Contracts/Core/LiveContracts/MoonwalkerSwap-v1-Core/contracts/libraries/TickMath.sol",
  "ast": {
    "absolutePath": "/Users/warrenmason/Documents/UniswapV3Contracts/Core/LiveContracts/MoonwalkerSwap-v1-Core/contracts/libraries/TickMath.sol",
    "exportedSymbols": {
      "TickMath": [
        7170
      ]
    },
    "id": 7171,
    "license": "GPL-2.0-or-later",
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 6637,
        "literals": [
          "solidity",
          ">=",
          "0.5",
          ".0"
        ],
        "nodeType": "PragmaDirective",
        "src": "45:24:30"
      },
      {
        "abstract": false,
        "baseContracts": [],
        "contractDependencies": [],
        "contractKind": "library",
        "documentation": {
          "id": 6638,
          "nodeType": "StructuredDocumentation",
          "src": "71:235:30",
          "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": 7170,
        "linearizedBaseContracts": [
          7170
        ],
        "name": "TickMath",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "constant": true,
            "documentation": {
              "id": 6639,
              "nodeType": "StructuredDocumentation",
              "src": "329:108:30",
              "text": "@dev The minimum tick that may be passed to #getSqrtRatioAtTick computed from log base 1.0001 of 2**-128"
            },
            "id": 6643,
            "mutability": "constant",
            "name": "MIN_TICK",
            "nodeType": "VariableDeclaration",
            "scope": 7170,
            "src": "442:42:30",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_int24",
              "typeString": "int24"
            },
            "typeName": {
              "id": 6640,
              "name": "int24",
              "nodeType": "ElementaryTypeName",
              "src": "442:5:30",
              "typeDescriptions": {
                "typeIdentifier": "t_int24",
                "typeString": "int24"
              }
            },
            "value": {
              "id": 6642,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "lValueRequested": false,
              "nodeType": "UnaryOperation",
              "operator": "-",
              "prefix": true,
              "src": "477:7:30",
              "subExpression": {
                "hexValue": "383837323732",
                "id": 6641,
                "isConstant": false,
                "isLValue": false,
                "isPure": true,
                "kind": "number",
                "lValueRequested": false,
                "nodeType": "Literal",
                "src": "478:6:30",
                "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": 6644,
              "nodeType": "StructuredDocumentation",
              "src": "490:107:30",
              "text": "@dev The maximum tick that may be passed to #getSqrtRatioAtTick computed from log base 1.0001 of 2**128"
            },
            "id": 6648,
            "mutability": "constant",
            "name": "MAX_TICK",
            "nodeType": "VariableDeclaration",
            "scope": 7170,
            "src": "602:44:30",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_int24",
              "typeString": "int24"
            },
            "typeName": {
              "id": 6645,
              "name": "int24",
              "nodeType": "ElementaryTypeName",
              "src": "602:5:30",
              "typeDescriptions": {
                "typeIdentifier": "t_int24",
                "typeString": "int24"
              }
            },
            "value": {
              "id": 6647,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "lValueRequested": false,
              "nodeType": "UnaryOperation",
              "operator": "-",
              "prefix": true,
              "src": "637:9:30",
              "subExpression": {
                "id": 6646,
                "name": "MIN_TICK",
                "nodeType": "Identifier",
                "overloadedDeclarations": [],
                "referencedDeclaration": 6643,
                "src": "638:8:30",
                "typeDescriptions": {
                  "typeIdentifier": "t_int24",
                  "typeString": "int24"
                }
              },
              "typeDescriptions": {
                "typeIdentifier": "t_int24",
                "typeString": "int24"
              }
            },
            "visibility": "internal"
          },
          {
            "constant": true,
            "documentation": {
              "id": 6649,
              "nodeType": "StructuredDocumentation",
              "src": "653:116:30",
              "text": "@dev The minimum value that can be returned from #getSqrtRatioAtTick. Equivalent to getSqrtRatioAtTick(MIN_TICK)"
            },
            "id": 6652,
            "mutability": "constant",
            "name": "MIN_SQRT_RATIO",
            "nodeType": "VariableDeclaration",
            "scope": 7170,
            "src": "774:53:30",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint160",
              "typeString": "uint160"
            },
            "typeName": {
              "id": 6650,
              "name": "uint160",
              "nodeType": "ElementaryTypeName",
              "src": "774:7:30",
              "typeDescriptions": {
                "typeIdentifier": "t_uint160",
                "typeString": "uint160"
              }
            },
            "value": {
              "hexValue": "34323935313238373339",
              "id": 6651,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "817:10:30",
              "typeDescriptions": {
                "typeIdentifier": "t_rational_4295128739_by_1",
                "typeString": "int_const 4295128739"
              },
              "value": "4295128739"
            },
            "visibility": "internal"
          },
          {
            "constant": true,
            "documentation": {
              "id": 6653,
              "nodeType": "StructuredDocumentation",
              "src": "833:116:30",
              "text": "@dev The maximum value that can be returned from #getSqrtRatioAtTick. Equivalent to getSqrtRatioAtTick(MAX_TICK)"
            },
            "id": 6656,
            "mutability": "constant",
            "name": "MAX_SQRT_RATIO",
            "nodeType": "VariableDeclaration",
            "scope": 7170,
            "src": "954:92:30",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint160",
              "typeString": "uint160"
            },
            "typeName": {
              "id": 6654,
              "name": "uint160",
              "nodeType": "ElementaryTypeName",
              "src": "954:7:30",
              "typeDescriptions": {
                "typeIdentifier": "t_uint160",
                "typeString": "uint160"
              }
            },
            "value": {
              "hexValue": "31343631343436373033343835323130313033323837323733303532323033393838383232333738373233393730333432",
              "id": 6655,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "997:49:30",
              "typeDescriptions": {
                "typeIdentifier": "t_rational_1461446703485210103287273052203988822378723970342_by_1",
                "typeString": "int_const 1461...(41 digits omitted)...0342"
              },
              "value": "1461446703485210103287273052203988822378723970342"
            },
            "visibility": "internal"
          },
          {
            "body": {
              "id": 7029,
              "nodeType": "Block",
              "src": "1440:2495:30",
              "statements": [
                {
                  "assignments": [
                    6665
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 6665,
                      "mutability": "mutable",
                      "name": "absTick",
                      "nodeType": "VariableDeclaration",
                      "scope": 7029,
                      "src": "1450:15:30",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 6664,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "1450:7:30",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 6685,
                  "initialValue": {
                    "condition": {
                      "commonType": {
                        "typeIdentifier": "t_int24",
                        "typeString": "int24"
                      },
                      "id": 6668,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "id": 6666,
                        "name": "tick",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6659,
                        "src": "1468:4:30",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int24",
                          "typeString": "int24"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "<",
                      "rightExpression": {
                        "hexValue": "30",
                        "id": 6667,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1475:1:30",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      },
                      "src": "1468:8:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "falseExpression": {
                      "arguments": [
                        {
                          "arguments": [
                            {
                              "id": 6681,
                              "name": "tick",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6659,
                              "src": "1519:4:30",
                              "typeDescriptions": {
                                "typeIdentifier": "t_int24",
                                "typeString": "int24"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_int24",
                                "typeString": "int24"
                              }
                            ],
                            "id": 6680,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "1512:6:30",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_int256_$",
                              "typeString": "type(int256)"
                            },
                            "typeName": {
                              "id": 6679,
                              "name": "int256",
                              "nodeType": "ElementaryTypeName",
                              "src": "1512:6:30",
                              "typeDescriptions": {}
                            }
                          },
                          "id": 6682,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "1512:12:30",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          }
                        ],
                        "id": 6678,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "1504:7:30",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_uint256_$",
                          "typeString": "type(uint256)"
                        },
                        "typeName": {
                          "id": 6677,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "1504:7:30",
                          "typeDescriptions": {}
                        }
                      },
                      "id": 6683,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "1504:21:30",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 6684,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "Conditional",
                    "src": "1468:57:30",
                    "trueExpression": {
                      "arguments": [
                        {
                          "id": 6675,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "UnaryOperation",
                          "operator": "-",
                          "prefix": true,
                          "src": "1487:13:30",
                          "subExpression": {
                            "arguments": [
                              {
                                "id": 6673,
                                "name": "tick",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 6659,
                                "src": "1495:4:30",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_int24",
                                  "typeString": "int24"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_int24",
                                  "typeString": "int24"
                                }
                              ],
                              "id": 6672,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "1488:6:30",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_int256_$",
                                "typeString": "type(int256)"
                              },
                              "typeName": {
                                "id": 6671,
                                "name": "int256",
                                "nodeType": "ElementaryTypeName",
                                "src": "1488:6:30",
                                "typeDescriptions": {}
                              }
                            },
                            "id": 6674,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "1488:12:30",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_int256",
                              "typeString": "int256"
                            }
                          },
                          "typeDescriptions": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          }
                        ],
                        "id": 6670,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "1479:7:30",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_uint256_$",
                          "typeString": "type(uint256)"
                        },
                        "typeName": {
                          "id": 6669,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "1479:7:30",
                          "typeDescriptions": {}
                        }
                      },
                      "id": 6676,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "1479:22:30",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "1450:75:30"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 6692,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "id": 6687,
                          "name": "absTick",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 6665,
                          "src": "1543:7:30",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "<=",
                        "rightExpression": {
                          "arguments": [
                            {
                              "id": 6690,
                              "name": "MAX_TICK",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6648,
                              "src": "1562:8:30",
                              "typeDescriptions": {
                                "typeIdentifier": "t_int24",
                                "typeString": "int24"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_int24",
                                "typeString": "int24"
                              }
                            ],
                            "id": 6689,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "1554:7:30",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_uint256_$",
                              "typeString": "type(uint256)"
                            },
                            "typeName": {
                              "id": 6688,
                              "name": "uint256",
                              "nodeType": "ElementaryTypeName",
                              "src": "1554:7:30",
                              "typeDescriptions": {}
                            }
                          },
                          "id": 6691,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "1554:17:30",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "1543:28:30",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "hexValue": "54",
                        "id": 6693,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1573:3:30",
                        "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": 6686,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        4294967278,
                        4294967278
                      ],
                      "referencedDeclaration": 4294967278,
                      "src": "1535:7:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 6694,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1535:42:30",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 6695,
                  "nodeType": "ExpressionStatement",
                  "src": "1535:42:30"
                },
                {
                  "assignments": [
                    6697
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 6697,
                      "mutability": "mutable",
                      "name": "ratio",
                      "nodeType": "VariableDeclaration",
                      "scope": 7029,
                      "src": "1588:13:30",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 6696,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "1588:7:30",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 6706,
                  "initialValue": {
                    "condition": {
                      "commonType": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "id": 6702,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 6700,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "id": 6698,
                          "name": "absTick",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 6665,
                          "src": "1604:7:30",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "&",
                        "rightExpression": {
                          "hexValue": "307831",
                          "id": 6699,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "1614:3:30",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_1_by_1",
                            "typeString": "int_const 1"
                          },
                          "value": "0x1"
                        },
                        "src": "1604:13:30",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "!=",
                      "rightExpression": {
                        "hexValue": "30",
                        "id": 6701,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1621:1:30",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      },
                      "src": "1604:18:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "falseExpression": {
                      "hexValue": "3078313030303030303030303030303030303030303030303030303030303030303030",
                      "id": 6704,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "1662:35:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_340282366920938463463374607431768211456_by_1",
                        "typeString": "int_const 3402...(31 digits omitted)...1456"
                      },
                      "value": "0x100000000000000000000000000000000"
                    },
                    "id": 6705,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "Conditional",
                    "src": "1604:93:30",
                    "trueExpression": {
                      "hexValue": "30786666666362393333626436666164333761613264313632643161353934303031",
                      "id": 6703,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "1625:34:30",
                      "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": "1588:109:30"
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 6711,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "commonType": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "id": 6709,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "id": 6707,
                        "name": "absTick",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6665,
                        "src": "1711:7:30",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "&",
                      "rightExpression": {
                        "hexValue": "307832",
                        "id": 6708,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1721:3:30",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_2_by_1",
                          "typeString": "int_const 2"
                        },
                        "value": "0x2"
                      },
                      "src": "1711:13:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "!=",
                    "rightExpression": {
                      "hexValue": "30",
                      "id": 6710,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "1728:1:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "1711:18:30",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 6721,
                  "nodeType": "IfStatement",
                  "src": "1707:83:30",
                  "trueBody": {
                    "expression": {
                      "id": 6719,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftHandSide": {
                        "id": 6712,
                        "name": "ratio",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6697,
                        "src": "1731:5:30",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "Assignment",
                      "operator": "=",
                      "rightHandSide": {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 6718,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "components": [
                            {
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "id": 6715,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "id": 6713,
                                "name": "ratio",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 6697,
                                "src": "1740:5:30",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "*",
                              "rightExpression": {
                                "hexValue": "30786666663937323732333733643431333235396134363939303538306532313361",
                                "id": 6714,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "1748:34:30",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_340248342086729790484326174814286782778_by_1",
                                  "typeString": "int_const 3402...(31 digits omitted)...2778"
                                },
                                "value": "0xfff97272373d413259a46990580e213a"
                              },
                              "src": "1740:42:30",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "id": 6716,
                          "isConstant": false,
                          "isInlineArray": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "TupleExpression",
                          "src": "1739:44:30",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">>",
                        "rightExpression": {
                          "hexValue": "313238",
                          "id": 6717,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "1787:3:30",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_128_by_1",
                            "typeString": "int_const 128"
                          },
                          "value": "128"
                        },
                        "src": "1739:51:30",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "src": "1731:59:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 6720,
                    "nodeType": "ExpressionStatement",
                    "src": "1731:59:30"
                  }
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 6726,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "commonType": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "id": 6724,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "id": 6722,
                        "name": "absTick",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6665,
                        "src": "1804:7:30",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "&",
                      "rightExpression": {
                        "hexValue": "307834",
                        "id": 6723,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1814:3:30",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_4_by_1",
                          "typeString": "int_const 4"
                        },
                        "value": "0x4"
                      },
                      "src": "1804:13:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "!=",
                    "rightExpression": {
                      "hexValue": "30",
                      "id": 6725,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "1821:1:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "1804:18:30",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 6736,
                  "nodeType": "IfStatement",
                  "src": "1800:83:30",
                  "trueBody": {
                    "expression": {
                      "id": 6734,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftHandSide": {
                        "id": 6727,
                        "name": "ratio",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6697,
                        "src": "1824:5:30",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "Assignment",
                      "operator": "=",
                      "rightHandSide": {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 6733,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "components": [
                            {
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "id": 6730,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "id": 6728,
                                "name": "ratio",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 6697,
                                "src": "1833:5:30",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "*",
                              "rightExpression": {
                                "hexValue": "30786666663265353066356636353639333265663132333537636633633766646363",
                                "id": 6729,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "1841:34:30",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_340214320654664324051920982716015181260_by_1",
                                  "typeString": "int_const 3402...(31 digits omitted)...1260"
                                },
                                "value": "0xfff2e50f5f656932ef12357cf3c7fdcc"
                              },
                              "src": "1833:42:30",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "id": 6731,
                          "isConstant": false,
                          "isInlineArray": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "TupleExpression",
                          "src": "1832:44:30",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">>",
                        "rightExpression": {
                          "hexValue": "313238",
                          "id": 6732,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "1880:3:30",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_128_by_1",
                            "typeString": "int_const 128"
                          },
                          "value": "128"
                        },
                        "src": "1832:51:30",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "src": "1824:59:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 6735,
                    "nodeType": "ExpressionStatement",
                    "src": "1824:59:30"
                  }
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 6741,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "commonType": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "id": 6739,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "id": 6737,
                        "name": "absTick",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6665,
                        "src": "1897:7:30",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "&",
                      "rightExpression": {
                        "hexValue": "307838",
                        "id": 6738,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1907:3:30",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_8_by_1",
                          "typeString": "int_const 8"
                        },
                        "value": "0x8"
                      },
                      "src": "1897:13:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "!=",
                    "rightExpression": {
                      "hexValue": "30",
                      "id": 6740,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "1914:1:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "1897:18:30",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 6751,
                  "nodeType": "IfStatement",
                  "src": "1893:83:30",
                  "trueBody": {
                    "expression": {
                      "id": 6749,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftHandSide": {
                        "id": 6742,
                        "name": "ratio",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6697,
                        "src": "1917:5:30",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "Assignment",
                      "operator": "=",
                      "rightHandSide": {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 6748,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "components": [
                            {
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "id": 6745,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "id": 6743,
                                "name": "ratio",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 6697,
                                "src": "1926:5:30",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "*",
                              "rightExpression": {
                                "hexValue": "30786666653563616361376531306534653631633336323465616130393431636430",
                                "id": 6744,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "1934:34:30",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_340146287995602323631171512101879684304_by_1",
                                  "typeString": "int_const 3401...(31 digits omitted)...4304"
                                },
                                "value": "0xffe5caca7e10e4e61c3624eaa0941cd0"
                              },
                              "src": "1926:42:30",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "id": 6746,
                          "isConstant": false,
                          "isInlineArray": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "TupleExpression",
                          "src": "1925:44:30",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">>",
                        "rightExpression": {
                          "hexValue": "313238",
                          "id": 6747,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "1973:3:30",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_128_by_1",
                            "typeString": "int_const 128"
                          },
                          "value": "128"
                        },
                        "src": "1925:51:30",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "src": "1917:59:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 6750,
                    "nodeType": "ExpressionStatement",
                    "src": "1917:59:30"
                  }
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 6756,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "commonType": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "id": 6754,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "id": 6752,
                        "name": "absTick",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6665,
                        "src": "1990:7:30",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "&",
                      "rightExpression": {
                        "hexValue": "30783130",
                        "id": 6753,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "2000:4:30",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_16_by_1",
                          "typeString": "int_const 16"
                        },
                        "value": "0x10"
                      },
                      "src": "1990:14:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "!=",
                    "rightExpression": {
                      "hexValue": "30",
                      "id": 6755,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "2008:1:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "1990:19:30",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 6766,
                  "nodeType": "IfStatement",
                  "src": "1986:84:30",
                  "trueBody": {
                    "expression": {
                      "id": 6764,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftHandSide": {
                        "id": 6757,
                        "name": "ratio",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6697,
                        "src": "2011:5:30",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "Assignment",
                      "operator": "=",
                      "rightHandSide": {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 6763,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "components": [
                            {
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "id": 6760,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "id": 6758,
                                "name": "ratio",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 6697,
                                "src": "2020:5:30",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "*",
                              "rightExpression": {
                                "hexValue": "30786666636239383433643630663631353963396462353838333563393236363434",
                                "id": 6759,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "2028:34:30",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_340010263488231146823593991679159461444_by_1",
                                  "typeString": "int_const 3400...(31 digits omitted)...1444"
                                },
                                "value": "0xffcb9843d60f6159c9db58835c926644"
                              },
                              "src": "2020:42:30",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "id": 6761,
                          "isConstant": false,
                          "isInlineArray": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "TupleExpression",
                          "src": "2019:44:30",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">>",
                        "rightExpression": {
                          "hexValue": "313238",
                          "id": 6762,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "2067:3:30",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_128_by_1",
                            "typeString": "int_const 128"
                          },
                          "value": "128"
                        },
                        "src": "2019:51:30",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "src": "2011:59:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 6765,
                    "nodeType": "ExpressionStatement",
                    "src": "2011:59:30"
                  }
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 6771,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "commonType": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "id": 6769,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "id": 6767,
                        "name": "absTick",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6665,
                        "src": "2084:7:30",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "&",
                      "rightExpression": {
                        "hexValue": "30783230",
                        "id": 6768,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "2094:4:30",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_32_by_1",
                          "typeString": "int_const 32"
                        },
                        "value": "0x20"
                      },
                      "src": "2084:14:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "!=",
                    "rightExpression": {
                      "hexValue": "30",
                      "id": 6770,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "2102:1:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "2084:19:30",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 6781,
                  "nodeType": "IfStatement",
                  "src": "2080:84:30",
                  "trueBody": {
                    "expression": {
                      "id": 6779,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftHandSide": {
                        "id": 6772,
                        "name": "ratio",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6697,
                        "src": "2105:5:30",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "Assignment",
                      "operator": "=",
                      "rightHandSide": {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 6778,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "components": [
                            {
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "id": 6775,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "id": 6773,
                                "name": "ratio",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 6697,
                                "src": "2114:5:30",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "*",
                              "rightExpression": {
                                "hexValue": "30786666393733623431666139386330383134373265363839366466623235346330",
                                "id": 6774,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "2122:34:30",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_339738377640345403697157401104375502016_by_1",
                                  "typeString": "int_const 3397...(31 digits omitted)...2016"
                                },
                                "value": "0xff973b41fa98c081472e6896dfb254c0"
                              },
                              "src": "2114:42:30",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "id": 6776,
                          "isConstant": false,
                          "isInlineArray": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "TupleExpression",
                          "src": "2113:44:30",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">>",
                        "rightExpression": {
                          "hexValue": "313238",
                          "id": 6777,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "2161:3:30",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_128_by_1",
                            "typeString": "int_const 128"
                          },
                          "value": "128"
                        },
                        "src": "2113:51:30",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "src": "2105:59:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 6780,
                    "nodeType": "ExpressionStatement",
                    "src": "2105:59:30"
                  }
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 6786,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "commonType": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "id": 6784,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "id": 6782,
                        "name": "absTick",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6665,
                        "src": "2178:7:30",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "&",
                      "rightExpression": {
                        "hexValue": "30783430",
                        "id": 6783,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "2188:4:30",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_64_by_1",
                          "typeString": "int_const 64"
                        },
                        "value": "0x40"
                      },
                      "src": "2178:14:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "!=",
                    "rightExpression": {
                      "hexValue": "30",
                      "id": 6785,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "2196:1:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "2178:19:30",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 6796,
                  "nodeType": "IfStatement",
                  "src": "2174:84:30",
                  "trueBody": {
                    "expression": {
                      "id": 6794,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftHandSide": {
                        "id": 6787,
                        "name": "ratio",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6697,
                        "src": "2199:5:30",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "Assignment",
                      "operator": "=",
                      "rightHandSide": {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 6793,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "components": [
                            {
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "id": 6790,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "id": 6788,
                                "name": "ratio",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 6697,
                                "src": "2208:5:30",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "*",
                              "rightExpression": {
                                "hexValue": "30786666326561313634363663393661333834336563373862333236623532383631",
                                "id": 6789,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "2216:34:30",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_339195258003219555707034227454543997025_by_1",
                                  "typeString": "int_const 3391...(31 digits omitted)...7025"
                                },
                                "value": "0xff2ea16466c96a3843ec78b326b52861"
                              },
                              "src": "2208:42:30",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "id": 6791,
                          "isConstant": false,
                          "isInlineArray": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "TupleExpression",
                          "src": "2207:44:30",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">>",
                        "rightExpression": {
                          "hexValue": "313238",
                          "id": 6792,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "2255:3:30",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_128_by_1",
                            "typeString": "int_const 128"
                          },
                          "value": "128"
                        },
                        "src": "2207:51:30",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "src": "2199:59:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 6795,
                    "nodeType": "ExpressionStatement",
                    "src": "2199:59:30"
                  }
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 6801,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "commonType": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "id": 6799,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "id": 6797,
                        "name": "absTick",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6665,
                        "src": "2272:7:30",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "&",
                      "rightExpression": {
                        "hexValue": "30783830",
                        "id": 6798,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "2282:4:30",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_128_by_1",
                          "typeString": "int_const 128"
                        },
                        "value": "0x80"
                      },
                      "src": "2272:14:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "!=",
                    "rightExpression": {
                      "hexValue": "30",
                      "id": 6800,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "2290:1:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "2272:19:30",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 6811,
                  "nodeType": "IfStatement",
                  "src": "2268:84:30",
                  "trueBody": {
                    "expression": {
                      "id": 6809,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftHandSide": {
                        "id": 6802,
                        "name": "ratio",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6697,
                        "src": "2293:5:30",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "Assignment",
                      "operator": "=",
                      "rightHandSide": {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 6808,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "components": [
                            {
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "id": 6805,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "id": 6803,
                                "name": "ratio",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 6697,
                                "src": "2302:5:30",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "*",
                              "rightExpression": {
                                "hexValue": "30786665356465653034366139396132613831316334363166313936396333303533",
                                "id": 6804,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "2310:34:30",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_338111622100601834656805679988414885971_by_1",
                                  "typeString": "int_const 3381...(31 digits omitted)...5971"
                                },
                                "value": "0xfe5dee046a99a2a811c461f1969c3053"
                              },
                              "src": "2302:42:30",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "id": 6806,
                          "isConstant": false,
                          "isInlineArray": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "TupleExpression",
                          "src": "2301:44:30",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">>",
                        "rightExpression": {
                          "hexValue": "313238",
                          "id": 6807,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "2349:3:30",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_128_by_1",
                            "typeString": "int_const 128"
                          },
                          "value": "128"
                        },
                        "src": "2301:51:30",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "src": "2293:59:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 6810,
                    "nodeType": "ExpressionStatement",
                    "src": "2293:59:30"
                  }
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 6816,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "commonType": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "id": 6814,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "id": 6812,
                        "name": "absTick",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6665,
                        "src": "2366:7:30",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "&",
                      "rightExpression": {
                        "hexValue": "3078313030",
                        "id": 6813,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "2376:5:30",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_256_by_1",
                          "typeString": "int_const 256"
                        },
                        "value": "0x100"
                      },
                      "src": "2366:15:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "!=",
                    "rightExpression": {
                      "hexValue": "30",
                      "id": 6815,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "2385:1:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "2366:20:30",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 6826,
                  "nodeType": "IfStatement",
                  "src": "2362:85:30",
                  "trueBody": {
                    "expression": {
                      "id": 6824,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftHandSide": {
                        "id": 6817,
                        "name": "ratio",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6697,
                        "src": "2388:5:30",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "Assignment",
                      "operator": "=",
                      "rightHandSide": {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 6823,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "components": [
                            {
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "id": 6820,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "id": 6818,
                                "name": "ratio",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 6697,
                                "src": "2397:5:30",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "*",
                              "rightExpression": {
                                "hexValue": "30786663626538366337393030613838616564636666633833623437396161336134",
                                "id": 6819,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "2405:34:30",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_335954724994790223023589805789778977700_by_1",
                                  "typeString": "int_const 3359...(31 digits omitted)...7700"
                                },
                                "value": "0xfcbe86c7900a88aedcffc83b479aa3a4"
                              },
                              "src": "2397:42:30",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "id": 6821,
                          "isConstant": false,
                          "isInlineArray": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "TupleExpression",
                          "src": "2396:44:30",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">>",
                        "rightExpression": {
                          "hexValue": "313238",
                          "id": 6822,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "2444:3:30",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_128_by_1",
                            "typeString": "int_const 128"
                          },
                          "value": "128"
                        },
                        "src": "2396:51:30",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "src": "2388:59:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 6825,
                    "nodeType": "ExpressionStatement",
                    "src": "2388:59:30"
                  }
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 6831,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "commonType": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "id": 6829,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "id": 6827,
                        "name": "absTick",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6665,
                        "src": "2461:7:30",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "&",
                      "rightExpression": {
                        "hexValue": "3078323030",
                        "id": 6828,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "2471:5:30",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_512_by_1",
                          "typeString": "int_const 512"
                        },
                        "value": "0x200"
                      },
                      "src": "2461:15:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "!=",
                    "rightExpression": {
                      "hexValue": "30",
                      "id": 6830,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "2480:1:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "2461:20:30",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 6841,
                  "nodeType": "IfStatement",
                  "src": "2457:85:30",
                  "trueBody": {
                    "expression": {
                      "id": 6839,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftHandSide": {
                        "id": 6832,
                        "name": "ratio",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6697,
                        "src": "2483:5:30",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "Assignment",
                      "operator": "=",
                      "rightHandSide": {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 6838,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "components": [
                            {
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "id": 6835,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "id": 6833,
                                "name": "ratio",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 6697,
                                "src": "2492:5:30",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "*",
                              "rightExpression": {
                                "hexValue": "30786639383761373235336163343133313736663262303734636637383135653534",
                                "id": 6834,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "2500:34:30",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_331682121138379247127172139078559817300_by_1",
                                  "typeString": "int_const 3316...(31 digits omitted)...7300"
                                },
                                "value": "0xf987a7253ac413176f2b074cf7815e54"
                              },
                              "src": "2492:42:30",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "id": 6836,
                          "isConstant": false,
                          "isInlineArray": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "TupleExpression",
                          "src": "2491:44:30",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">>",
                        "rightExpression": {
                          "hexValue": "313238",
                          "id": 6837,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "2539:3:30",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_128_by_1",
                            "typeString": "int_const 128"
                          },
                          "value": "128"
                        },
                        "src": "2491:51:30",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "src": "2483:59:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 6840,
                    "nodeType": "ExpressionStatement",
                    "src": "2483:59:30"
                  }
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 6846,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "commonType": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "id": 6844,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "id": 6842,
                        "name": "absTick",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6665,
                        "src": "2556:7:30",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "&",
                      "rightExpression": {
                        "hexValue": "3078343030",
                        "id": 6843,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "2566:5:30",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_1024_by_1",
                          "typeString": "int_const 1024"
                        },
                        "value": "0x400"
                      },
                      "src": "2556:15:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "!=",
                    "rightExpression": {
                      "hexValue": "30",
                      "id": 6845,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "2575:1:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "2556:20:30",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 6856,
                  "nodeType": "IfStatement",
                  "src": "2552:85:30",
                  "trueBody": {
                    "expression": {
                      "id": 6854,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftHandSide": {
                        "id": 6847,
                        "name": "ratio",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6697,
                        "src": "2578:5:30",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "Assignment",
                      "operator": "=",
                      "rightHandSide": {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 6853,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "components": [
                            {
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "id": 6850,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "id": 6848,
                                "name": "ratio",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 6697,
                                "src": "2587:5:30",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "*",
                              "rightExpression": {
                                "hexValue": "30786633333932623038323262373030303539343063376133393865346237306633",
                                "id": 6849,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "2595:34:30",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_323299236684853023288211250268160618739_by_1",
                                  "typeString": "int_const 3232...(31 digits omitted)...8739"
                                },
                                "value": "0xf3392b0822b70005940c7a398e4b70f3"
                              },
                              "src": "2587:42:30",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "id": 6851,
                          "isConstant": false,
                          "isInlineArray": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "TupleExpression",
                          "src": "2586:44:30",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">>",
                        "rightExpression": {
                          "hexValue": "313238",
                          "id": 6852,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "2634:3:30",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_128_by_1",
                            "typeString": "int_const 128"
                          },
                          "value": "128"
                        },
                        "src": "2586:51:30",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "src": "2578:59:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 6855,
                    "nodeType": "ExpressionStatement",
                    "src": "2578:59:30"
                  }
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 6861,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "commonType": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "id": 6859,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "id": 6857,
                        "name": "absTick",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6665,
                        "src": "2651:7:30",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "&",
                      "rightExpression": {
                        "hexValue": "3078383030",
                        "id": 6858,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "2661:5:30",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_2048_by_1",
                          "typeString": "int_const 2048"
                        },
                        "value": "0x800"
                      },
                      "src": "2651:15:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "!=",
                    "rightExpression": {
                      "hexValue": "30",
                      "id": 6860,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "2670:1:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "2651:20:30",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 6871,
                  "nodeType": "IfStatement",
                  "src": "2647:85:30",
                  "trueBody": {
                    "expression": {
                      "id": 6869,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftHandSide": {
                        "id": 6862,
                        "name": "ratio",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6697,
                        "src": "2673:5:30",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "Assignment",
                      "operator": "=",
                      "rightHandSide": {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 6868,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "components": [
                            {
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "id": 6865,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "id": 6863,
                                "name": "ratio",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 6697,
                                "src": "2682:5:30",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "*",
                              "rightExpression": {
                                "hexValue": "30786537313539343735613263323962373434336232396337666136653838396439",
                                "id": 6864,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "2690:34:30",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_307163716377032989948697243942600083929_by_1",
                                  "typeString": "int_const 3071...(31 digits omitted)...3929"
                                },
                                "value": "0xe7159475a2c29b7443b29c7fa6e889d9"
                              },
                              "src": "2682:42:30",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "id": 6866,
                          "isConstant": false,
                          "isInlineArray": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "TupleExpression",
                          "src": "2681:44:30",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">>",
                        "rightExpression": {
                          "hexValue": "313238",
                          "id": 6867,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "2729:3:30",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_128_by_1",
                            "typeString": "int_const 128"
                          },
                          "value": "128"
                        },
                        "src": "2681:51:30",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "src": "2673:59:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 6870,
                    "nodeType": "ExpressionStatement",
                    "src": "2673:59:30"
                  }
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 6876,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "commonType": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "id": 6874,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "id": 6872,
                        "name": "absTick",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6665,
                        "src": "2746:7:30",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "&",
                      "rightExpression": {
                        "hexValue": "307831303030",
                        "id": 6873,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "2756:6:30",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_4096_by_1",
                          "typeString": "int_const 4096"
                        },
                        "value": "0x1000"
                      },
                      "src": "2746:16:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "!=",
                    "rightExpression": {
                      "hexValue": "30",
                      "id": 6875,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "2766:1:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "2746:21:30",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 6886,
                  "nodeType": "IfStatement",
                  "src": "2742:86:30",
                  "trueBody": {
                    "expression": {
                      "id": 6884,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftHandSide": {
                        "id": 6877,
                        "name": "ratio",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6697,
                        "src": "2769:5:30",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "Assignment",
                      "operator": "=",
                      "rightHandSide": {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 6883,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "components": [
                            {
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "id": 6880,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "id": 6878,
                                "name": "ratio",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 6697,
                                "src": "2778:5:30",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "*",
                              "rightExpression": {
                                "hexValue": "30786430393766336264666432303232623838343561643866373932616135383235",
                                "id": 6879,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "2786:34:30",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_277268403626896220162999269216087595045_by_1",
                                  "typeString": "int_const 2772...(31 digits omitted)...5045"
                                },
                                "value": "0xd097f3bdfd2022b8845ad8f792aa5825"
                              },
                              "src": "2778:42:30",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "id": 6881,
                          "isConstant": false,
                          "isInlineArray": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "TupleExpression",
                          "src": "2777:44:30",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">>",
                        "rightExpression": {
                          "hexValue": "313238",
                          "id": 6882,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "2825:3:30",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_128_by_1",
                            "typeString": "int_const 128"
                          },
                          "value": "128"
                        },
                        "src": "2777:51:30",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "src": "2769:59:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 6885,
                    "nodeType": "ExpressionStatement",
                    "src": "2769:59:30"
                  }
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 6891,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "commonType": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "id": 6889,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "id": 6887,
                        "name": "absTick",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6665,
                        "src": "2842:7:30",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "&",
                      "rightExpression": {
                        "hexValue": "307832303030",
                        "id": 6888,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "2852:6:30",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_8192_by_1",
                          "typeString": "int_const 8192"
                        },
                        "value": "0x2000"
                      },
                      "src": "2842:16:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "!=",
                    "rightExpression": {
                      "hexValue": "30",
                      "id": 6890,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "2862:1:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "2842:21:30",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 6901,
                  "nodeType": "IfStatement",
                  "src": "2838:86:30",
                  "trueBody": {
                    "expression": {
                      "id": 6899,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftHandSide": {
                        "id": 6892,
                        "name": "ratio",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6697,
                        "src": "2865:5:30",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "Assignment",
                      "operator": "=",
                      "rightHandSide": {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 6898,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "components": [
                            {
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "id": 6895,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "id": 6893,
                                "name": "ratio",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 6697,
                                "src": "2874:5:30",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "*",
                              "rightExpression": {
                                "hexValue": "30786139663734363436326438373066646638613635646331663930653036316535",
                                "id": 6894,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "2882:34:30",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_225923453940442621947126027127485391333_by_1",
                                  "typeString": "int_const 2259...(31 digits omitted)...1333"
                                },
                                "value": "0xa9f746462d870fdf8a65dc1f90e061e5"
                              },
                              "src": "2874:42:30",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "id": 6896,
                          "isConstant": false,
                          "isInlineArray": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "TupleExpression",
                          "src": "2873:44:30",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">>",
                        "rightExpression": {
                          "hexValue": "313238",
                          "id": 6897,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "2921:3:30",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_128_by_1",
                            "typeString": "int_const 128"
                          },
                          "value": "128"
                        },
                        "src": "2873:51:30",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "src": "2865:59:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 6900,
                    "nodeType": "ExpressionStatement",
                    "src": "2865:59:30"
                  }
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 6906,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "commonType": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "id": 6904,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "id": 6902,
                        "name": "absTick",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6665,
                        "src": "2938:7:30",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "&",
                      "rightExpression": {
                        "hexValue": "307834303030",
                        "id": 6903,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "2948:6:30",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_16384_by_1",
                          "typeString": "int_const 16384"
                        },
                        "value": "0x4000"
                      },
                      "src": "2938:16:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "!=",
                    "rightExpression": {
                      "hexValue": "30",
                      "id": 6905,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "2958:1:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "2938:21:30",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 6916,
                  "nodeType": "IfStatement",
                  "src": "2934:86:30",
                  "trueBody": {
                    "expression": {
                      "id": 6914,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftHandSide": {
                        "id": 6907,
                        "name": "ratio",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6697,
                        "src": "2961:5:30",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "Assignment",
                      "operator": "=",
                      "rightHandSide": {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 6913,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "components": [
                            {
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "id": 6910,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "id": 6908,
                                "name": "ratio",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 6697,
                                "src": "2970:5:30",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "*",
                              "rightExpression": {
                                "hexValue": "30783730643836396131353664326131623839306262336466363262616633326637",
                                "id": 6909,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "2978:34:30",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_149997214084966997727330242082538205943_by_1",
                                  "typeString": "int_const 1499...(31 digits omitted)...5943"
                                },
                                "value": "0x70d869a156d2a1b890bb3df62baf32f7"
                              },
                              "src": "2970:42:30",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "id": 6911,
                          "isConstant": false,
                          "isInlineArray": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "TupleExpression",
                          "src": "2969:44:30",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">>",
                        "rightExpression": {
                          "hexValue": "313238",
                          "id": 6912,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "3017:3:30",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_128_by_1",
                            "typeString": "int_const 128"
                          },
                          "value": "128"
                        },
                        "src": "2969:51:30",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "src": "2961:59:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 6915,
                    "nodeType": "ExpressionStatement",
                    "src": "2961:59:30"
                  }
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 6921,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "commonType": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "id": 6919,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "id": 6917,
                        "name": "absTick",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6665,
                        "src": "3034:7:30",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "&",
                      "rightExpression": {
                        "hexValue": "307838303030",
                        "id": 6918,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "3044:6:30",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_32768_by_1",
                          "typeString": "int_const 32768"
                        },
                        "value": "0x8000"
                      },
                      "src": "3034:16:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "!=",
                    "rightExpression": {
                      "hexValue": "30",
                      "id": 6920,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "3054:1:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "3034:21:30",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 6931,
                  "nodeType": "IfStatement",
                  "src": "3030:86:30",
                  "trueBody": {
                    "expression": {
                      "id": 6929,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftHandSide": {
                        "id": 6922,
                        "name": "ratio",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6697,
                        "src": "3057:5:30",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "Assignment",
                      "operator": "=",
                      "rightHandSide": {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 6928,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "components": [
                            {
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "id": 6925,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "id": 6923,
                                "name": "ratio",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 6697,
                                "src": "3066:5:30",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "*",
                              "rightExpression": {
                                "hexValue": "30783331626531333566393764303866643938313233313530353534326663666136",
                                "id": 6924,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "3074:34:30",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_66119101136024775622716233608466517926_by_1",
                                  "typeString": "int_const 6611...(30 digits omitted)...7926"
                                },
                                "value": "0x31be135f97d08fd981231505542fcfa6"
                              },
                              "src": "3066:42:30",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "id": 6926,
                          "isConstant": false,
                          "isInlineArray": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "TupleExpression",
                          "src": "3065:44:30",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">>",
                        "rightExpression": {
                          "hexValue": "313238",
                          "id": 6927,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "3113:3:30",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_128_by_1",
                            "typeString": "int_const 128"
                          },
                          "value": "128"
                        },
                        "src": "3065:51:30",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "src": "3057:59:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 6930,
                    "nodeType": "ExpressionStatement",
                    "src": "3057:59:30"
                  }
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 6936,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "commonType": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "id": 6934,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "id": 6932,
                        "name": "absTick",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6665,
                        "src": "3130:7:30",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "&",
                      "rightExpression": {
                        "hexValue": "30783130303030",
                        "id": 6933,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "3140:7:30",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_65536_by_1",
                          "typeString": "int_const 65536"
                        },
                        "value": "0x10000"
                      },
                      "src": "3130:17:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "!=",
                    "rightExpression": {
                      "hexValue": "30",
                      "id": 6935,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "3151:1:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "3130:22:30",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 6946,
                  "nodeType": "IfStatement",
                  "src": "3126:86:30",
                  "trueBody": {
                    "expression": {
                      "id": 6944,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftHandSide": {
                        "id": 6937,
                        "name": "ratio",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6697,
                        "src": "3154:5:30",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "Assignment",
                      "operator": "=",
                      "rightHandSide": {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 6943,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "components": [
                            {
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "id": 6940,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "id": 6938,
                                "name": "ratio",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 6697,
                                "src": "3163:5:30",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "*",
                              "rightExpression": {
                                "hexValue": "307839616135303862356237613834653163363737646535346633653939626339",
                                "id": 6939,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "3171:33:30",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_12847376061809297530290974190478138313_by_1",
                                  "typeString": "int_const 1284...(30 digits omitted)...8313"
                                },
                                "value": "0x9aa508b5b7a84e1c677de54f3e99bc9"
                              },
                              "src": "3163:41:30",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "id": 6941,
                          "isConstant": false,
                          "isInlineArray": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "TupleExpression",
                          "src": "3162:43:30",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">>",
                        "rightExpression": {
                          "hexValue": "313238",
                          "id": 6942,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "3209:3:30",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_128_by_1",
                            "typeString": "int_const 128"
                          },
                          "value": "128"
                        },
                        "src": "3162:50:30",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "src": "3154:58:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 6945,
                    "nodeType": "ExpressionStatement",
                    "src": "3154:58:30"
                  }
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 6951,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "commonType": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "id": 6949,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "id": 6947,
                        "name": "absTick",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6665,
                        "src": "3226:7:30",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "&",
                      "rightExpression": {
                        "hexValue": "30783230303030",
                        "id": 6948,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "3236:7:30",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_131072_by_1",
                          "typeString": "int_const 131072"
                        },
                        "value": "0x20000"
                      },
                      "src": "3226:17:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "!=",
                    "rightExpression": {
                      "hexValue": "30",
                      "id": 6950,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "3247:1:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "3226:22:30",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 6961,
                  "nodeType": "IfStatement",
                  "src": "3222:85:30",
                  "trueBody": {
                    "expression": {
                      "id": 6959,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftHandSide": {
                        "id": 6952,
                        "name": "ratio",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6697,
                        "src": "3250:5:30",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "Assignment",
                      "operator": "=",
                      "rightHandSide": {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 6958,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "components": [
                            {
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "id": 6955,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "id": 6953,
                                "name": "ratio",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 6697,
                                "src": "3259:5:30",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "*",
                              "rightExpression": {
                                "hexValue": "3078356436616638646564623831313936363939633332393232356565363034",
                                "id": 6954,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "3267:32:30",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_485053260817066172746253684029974020_by_1",
                                  "typeString": "int_const 4850...(28 digits omitted)...4020"
                                },
                                "value": "0x5d6af8dedb81196699c329225ee604"
                              },
                              "src": "3259:40:30",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "id": 6956,
                          "isConstant": false,
                          "isInlineArray": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "TupleExpression",
                          "src": "3258:42:30",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">>",
                        "rightExpression": {
                          "hexValue": "313238",
                          "id": 6957,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "3304:3:30",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_128_by_1",
                            "typeString": "int_const 128"
                          },
                          "value": "128"
                        },
                        "src": "3258:49:30",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "src": "3250:57:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 6960,
                    "nodeType": "ExpressionStatement",
                    "src": "3250:57:30"
                  }
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 6966,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "commonType": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "id": 6964,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "id": 6962,
                        "name": "absTick",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6665,
                        "src": "3321:7:30",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "&",
                      "rightExpression": {
                        "hexValue": "30783430303030",
                        "id": 6963,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "3331:7:30",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_262144_by_1",
                          "typeString": "int_const 262144"
                        },
                        "value": "0x40000"
                      },
                      "src": "3321:17:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "!=",
                    "rightExpression": {
                      "hexValue": "30",
                      "id": 6965,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "3342:1:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "3321:22:30",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 6976,
                  "nodeType": "IfStatement",
                  "src": "3317:83:30",
                  "trueBody": {
                    "expression": {
                      "id": 6974,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftHandSide": {
                        "id": 6967,
                        "name": "ratio",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6697,
                        "src": "3345:5:30",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "Assignment",
                      "operator": "=",
                      "rightHandSide": {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 6973,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "components": [
                            {
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "id": 6970,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "id": 6968,
                                "name": "ratio",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 6697,
                                "src": "3354:5:30",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "*",
                              "rightExpression": {
                                "hexValue": "307832323136653538346635666131656139323630343162656466653938",
                                "id": 6969,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "3362:30:30",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_691415978906521570653435304214168_by_1",
                                  "typeString": "int_const 6914...(25 digits omitted)...4168"
                                },
                                "value": "0x2216e584f5fa1ea926041bedfe98"
                              },
                              "src": "3354:38:30",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "id": 6971,
                          "isConstant": false,
                          "isInlineArray": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "TupleExpression",
                          "src": "3353:40:30",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">>",
                        "rightExpression": {
                          "hexValue": "313238",
                          "id": 6972,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "3397:3:30",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_128_by_1",
                            "typeString": "int_const 128"
                          },
                          "value": "128"
                        },
                        "src": "3353:47:30",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "src": "3345:55:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 6975,
                    "nodeType": "ExpressionStatement",
                    "src": "3345:55:30"
                  }
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 6981,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "commonType": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "id": 6979,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "id": 6977,
                        "name": "absTick",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6665,
                        "src": "3414:7:30",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "&",
                      "rightExpression": {
                        "hexValue": "30783830303030",
                        "id": 6978,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "3424:7:30",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_524288_by_1",
                          "typeString": "int_const 524288"
                        },
                        "value": "0x80000"
                      },
                      "src": "3414:17:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "!=",
                    "rightExpression": {
                      "hexValue": "30",
                      "id": 6980,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "3435:1:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "3414:22:30",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 6991,
                  "nodeType": "IfStatement",
                  "src": "3410:78:30",
                  "trueBody": {
                    "expression": {
                      "id": 6989,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftHandSide": {
                        "id": 6982,
                        "name": "ratio",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6697,
                        "src": "3438:5:30",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "Assignment",
                      "operator": "=",
                      "rightHandSide": {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 6988,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "components": [
                            {
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "id": 6985,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "id": 6983,
                                "name": "ratio",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 6697,
                                "src": "3447:5:30",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "*",
                              "rightExpression": {
                                "hexValue": "30783438613137303339316637646334323434346538666132",
                                "id": 6984,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "3455:25:30",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_1404880482679654955896180642_by_1",
                                  "typeString": "int_const 1404880482679654955896180642"
                                },
                                "value": "0x48a170391f7dc42444e8fa2"
                              },
                              "src": "3447:33:30",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "id": 6986,
                          "isConstant": false,
                          "isInlineArray": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "TupleExpression",
                          "src": "3446:35:30",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">>",
                        "rightExpression": {
                          "hexValue": "313238",
                          "id": 6987,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "3485:3:30",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_128_by_1",
                            "typeString": "int_const 128"
                          },
                          "value": "128"
                        },
                        "src": "3446:42:30",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "src": "3438:50:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 6990,
                    "nodeType": "ExpressionStatement",
                    "src": "3438:50:30"
                  }
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_int24",
                      "typeString": "int24"
                    },
                    "id": 6994,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 6992,
                      "name": "tick",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6659,
                      "src": "3503:4:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int24",
                        "typeString": "int24"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">",
                    "rightExpression": {
                      "hexValue": "30",
                      "id": 6993,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "3510:1:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "3503:8:30",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 7005,
                  "nodeType": "IfStatement",
                  "src": "3499:47:30",
                  "trueBody": {
                    "expression": {
                      "id": 7003,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftHandSide": {
                        "id": 6995,
                        "name": "ratio",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6697,
                        "src": "3513:5:30",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "Assignment",
                      "operator": "=",
                      "rightHandSide": {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 7002,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "expression": {
                            "arguments": [
                              {
                                "id": 6998,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "ElementaryTypeNameExpression",
                                "src": "3526:7:30",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_uint256_$",
                                  "typeString": "type(uint256)"
                                },
                                "typeName": {
                                  "id": 6997,
                                  "name": "uint256",
                                  "nodeType": "ElementaryTypeName",
                                  "src": "3526:7:30",
                                  "typeDescriptions": {}
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_type$_t_uint256_$",
                                  "typeString": "type(uint256)"
                                }
                              ],
                              "id": 6996,
                              "name": "type",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4294967269,
                              "src": "3521:4:30",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_metatype_pure$__$returns$__$",
                                "typeString": "function () pure"
                              }
                            },
                            "id": 6999,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "3521:13:30",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_meta_type_t_uint256",
                              "typeString": "type(uint256)"
                            }
                          },
                          "id": 7000,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberName": "max",
                          "nodeType": "MemberAccess",
                          "src": "3521:17:30",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "/",
                        "rightExpression": {
                          "id": 7001,
                          "name": "ratio",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 6697,
                          "src": "3541:5:30",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "3521:25:30",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "src": "3513:33:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 7004,
                    "nodeType": "ExpressionStatement",
                    "src": "3513:33:30"
                  }
                },
                {
                  "expression": {
                    "id": 7027,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 7006,
                      "name": "sqrtPriceX96",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6662,
                      "src": "3856:12:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint160",
                        "typeString": "uint160"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "arguments": [
                        {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 7025,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "components": [
                              {
                                "commonType": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                "id": 7011,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "id": 7009,
                                  "name": "ratio",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 6697,
                                  "src": "3880:5:30",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": ">>",
                                "rightExpression": {
                                  "hexValue": "3332",
                                  "id": 7010,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "3889:2:30",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_32_by_1",
                                    "typeString": "int_const 32"
                                  },
                                  "value": "32"
                                },
                                "src": "3880:11:30",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "id": 7012,
                            "isConstant": false,
                            "isInlineArray": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "TupleExpression",
                            "src": "3879:13:30",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "+",
                          "rightExpression": {
                            "components": [
                              {
                                "condition": {
                                  "commonType": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "id": 7020,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftExpression": {
                                    "commonType": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    },
                                    "id": 7018,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "leftExpression": {
                                      "id": 7013,
                                      "name": "ratio",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 6697,
                                      "src": "3896:5:30",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "nodeType": "BinaryOperation",
                                    "operator": "%",
                                    "rightExpression": {
                                      "components": [
                                        {
                                          "commonType": {
                                            "typeIdentifier": "t_rational_4294967296_by_1",
                                            "typeString": "int_const 4294967296"
                                          },
                                          "id": 7016,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "leftExpression": {
                                            "hexValue": "31",
                                            "id": 7014,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "number",
                                            "lValueRequested": false,
                                            "nodeType": "Literal",
                                            "src": "3905:1:30",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_rational_1_by_1",
                                              "typeString": "int_const 1"
                                            },
                                            "value": "1"
                                          },
                                          "nodeType": "BinaryOperation",
                                          "operator": "<<",
                                          "rightExpression": {
                                            "hexValue": "3332",
                                            "id": 7015,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "number",
                                            "lValueRequested": false,
                                            "nodeType": "Literal",
                                            "src": "3910:2:30",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_rational_32_by_1",
                                              "typeString": "int_const 32"
                                            },
                                            "value": "32"
                                          },
                                          "src": "3905:7:30",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_rational_4294967296_by_1",
                                            "typeString": "int_const 4294967296"
                                          }
                                        }
                                      ],
                                      "id": 7017,
                                      "isConstant": false,
                                      "isInlineArray": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "nodeType": "TupleExpression",
                                      "src": "3904:9:30",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_rational_4294967296_by_1",
                                        "typeString": "int_const 4294967296"
                                      }
                                    },
                                    "src": "3896:17:30",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "nodeType": "BinaryOperation",
                                  "operator": "==",
                                  "rightExpression": {
                                    "hexValue": "30",
                                    "id": 7019,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "number",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "3917:1:30",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_rational_0_by_1",
                                      "typeString": "int_const 0"
                                    },
                                    "value": "0"
                                  },
                                  "src": "3896:22:30",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bool",
                                    "typeString": "bool"
                                  }
                                },
                                "falseExpression": {
                                  "hexValue": "31",
                                  "id": 7022,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "3925:1:30",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_1_by_1",
                                    "typeString": "int_const 1"
                                  },
                                  "value": "1"
                                },
                                "id": 7023,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "Conditional",
                                "src": "3896:30:30",
                                "trueExpression": {
                                  "hexValue": "30",
                                  "id": 7021,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "3921:1:30",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_0_by_1",
                                    "typeString": "int_const 0"
                                  },
                                  "value": "0"
                                },
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint8",
                                  "typeString": "uint8"
                                }
                              }
                            ],
                            "id": 7024,
                            "isConstant": false,
                            "isInlineArray": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "TupleExpression",
                            "src": "3895:32:30",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint8",
                              "typeString": "uint8"
                            }
                          },
                          "src": "3879:48:30",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "id": 7008,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "3871:7:30",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_uint160_$",
                          "typeString": "type(uint160)"
                        },
                        "typeName": {
                          "id": 7007,
                          "name": "uint160",
                          "nodeType": "ElementaryTypeName",
                          "src": "3871:7:30",
                          "typeDescriptions": {}
                        }
                      },
                      "id": 7026,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "3871:57:30",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint160",
                        "typeString": "uint160"
                      }
                    },
                    "src": "3856:72:30",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint160",
                      "typeString": "uint160"
                    }
                  },
                  "id": 7028,
                  "nodeType": "ExpressionStatement",
                  "src": "3856:72:30"
                }
              ]
            },
            "documentation": {
              "id": 6657,
              "nodeType": "StructuredDocumentation",
              "src": "1053:297:30",
              "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": 7030,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getSqrtRatioAtTick",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 6660,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6659,
                  "mutability": "mutable",
                  "name": "tick",
                  "nodeType": "VariableDeclaration",
                  "scope": 7030,
                  "src": "1383:10:30",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_int24",
                    "typeString": "int24"
                  },
                  "typeName": {
                    "id": 6658,
                    "name": "int24",
                    "nodeType": "ElementaryTypeName",
                    "src": "1383:5:30",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int24",
                      "typeString": "int24"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1382:12:30"
            },
            "returnParameters": {
              "id": 6663,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6662,
                  "mutability": "mutable",
                  "name": "sqrtPriceX96",
                  "nodeType": "VariableDeclaration",
                  "scope": 7030,
                  "src": "1418:20:30",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint160",
                    "typeString": "uint160"
                  },
                  "typeName": {
                    "id": 6661,
                    "name": "uint160",
                    "nodeType": "ElementaryTypeName",
                    "src": "1418:7:30",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint160",
                      "typeString": "uint160"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1417:22:30"
            },
            "scope": 7170,
            "src": "1355:2580:30",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 7168,
              "nodeType": "Block",
              "src": "4439:4196:30",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 7045,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "commonType": {
                            "typeIdentifier": "t_uint160",
                            "typeString": "uint160"
                          },
                          "id": 7041,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 7039,
                            "name": "sqrtPriceX96",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 7033,
                            "src": "4556:12:30",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint160",
                              "typeString": "uint160"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": ">=",
                          "rightExpression": {
                            "id": 7040,
                            "name": "MIN_SQRT_RATIO",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6652,
                            "src": "4572:14:30",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint160",
                              "typeString": "uint160"
                            }
                          },
                          "src": "4556:30:30",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "&&",
                        "rightExpression": {
                          "commonType": {
                            "typeIdentifier": "t_uint160",
                            "typeString": "uint160"
                          },
                          "id": 7044,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 7042,
                            "name": "sqrtPriceX96",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 7033,
                            "src": "4590:12:30",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint160",
                              "typeString": "uint160"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "<",
                          "rightExpression": {
                            "id": 7043,
                            "name": "MAX_SQRT_RATIO",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6656,
                            "src": "4605:14:30",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint160",
                              "typeString": "uint160"
                            }
                          },
                          "src": "4590:29:30",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "4556:63:30",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "hexValue": "52",
                        "id": 7046,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "4621:3:30",
                        "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": 7038,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        4294967278,
                        4294967278
                      ],
                      "referencedDeclaration": 4294967278,
                      "src": "4548:7:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 7047,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4548:77:30",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 7048,
                  "nodeType": "ExpressionStatement",
                  "src": "4548:77:30"
                },
                {
                  "assignments": [
                    7050
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 7050,
                      "mutability": "mutable",
                      "name": "ratio",
                      "nodeType": "VariableDeclaration",
                      "scope": 7168,
                      "src": "4635:13:30",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 7049,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "4635:7:30",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 7057,
                  "initialValue": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 7056,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "arguments": [
                        {
                          "id": 7053,
                          "name": "sqrtPriceX96",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 7033,
                          "src": "4659:12:30",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint160",
                            "typeString": "uint160"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint160",
                            "typeString": "uint160"
                          }
                        ],
                        "id": 7052,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "4651:7:30",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_uint256_$",
                          "typeString": "type(uint256)"
                        },
                        "typeName": {
                          "id": 7051,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "4651:7:30",
                          "typeDescriptions": {}
                        }
                      },
                      "id": 7054,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "4651:21:30",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<<",
                    "rightExpression": {
                      "hexValue": "3332",
                      "id": 7055,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "4676:2:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_32_by_1",
                        "typeString": "int_const 32"
                      },
                      "value": "32"
                    },
                    "src": "4651:27:30",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "4635:43:30"
                },
                {
                  "assignments": [
                    7059
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 7059,
                      "mutability": "mutable",
                      "name": "r",
                      "nodeType": "VariableDeclaration",
                      "scope": 7168,
                      "src": "4689:9:30",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 7058,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "4689:7:30",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 7061,
                  "initialValue": {
                    "id": 7060,
                    "name": "ratio",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 7050,
                    "src": "4701:5:30",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "4689:17:30"
                },
                {
                  "assignments": [
                    7063
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 7063,
                      "mutability": "mutable",
                      "name": "msb",
                      "nodeType": "VariableDeclaration",
                      "scope": 7168,
                      "src": "4716:11:30",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 7062,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "4716:7:30",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 7065,
                  "initialValue": {
                    "hexValue": "30",
                    "id": 7064,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "number",
                    "lValueRequested": false,
                    "nodeType": "Literal",
                    "src": "4730:1:30",
                    "typeDescriptions": {
                      "typeIdentifier": "t_rational_0_by_1",
                      "typeString": "int_const 0"
                    },
                    "value": "0"
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "4716:15:30"
                },
                {
                  "AST": {
                    "nodeType": "YulBlock",
                    "src": "4751:139:30",
                    "statements": [
                      {
                        "nodeType": "YulVariableDeclaration",
                        "src": "4765:58:30",
                        "value": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "4778:1:30",
                              "type": "",
                              "value": "7"
                            },
                            {
                              "arguments": [
                                {
                                  "name": "r",
                                  "nodeType": "YulIdentifier",
                                  "src": "4784:1:30"
                                },
                                {
                                  "kind": "number",
                                  "nodeType": "YulLiteral",
                                  "src": "4787:34:30",
                                  "type": "",
                                  "value": "0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
                                }
                              ],
                              "functionName": {
                                "name": "gt",
                                "nodeType": "YulIdentifier",
                                "src": "4781:2:30"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "4781:41:30"
                            }
                          ],
                          "functionName": {
                            "name": "shl",
                            "nodeType": "YulIdentifier",
                            "src": "4774:3:30"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "4774:49:30"
                        },
                        "variables": [
                          {
                            "name": "f",
                            "nodeType": "YulTypedName",
                            "src": "4769:1:30",
                            "type": ""
                          }
                        ]
                      },
                      {
                        "nodeType": "YulAssignment",
                        "src": "4836:17:30",
                        "value": {
                          "arguments": [
                            {
                              "name": "msb",
                              "nodeType": "YulIdentifier",
                              "src": "4846:3:30"
                            },
                            {
                              "name": "f",
                              "nodeType": "YulIdentifier",
                              "src": "4851:1:30"
                            }
                          ],
                          "functionName": {
                            "name": "or",
                            "nodeType": "YulIdentifier",
                            "src": "4843:2:30"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "4843:10:30"
                        },
                        "variableNames": [
                          {
                            "name": "msb",
                            "nodeType": "YulIdentifier",
                            "src": "4836:3:30"
                          }
                        ]
                      },
                      {
                        "nodeType": "YulAssignment",
                        "src": "4866:14:30",
                        "value": {
                          "arguments": [
                            {
                              "name": "f",
                              "nodeType": "YulIdentifier",
                              "src": "4875:1:30"
                            },
                            {
                              "name": "r",
                              "nodeType": "YulIdentifier",
                              "src": "4878:1:30"
                            }
                          ],
                          "functionName": {
                            "name": "shr",
                            "nodeType": "YulIdentifier",
                            "src": "4871:3:30"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "4871:9:30"
                        },
                        "variableNames": [
                          {
                            "name": "r",
                            "nodeType": "YulIdentifier",
                            "src": "4866:1:30"
                          }
                        ]
                      }
                    ]
                  },
                  "evmVersion": "istanbul",
                  "externalReferences": [
                    {
                      "declaration": 7063,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "4836:3:30",
                      "valueSize": 1
                    },
                    {
                      "declaration": 7063,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "4846:3:30",
                      "valueSize": 1
                    },
                    {
                      "declaration": 7059,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "4784:1:30",
                      "valueSize": 1
                    },
                    {
                      "declaration": 7059,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "4866:1:30",
                      "valueSize": 1
                    },
                    {
                      "declaration": 7059,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "4878:1:30",
                      "valueSize": 1
                    }
                  ],
                  "id": 7066,
                  "nodeType": "InlineAssembly",
                  "src": "4742:148:30"
                },
                {
                  "AST": {
                    "nodeType": "YulBlock",
                    "src": "4908:123:30",
                    "statements": [
                      {
                        "nodeType": "YulVariableDeclaration",
                        "src": "4922:42:30",
                        "value": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "4935:1:30",
                              "type": "",
                              "value": "6"
                            },
                            {
                              "arguments": [
                                {
                                  "name": "r",
                                  "nodeType": "YulIdentifier",
                                  "src": "4941:1:30"
                                },
                                {
                                  "kind": "number",
                                  "nodeType": "YulLiteral",
                                  "src": "4944:18:30",
                                  "type": "",
                                  "value": "0xFFFFFFFFFFFFFFFF"
                                }
                              ],
                              "functionName": {
                                "name": "gt",
                                "nodeType": "YulIdentifier",
                                "src": "4938:2:30"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "4938:25:30"
                            }
                          ],
                          "functionName": {
                            "name": "shl",
                            "nodeType": "YulIdentifier",
                            "src": "4931:3:30"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "4931:33:30"
                        },
                        "variables": [
                          {
                            "name": "f",
                            "nodeType": "YulTypedName",
                            "src": "4926:1:30",
                            "type": ""
                          }
                        ]
                      },
                      {
                        "nodeType": "YulAssignment",
                        "src": "4977:17:30",
                        "value": {
                          "arguments": [
                            {
                              "name": "msb",
                              "nodeType": "YulIdentifier",
                              "src": "4987:3:30"
                            },
                            {
                              "name": "f",
                              "nodeType": "YulIdentifier",
                              "src": "4992:1:30"
                            }
                          ],
                          "functionName": {
                            "name": "or",
                            "nodeType": "YulIdentifier",
                            "src": "4984:2:30"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "4984:10:30"
                        },
                        "variableNames": [
                          {
                            "name": "msb",
                            "nodeType": "YulIdentifier",
                            "src": "4977:3:30"
                          }
                        ]
                      },
                      {
                        "nodeType": "YulAssignment",
                        "src": "5007:14:30",
                        "value": {
                          "arguments": [
                            {
                              "name": "f",
                              "nodeType": "YulIdentifier",
                              "src": "5016:1:30"
                            },
                            {
                              "name": "r",
                              "nodeType": "YulIdentifier",
                              "src": "5019:1:30"
                            }
                          ],
                          "functionName": {
                            "name": "shr",
                            "nodeType": "YulIdentifier",
                            "src": "5012:3:30"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "5012:9:30"
                        },
                        "variableNames": [
                          {
                            "name": "r",
                            "nodeType": "YulIdentifier",
                            "src": "5007:1:30"
                          }
                        ]
                      }
                    ]
                  },
                  "evmVersion": "istanbul",
                  "externalReferences": [
                    {
                      "declaration": 7063,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "4977:3:30",
                      "valueSize": 1
                    },
                    {
                      "declaration": 7063,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "4987:3:30",
                      "valueSize": 1
                    },
                    {
                      "declaration": 7059,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "4941:1:30",
                      "valueSize": 1
                    },
                    {
                      "declaration": 7059,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "5007:1:30",
                      "valueSize": 1
                    },
                    {
                      "declaration": 7059,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "5019:1:30",
                      "valueSize": 1
                    }
                  ],
                  "id": 7067,
                  "nodeType": "InlineAssembly",
                  "src": "4899:132:30"
                },
                {
                  "AST": {
                    "nodeType": "YulBlock",
                    "src": "5049:115:30",
                    "statements": [
                      {
                        "nodeType": "YulVariableDeclaration",
                        "src": "5063:34:30",
                        "value": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "5076:1:30",
                              "type": "",
                              "value": "5"
                            },
                            {
                              "arguments": [
                                {
                                  "name": "r",
                                  "nodeType": "YulIdentifier",
                                  "src": "5082:1:30"
                                },
                                {
                                  "kind": "number",
                                  "nodeType": "YulLiteral",
                                  "src": "5085:10:30",
                                  "type": "",
                                  "value": "0xFFFFFFFF"
                                }
                              ],
                              "functionName": {
                                "name": "gt",
                                "nodeType": "YulIdentifier",
                                "src": "5079:2:30"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "5079:17:30"
                            }
                          ],
                          "functionName": {
                            "name": "shl",
                            "nodeType": "YulIdentifier",
                            "src": "5072:3:30"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "5072:25:30"
                        },
                        "variables": [
                          {
                            "name": "f",
                            "nodeType": "YulTypedName",
                            "src": "5067:1:30",
                            "type": ""
                          }
                        ]
                      },
                      {
                        "nodeType": "YulAssignment",
                        "src": "5110:17:30",
                        "value": {
                          "arguments": [
                            {
                              "name": "msb",
                              "nodeType": "YulIdentifier",
                              "src": "5120:3:30"
                            },
                            {
                              "name": "f",
                              "nodeType": "YulIdentifier",
                              "src": "5125:1:30"
                            }
                          ],
                          "functionName": {
                            "name": "or",
                            "nodeType": "YulIdentifier",
                            "src": "5117:2:30"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "5117:10:30"
                        },
                        "variableNames": [
                          {
                            "name": "msb",
                            "nodeType": "YulIdentifier",
                            "src": "5110:3:30"
                          }
                        ]
                      },
                      {
                        "nodeType": "YulAssignment",
                        "src": "5140:14:30",
                        "value": {
                          "arguments": [
                            {
                              "name": "f",
                              "nodeType": "YulIdentifier",
                              "src": "5149:1:30"
                            },
                            {
                              "name": "r",
                              "nodeType": "YulIdentifier",
                              "src": "5152:1:30"
                            }
                          ],
                          "functionName": {
                            "name": "shr",
                            "nodeType": "YulIdentifier",
                            "src": "5145:3:30"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "5145:9:30"
                        },
                        "variableNames": [
                          {
                            "name": "r",
                            "nodeType": "YulIdentifier",
                            "src": "5140:1:30"
                          }
                        ]
                      }
                    ]
                  },
                  "evmVersion": "istanbul",
                  "externalReferences": [
                    {
                      "declaration": 7063,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "5110:3:30",
                      "valueSize": 1
                    },
                    {
                      "declaration": 7063,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "5120:3:30",
                      "valueSize": 1
                    },
                    {
                      "declaration": 7059,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "5082:1:30",
                      "valueSize": 1
                    },
                    {
                      "declaration": 7059,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "5140:1:30",
                      "valueSize": 1
                    },
                    {
                      "declaration": 7059,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "5152:1:30",
                      "valueSize": 1
                    }
                  ],
                  "id": 7068,
                  "nodeType": "InlineAssembly",
                  "src": "5040:124:30"
                },
                {
                  "AST": {
                    "nodeType": "YulBlock",
                    "src": "5182:111:30",
                    "statements": [
                      {
                        "nodeType": "YulVariableDeclaration",
                        "src": "5196:30:30",
                        "value": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "5209:1:30",
                              "type": "",
                              "value": "4"
                            },
                            {
                              "arguments": [
                                {
                                  "name": "r",
                                  "nodeType": "YulIdentifier",
                                  "src": "5215:1:30"
                                },
                                {
                                  "kind": "number",
                                  "nodeType": "YulLiteral",
                                  "src": "5218:6:30",
                                  "type": "",
                                  "value": "0xFFFF"
                                }
                              ],
                              "functionName": {
                                "name": "gt",
                                "nodeType": "YulIdentifier",
                                "src": "5212:2:30"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "5212:13:30"
                            }
                          ],
                          "functionName": {
                            "name": "shl",
                            "nodeType": "YulIdentifier",
                            "src": "5205:3:30"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "5205:21:30"
                        },
                        "variables": [
                          {
                            "name": "f",
                            "nodeType": "YulTypedName",
                            "src": "5200:1:30",
                            "type": ""
                          }
                        ]
                      },
                      {
                        "nodeType": "YulAssignment",
                        "src": "5239:17:30",
                        "value": {
                          "arguments": [
                            {
                              "name": "msb",
                              "nodeType": "YulIdentifier",
                              "src": "5249:3:30"
                            },
                            {
                              "name": "f",
                              "nodeType": "YulIdentifier",
                              "src": "5254:1:30"
                            }
                          ],
                          "functionName": {
                            "name": "or",
                            "nodeType": "YulIdentifier",
                            "src": "5246:2:30"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "5246:10:30"
                        },
                        "variableNames": [
                          {
                            "name": "msb",
                            "nodeType": "YulIdentifier",
                            "src": "5239:3:30"
                          }
                        ]
                      },
                      {
                        "nodeType": "YulAssignment",
                        "src": "5269:14:30",
                        "value": {
                          "arguments": [
                            {
                              "name": "f",
                              "nodeType": "YulIdentifier",
                              "src": "5278:1:30"
                            },
                            {
                              "name": "r",
                              "nodeType": "YulIdentifier",
                              "src": "5281:1:30"
                            }
                          ],
                          "functionName": {
                            "name": "shr",
                            "nodeType": "YulIdentifier",
                            "src": "5274:3:30"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "5274:9:30"
                        },
                        "variableNames": [
                          {
                            "name": "r",
                            "nodeType": "YulIdentifier",
                            "src": "5269:1:30"
                          }
                        ]
                      }
                    ]
                  },
                  "evmVersion": "istanbul",
                  "externalReferences": [
                    {
                      "declaration": 7063,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "5239:3:30",
                      "valueSize": 1
                    },
                    {
                      "declaration": 7063,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "5249:3:30",
                      "valueSize": 1
                    },
                    {
                      "declaration": 7059,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "5215:1:30",
                      "valueSize": 1
                    },
                    {
                      "declaration": 7059,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "5269:1:30",
                      "valueSize": 1
                    },
                    {
                      "declaration": 7059,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "5281:1:30",
                      "valueSize": 1
                    }
                  ],
                  "id": 7069,
                  "nodeType": "InlineAssembly",
                  "src": "5173:120:30"
                },
                {
                  "AST": {
                    "nodeType": "YulBlock",
                    "src": "5311:109:30",
                    "statements": [
                      {
                        "nodeType": "YulVariableDeclaration",
                        "src": "5325:28:30",
                        "value": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "5338:1:30",
                              "type": "",
                              "value": "3"
                            },
                            {
                              "arguments": [
                                {
                                  "name": "r",
                                  "nodeType": "YulIdentifier",
                                  "src": "5344:1:30"
                                },
                                {
                                  "kind": "number",
                                  "nodeType": "YulLiteral",
                                  "src": "5347:4:30",
                                  "type": "",
                                  "value": "0xFF"
                                }
                              ],
                              "functionName": {
                                "name": "gt",
                                "nodeType": "YulIdentifier",
                                "src": "5341:2:30"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "5341:11:30"
                            }
                          ],
                          "functionName": {
                            "name": "shl",
                            "nodeType": "YulIdentifier",
                            "src": "5334:3:30"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "5334:19:30"
                        },
                        "variables": [
                          {
                            "name": "f",
                            "nodeType": "YulTypedName",
                            "src": "5329:1:30",
                            "type": ""
                          }
                        ]
                      },
                      {
                        "nodeType": "YulAssignment",
                        "src": "5366:17:30",
                        "value": {
                          "arguments": [
                            {
                              "name": "msb",
                              "nodeType": "YulIdentifier",
                              "src": "5376:3:30"
                            },
                            {
                              "name": "f",
                              "nodeType": "YulIdentifier",
                              "src": "5381:1:30"
                            }
                          ],
                          "functionName": {
                            "name": "or",
                            "nodeType": "YulIdentifier",
                            "src": "5373:2:30"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "5373:10:30"
                        },
                        "variableNames": [
                          {
                            "name": "msb",
                            "nodeType": "YulIdentifier",
                            "src": "5366:3:30"
                          }
                        ]
                      },
                      {
                        "nodeType": "YulAssignment",
                        "src": "5396:14:30",
                        "value": {
                          "arguments": [
                            {
                              "name": "f",
                              "nodeType": "YulIdentifier",
                              "src": "5405:1:30"
                            },
                            {
                              "name": "r",
                              "nodeType": "YulIdentifier",
                              "src": "5408:1:30"
                            }
                          ],
                          "functionName": {
                            "name": "shr",
                            "nodeType": "YulIdentifier",
                            "src": "5401:3:30"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "5401:9:30"
                        },
                        "variableNames": [
                          {
                            "name": "r",
                            "nodeType": "YulIdentifier",
                            "src": "5396:1:30"
                          }
                        ]
                      }
                    ]
                  },
                  "evmVersion": "istanbul",
                  "externalReferences": [
                    {
                      "declaration": 7063,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "5366:3:30",
                      "valueSize": 1
                    },
                    {
                      "declaration": 7063,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "5376:3:30",
                      "valueSize": 1
                    },
                    {
                      "declaration": 7059,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "5344:1:30",
                      "valueSize": 1
                    },
                    {
                      "declaration": 7059,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "5396:1:30",
                      "valueSize": 1
                    },
                    {
                      "declaration": 7059,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "5408:1:30",
                      "valueSize": 1
                    }
                  ],
                  "id": 7070,
                  "nodeType": "InlineAssembly",
                  "src": "5302:118:30"
                },
                {
                  "AST": {
                    "nodeType": "YulBlock",
                    "src": "5438:108:30",
                    "statements": [
                      {
                        "nodeType": "YulVariableDeclaration",
                        "src": "5452:27:30",
                        "value": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "5465:1:30",
                              "type": "",
                              "value": "2"
                            },
                            {
                              "arguments": [
                                {
                                  "name": "r",
                                  "nodeType": "YulIdentifier",
                                  "src": "5471:1:30"
                                },
                                {
                                  "kind": "number",
                                  "nodeType": "YulLiteral",
                                  "src": "5474:3:30",
                                  "type": "",
                                  "value": "0xF"
                                }
                              ],
                              "functionName": {
                                "name": "gt",
                                "nodeType": "YulIdentifier",
                                "src": "5468:2:30"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "5468:10:30"
                            }
                          ],
                          "functionName": {
                            "name": "shl",
                            "nodeType": "YulIdentifier",
                            "src": "5461:3:30"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "5461:18:30"
                        },
                        "variables": [
                          {
                            "name": "f",
                            "nodeType": "YulTypedName",
                            "src": "5456:1:30",
                            "type": ""
                          }
                        ]
                      },
                      {
                        "nodeType": "YulAssignment",
                        "src": "5492:17:30",
                        "value": {
                          "arguments": [
                            {
                              "name": "msb",
                              "nodeType": "YulIdentifier",
                              "src": "5502:3:30"
                            },
                            {
                              "name": "f",
                              "nodeType": "YulIdentifier",
                              "src": "5507:1:30"
                            }
                          ],
                          "functionName": {
                            "name": "or",
                            "nodeType": "YulIdentifier",
                            "src": "5499:2:30"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "5499:10:30"
                        },
                        "variableNames": [
                          {
                            "name": "msb",
                            "nodeType": "YulIdentifier",
                            "src": "5492:3:30"
                          }
                        ]
                      },
                      {
                        "nodeType": "YulAssignment",
                        "src": "5522:14:30",
                        "value": {
                          "arguments": [
                            {
                              "name": "f",
                              "nodeType": "YulIdentifier",
                              "src": "5531:1:30"
                            },
                            {
                              "name": "r",
                              "nodeType": "YulIdentifier",
                              "src": "5534:1:30"
                            }
                          ],
                          "functionName": {
                            "name": "shr",
                            "nodeType": "YulIdentifier",
                            "src": "5527:3:30"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "5527:9:30"
                        },
                        "variableNames": [
                          {
                            "name": "r",
                            "nodeType": "YulIdentifier",
                            "src": "5522:1:30"
                          }
                        ]
                      }
                    ]
                  },
                  "evmVersion": "istanbul",
                  "externalReferences": [
                    {
                      "declaration": 7063,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "5492:3:30",
                      "valueSize": 1
                    },
                    {
                      "declaration": 7063,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "5502:3:30",
                      "valueSize": 1
                    },
                    {
                      "declaration": 7059,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "5471:1:30",
                      "valueSize": 1
                    },
                    {
                      "declaration": 7059,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "5522:1:30",
                      "valueSize": 1
                    },
                    {
                      "declaration": 7059,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "5534:1:30",
                      "valueSize": 1
                    }
                  ],
                  "id": 7071,
                  "nodeType": "InlineAssembly",
                  "src": "5429:117:30"
                },
                {
                  "AST": {
                    "nodeType": "YulBlock",
                    "src": "5564:108:30",
                    "statements": [
                      {
                        "nodeType": "YulVariableDeclaration",
                        "src": "5578:27:30",
                        "value": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "5591:1:30",
                              "type": "",
                              "value": "1"
                            },
                            {
                              "arguments": [
                                {
                                  "name": "r",
                                  "nodeType": "YulIdentifier",
                                  "src": "5597:1:30"
                                },
                                {
                                  "kind": "number",
                                  "nodeType": "YulLiteral",
                                  "src": "5600:3:30",
                                  "type": "",
                                  "value": "0x3"
                                }
                              ],
                              "functionName": {
                                "name": "gt",
                                "nodeType": "YulIdentifier",
                                "src": "5594:2:30"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "5594:10:30"
                            }
                          ],
                          "functionName": {
                            "name": "shl",
                            "nodeType": "YulIdentifier",
                            "src": "5587:3:30"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "5587:18:30"
                        },
                        "variables": [
                          {
                            "name": "f",
                            "nodeType": "YulTypedName",
                            "src": "5582:1:30",
                            "type": ""
                          }
                        ]
                      },
                      {
                        "nodeType": "YulAssignment",
                        "src": "5618:17:30",
                        "value": {
                          "arguments": [
                            {
                              "name": "msb",
                              "nodeType": "YulIdentifier",
                              "src": "5628:3:30"
                            },
                            {
                              "name": "f",
                              "nodeType": "YulIdentifier",
                              "src": "5633:1:30"
                            }
                          ],
                          "functionName": {
                            "name": "or",
                            "nodeType": "YulIdentifier",
                            "src": "5625:2:30"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "5625:10:30"
                        },
                        "variableNames": [
                          {
                            "name": "msb",
                            "nodeType": "YulIdentifier",
                            "src": "5618:3:30"
                          }
                        ]
                      },
                      {
                        "nodeType": "YulAssignment",
                        "src": "5648:14:30",
                        "value": {
                          "arguments": [
                            {
                              "name": "f",
                              "nodeType": "YulIdentifier",
                              "src": "5657:1:30"
                            },
                            {
                              "name": "r",
                              "nodeType": "YulIdentifier",
                              "src": "5660:1:30"
                            }
                          ],
                          "functionName": {
                            "name": "shr",
                            "nodeType": "YulIdentifier",
                            "src": "5653:3:30"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "5653:9:30"
                        },
                        "variableNames": [
                          {
                            "name": "r",
                            "nodeType": "YulIdentifier",
                            "src": "5648:1:30"
                          }
                        ]
                      }
                    ]
                  },
                  "evmVersion": "istanbul",
                  "externalReferences": [
                    {
                      "declaration": 7063,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "5618:3:30",
                      "valueSize": 1
                    },
                    {
                      "declaration": 7063,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "5628:3:30",
                      "valueSize": 1
                    },
                    {
                      "declaration": 7059,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "5597:1:30",
                      "valueSize": 1
                    },
                    {
                      "declaration": 7059,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "5648:1:30",
                      "valueSize": 1
                    },
                    {
                      "declaration": 7059,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "5660:1:30",
                      "valueSize": 1
                    }
                  ],
                  "id": 7072,
                  "nodeType": "InlineAssembly",
                  "src": "5555:117:30"
                },
                {
                  "AST": {
                    "nodeType": "YulBlock",
                    "src": "5690:73:30",
                    "statements": [
                      {
                        "nodeType": "YulVariableDeclaration",
                        "src": "5704:19:30",
                        "value": {
                          "arguments": [
                            {
                              "name": "r",
                              "nodeType": "YulIdentifier",
                              "src": "5716:1:30"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "5719:3:30",
                              "type": "",
                              "value": "0x1"
                            }
                          ],
                          "functionName": {
                            "name": "gt",
                            "nodeType": "YulIdentifier",
                            "src": "5713:2:30"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "5713:10:30"
                        },
                        "variables": [
                          {
                            "name": "f",
                            "nodeType": "YulTypedName",
                            "src": "5708:1:30",
                            "type": ""
                          }
                        ]
                      },
                      {
                        "nodeType": "YulAssignment",
                        "src": "5736:17:30",
                        "value": {
                          "arguments": [
                            {
                              "name": "msb",
                              "nodeType": "YulIdentifier",
                              "src": "5746:3:30"
                            },
                            {
                              "name": "f",
                              "nodeType": "YulIdentifier",
                              "src": "5751:1:30"
                            }
                          ],
                          "functionName": {
                            "name": "or",
                            "nodeType": "YulIdentifier",
                            "src": "5743:2:30"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "5743:10:30"
                        },
                        "variableNames": [
                          {
                            "name": "msb",
                            "nodeType": "YulIdentifier",
                            "src": "5736:3:30"
                          }
                        ]
                      }
                    ]
                  },
                  "evmVersion": "istanbul",
                  "externalReferences": [
                    {
                      "declaration": 7063,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "5736:3:30",
                      "valueSize": 1
                    },
                    {
                      "declaration": 7063,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "5746:3:30",
                      "valueSize": 1
                    },
                    {
                      "declaration": 7059,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "5716:1:30",
                      "valueSize": 1
                    }
                  ],
                  "id": 7073,
                  "nodeType": "InlineAssembly",
                  "src": "5681:82:30"
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 7076,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 7074,
                      "name": "msb",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7063,
                      "src": "5777:3:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">=",
                    "rightExpression": {
                      "hexValue": "313238",
                      "id": 7075,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "5784:3:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_128_by_1",
                        "typeString": "int_const 128"
                      },
                      "value": "128"
                    },
                    "src": "5777:10:30",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "expression": {
                      "id": 7093,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftHandSide": {
                        "id": 7086,
                        "name": "r",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7059,
                        "src": "5828:1:30",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "Assignment",
                      "operator": "=",
                      "rightHandSide": {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 7092,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "id": 7087,
                          "name": "ratio",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 7050,
                          "src": "5832:5:30",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "<<",
                        "rightExpression": {
                          "components": [
                            {
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "id": 7090,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "hexValue": "313237",
                                "id": 7088,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "5842:3:30",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_127_by_1",
                                  "typeString": "int_const 127"
                                },
                                "value": "127"
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "-",
                              "rightExpression": {
                                "id": 7089,
                                "name": "msb",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 7063,
                                "src": "5848:3:30",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "src": "5842:9:30",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "id": 7091,
                          "isConstant": false,
                          "isInlineArray": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "TupleExpression",
                          "src": "5841:11:30",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "5832:20:30",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "src": "5828:24:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 7094,
                    "nodeType": "ExpressionStatement",
                    "src": "5828:24:30"
                  },
                  "id": 7095,
                  "nodeType": "IfStatement",
                  "src": "5773:79:30",
                  "trueBody": {
                    "expression": {
                      "id": 7084,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftHandSide": {
                        "id": 7077,
                        "name": "r",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7059,
                        "src": "5789:1:30",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "Assignment",
                      "operator": "=",
                      "rightHandSide": {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 7083,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "id": 7078,
                          "name": "ratio",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 7050,
                          "src": "5793:5:30",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">>",
                        "rightExpression": {
                          "components": [
                            {
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "id": 7081,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "id": 7079,
                                "name": "msb",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 7063,
                                "src": "5803:3:30",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "-",
                              "rightExpression": {
                                "hexValue": "313237",
                                "id": 7080,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "5809:3:30",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_127_by_1",
                                  "typeString": "int_const 127"
                                },
                                "value": "127"
                              },
                              "src": "5803:9:30",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "id": 7082,
                          "isConstant": false,
                          "isInlineArray": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "TupleExpression",
                          "src": "5802:11:30",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "5793:20:30",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "src": "5789:24:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 7085,
                    "nodeType": "ExpressionStatement",
                    "src": "5789:24:30"
                  }
                },
                {
                  "assignments": [
                    7097
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 7097,
                      "mutability": "mutable",
                      "name": "log_2",
                      "nodeType": "VariableDeclaration",
                      "scope": 7168,
                      "src": "5863:12:30",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int256",
                        "typeString": "int256"
                      },
                      "typeName": {
                        "id": 7096,
                        "name": "int256",
                        "nodeType": "ElementaryTypeName",
                        "src": "5863:6:30",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 7107,
                  "initialValue": {
                    "commonType": {
                      "typeIdentifier": "t_int256",
                      "typeString": "int256"
                    },
                    "id": 7106,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "components": [
                        {
                          "commonType": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          },
                          "id": 7103,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "arguments": [
                              {
                                "id": 7100,
                                "name": "msb",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 7063,
                                "src": "5886:3:30",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "id": 7099,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "5879:6:30",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_int256_$",
                                "typeString": "type(int256)"
                              },
                              "typeName": {
                                "id": 7098,
                                "name": "int256",
                                "nodeType": "ElementaryTypeName",
                                "src": "5879:6:30",
                                "typeDescriptions": {}
                              }
                            },
                            "id": 7101,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "5879:11:30",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_int256",
                              "typeString": "int256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "-",
                          "rightExpression": {
                            "hexValue": "313238",
                            "id": 7102,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "5893:3:30",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_128_by_1",
                              "typeString": "int_const 128"
                            },
                            "value": "128"
                          },
                          "src": "5879:17:30",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          }
                        }
                      ],
                      "id": 7104,
                      "isConstant": false,
                      "isInlineArray": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "TupleExpression",
                      "src": "5878:19:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int256",
                        "typeString": "int256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<<",
                    "rightExpression": {
                      "hexValue": "3634",
                      "id": 7105,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "5901:2:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_64_by_1",
                        "typeString": "int_const 64"
                      },
                      "value": "64"
                    },
                    "src": "5878:25:30",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int256",
                      "typeString": "int256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "5863:40:30"
                },
                {
                  "AST": {
                    "nodeType": "YulBlock",
                    "src": "5923:151:30",
                    "statements": [
                      {
                        "nodeType": "YulAssignment",
                        "src": "5937:24:30",
                        "value": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "5946:3:30",
                              "type": "",
                              "value": "127"
                            },
                            {
                              "arguments": [
                                {
                                  "name": "r",
                                  "nodeType": "YulIdentifier",
                                  "src": "5955:1:30"
                                },
                                {
                                  "name": "r",
                                  "nodeType": "YulIdentifier",
                                  "src": "5958:1:30"
                                }
                              ],
                              "functionName": {
                                "name": "mul",
                                "nodeType": "YulIdentifier",
                                "src": "5951:3:30"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "5951:9:30"
                            }
                          ],
                          "functionName": {
                            "name": "shr",
                            "nodeType": "YulIdentifier",
                            "src": "5942:3:30"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "5942:19:30"
                        },
                        "variableNames": [
                          {
                            "name": "r",
                            "nodeType": "YulIdentifier",
                            "src": "5937:1:30"
                          }
                        ]
                      },
                      {
                        "nodeType": "YulVariableDeclaration",
                        "src": "5974:20:30",
                        "value": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "5987:3:30",
                              "type": "",
                              "value": "128"
                            },
                            {
                              "name": "r",
                              "nodeType": "YulIdentifier",
                              "src": "5992:1:30"
                            }
                          ],
                          "functionName": {
                            "name": "shr",
                            "nodeType": "YulIdentifier",
                            "src": "5983:3:30"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "5983:11:30"
                        },
                        "variables": [
                          {
                            "name": "f",
                            "nodeType": "YulTypedName",
                            "src": "5978:1:30",
                            "type": ""
                          }
                        ]
                      },
                      {
                        "nodeType": "YulAssignment",
                        "src": "6007:30:30",
                        "value": {
                          "arguments": [
                            {
                              "name": "log_2",
                              "nodeType": "YulIdentifier",
                              "src": "6019:5:30"
                            },
                            {
                              "arguments": [
                                {
                                  "kind": "number",
                                  "nodeType": "YulLiteral",
                                  "src": "6030:2:30",
                                  "type": "",
                                  "value": "63"
                                },
                                {
                                  "name": "f",
                                  "nodeType": "YulIdentifier",
                                  "src": "6034:1:30"
                                }
                              ],
                              "functionName": {
                                "name": "shl",
                                "nodeType": "YulIdentifier",
                                "src": "6026:3:30"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "6026:10:30"
                            }
                          ],
                          "functionName": {
                            "name": "or",
                            "nodeType": "YulIdentifier",
                            "src": "6016:2:30"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "6016:21:30"
                        },
                        "variableNames": [
                          {
                            "name": "log_2",
                            "nodeType": "YulIdentifier",
                            "src": "6007:5:30"
                          }
                        ]
                      },
                      {
                        "nodeType": "YulAssignment",
                        "src": "6050:14:30",
                        "value": {
                          "arguments": [
                            {
                              "name": "f",
                              "nodeType": "YulIdentifier",
                              "src": "6059:1:30"
                            },
                            {
                              "name": "r",
                              "nodeType": "YulIdentifier",
                              "src": "6062:1:30"
                            }
                          ],
                          "functionName": {
                            "name": "shr",
                            "nodeType": "YulIdentifier",
                            "src": "6055:3:30"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "6055:9:30"
                        },
                        "variableNames": [
                          {
                            "name": "r",
                            "nodeType": "YulIdentifier",
                            "src": "6050:1:30"
                          }
                        ]
                      }
                    ]
                  },
                  "evmVersion": "istanbul",
                  "externalReferences": [
                    {
                      "declaration": 7097,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "6007:5:30",
                      "valueSize": 1
                    },
                    {
                      "declaration": 7097,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "6019:5:30",
                      "valueSize": 1
                    },
                    {
                      "declaration": 7059,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "5937:1:30",
                      "valueSize": 1
                    },
                    {
                      "declaration": 7059,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "5955:1:30",
                      "valueSize": 1
                    },
                    {
                      "declaration": 7059,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "5958:1:30",
                      "valueSize": 1
                    },
                    {
                      "declaration": 7059,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "5992:1:30",
                      "valueSize": 1
                    },
                    {
                      "declaration": 7059,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "6050:1:30",
                      "valueSize": 1
                    },
                    {
                      "declaration": 7059,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "6062:1:30",
                      "valueSize": 1
                    }
                  ],
                  "id": 7108,
                  "nodeType": "InlineAssembly",
                  "src": "5914:160:30"
                },
                {
                  "AST": {
                    "nodeType": "YulBlock",
                    "src": "6092:151:30",
                    "statements": [
                      {
                        "nodeType": "YulAssignment",
                        "src": "6106:24:30",
                        "value": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "6115:3:30",
                              "type": "",
                              "value": "127"
                            },
                            {
                              "arguments": [
                                {
                                  "name": "r",
                                  "nodeType": "YulIdentifier",
                                  "src": "6124:1:30"
                                },
                                {
                                  "name": "r",
                                  "nodeType": "YulIdentifier",
                                  "src": "6127:1:30"
                                }
                              ],
                              "functionName": {
                                "name": "mul",
                                "nodeType": "YulIdentifier",
                                "src": "6120:3:30"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "6120:9:30"
                            }
                          ],
                          "functionName": {
                            "name": "shr",
                            "nodeType": "YulIdentifier",
                            "src": "6111:3:30"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "6111:19:30"
                        },
                        "variableNames": [
                          {
                            "name": "r",
                            "nodeType": "YulIdentifier",
                            "src": "6106:1:30"
                          }
                        ]
                      },
                      {
                        "nodeType": "YulVariableDeclaration",
                        "src": "6143:20:30",
                        "value": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "6156:3:30",
                              "type": "",
                              "value": "128"
                            },
                            {
                              "name": "r",
                              "nodeType": "YulIdentifier",
                              "src": "6161:1:30"
                            }
                          ],
                          "functionName": {
                            "name": "shr",
                            "nodeType": "YulIdentifier",
                            "src": "6152:3:30"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "6152:11:30"
                        },
                        "variables": [
                          {
                            "name": "f",
                            "nodeType": "YulTypedName",
                            "src": "6147:1:30",
                            "type": ""
                          }
                        ]
                      },
                      {
                        "nodeType": "YulAssignment",
                        "src": "6176:30:30",
                        "value": {
                          "arguments": [
                            {
                              "name": "log_2",
                              "nodeType": "YulIdentifier",
                              "src": "6188:5:30"
                            },
                            {
                              "arguments": [
                                {
                                  "kind": "number",
                                  "nodeType": "YulLiteral",
                                  "src": "6199:2:30",
                                  "type": "",
                                  "value": "62"
                                },
                                {
                                  "name": "f",
                                  "nodeType": "YulIdentifier",
                                  "src": "6203:1:30"
                                }
                              ],
                              "functionName": {
                                "name": "shl",
                                "nodeType": "YulIdentifier",
                                "src": "6195:3:30"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "6195:10:30"
                            }
                          ],
                          "functionName": {
                            "name": "or",
                            "nodeType": "YulIdentifier",
                            "src": "6185:2:30"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "6185:21:30"
                        },
                        "variableNames": [
                          {
                            "name": "log_2",
                            "nodeType": "YulIdentifier",
                            "src": "6176:5:30"
                          }
                        ]
                      },
                      {
                        "nodeType": "YulAssignment",
                        "src": "6219:14:30",
                        "value": {
                          "arguments": [
                            {
                              "name": "f",
                              "nodeType": "YulIdentifier",
                              "src": "6228:1:30"
                            },
                            {
                              "name": "r",
                              "nodeType": "YulIdentifier",
                              "src": "6231:1:30"
                            }
                          ],
                          "functionName": {
                            "name": "shr",
                            "nodeType": "YulIdentifier",
                            "src": "6224:3:30"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "6224:9:30"
                        },
                        "variableNames": [
                          {
                            "name": "r",
                            "nodeType": "YulIdentifier",
                            "src": "6219:1:30"
                          }
                        ]
                      }
                    ]
                  },
                  "evmVersion": "istanbul",
                  "externalReferences": [
                    {
                      "declaration": 7097,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "6176:5:30",
                      "valueSize": 1
                    },
                    {
                      "declaration": 7097,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "6188:5:30",
                      "valueSize": 1
                    },
                    {
                      "declaration": 7059,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "6106:1:30",
                      "valueSize": 1
                    },
                    {
                      "declaration": 7059,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "6124:1:30",
                      "valueSize": 1
                    },
                    {
                      "declaration": 7059,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "6127:1:30",
                      "valueSize": 1
                    },
                    {
                      "declaration": 7059,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "6161:1:30",
                      "valueSize": 1
                    },
                    {
                      "declaration": 7059,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "6219:1:30",
                      "valueSize": 1
                    },
                    {
                      "declaration": 7059,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "6231:1:30",
                      "valueSize": 1
                    }
                  ],
                  "id": 7109,
                  "nodeType": "InlineAssembly",
                  "src": "6083:160:30"
                },
                {
                  "AST": {
                    "nodeType": "YulBlock",
                    "src": "6261:151:30",
                    "statements": [
                      {
                        "nodeType": "YulAssignment",
                        "src": "6275:24:30",
                        "value": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "6284:3:30",
                              "type": "",
                              "value": "127"
                            },
                            {
                              "arguments": [
                                {
                                  "name": "r",
                                  "nodeType": "YulIdentifier",
                                  "src": "6293:1:30"
                                },
                                {
                                  "name": "r",
                                  "nodeType": "YulIdentifier",
                                  "src": "6296:1:30"
                                }
                              ],
                              "functionName": {
                                "name": "mul",
                                "nodeType": "YulIdentifier",
                                "src": "6289:3:30"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "6289:9:30"
                            }
                          ],
                          "functionName": {
                            "name": "shr",
                            "nodeType": "YulIdentifier",
                            "src": "6280:3:30"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "6280:19:30"
                        },
                        "variableNames": [
                          {
                            "name": "r",
                            "nodeType": "YulIdentifier",
                            "src": "6275:1:30"
                          }
                        ]
                      },
                      {
                        "nodeType": "YulVariableDeclaration",
                        "src": "6312:20:30",
                        "value": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "6325:3:30",
                              "type": "",
                              "value": "128"
                            },
                            {
                              "name": "r",
                              "nodeType": "YulIdentifier",
                              "src": "6330:1:30"
                            }
                          ],
                          "functionName": {
                            "name": "shr",
                            "nodeType": "YulIdentifier",
                            "src": "6321:3:30"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "6321:11:30"
                        },
                        "variables": [
                          {
                            "name": "f",
                            "nodeType": "YulTypedName",
                            "src": "6316:1:30",
                            "type": ""
                          }
                        ]
                      },
                      {
                        "nodeType": "YulAssignment",
                        "src": "6345:30:30",
                        "value": {
                          "arguments": [
                            {
                              "name": "log_2",
                              "nodeType": "YulIdentifier",
                              "src": "6357:5:30"
                            },
                            {
                              "arguments": [
                                {
                                  "kind": "number",
                                  "nodeType": "YulLiteral",
                                  "src": "6368:2:30",
                                  "type": "",
                                  "value": "61"
                                },
                                {
                                  "name": "f",
                                  "nodeType": "YulIdentifier",
                                  "src": "6372:1:30"
                                }
                              ],
                              "functionName": {
                                "name": "shl",
                                "nodeType": "YulIdentifier",
                                "src": "6364:3:30"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "6364:10:30"
                            }
                          ],
                          "functionName": {
                            "name": "or",
                            "nodeType": "YulIdentifier",
                            "src": "6354:2:30"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "6354:21:30"
                        },
                        "variableNames": [
                          {
                            "name": "log_2",
                            "nodeType": "YulIdentifier",
                            "src": "6345:5:30"
                          }
                        ]
                      },
                      {
                        "nodeType": "YulAssignment",
                        "src": "6388:14:30",
                        "value": {
                          "arguments": [
                            {
                              "name": "f",
                              "nodeType": "YulIdentifier",
                              "src": "6397:1:30"
                            },
                            {
                              "name": "r",
                              "nodeType": "YulIdentifier",
                              "src": "6400:1:30"
                            }
                          ],
                          "functionName": {
                            "name": "shr",
                            "nodeType": "YulIdentifier",
                            "src": "6393:3:30"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "6393:9:30"
                        },
                        "variableNames": [
                          {
                            "name": "r",
                            "nodeType": "YulIdentifier",
                            "src": "6388:1:30"
                          }
                        ]
                      }
                    ]
                  },
                  "evmVersion": "istanbul",
                  "externalReferences": [
                    {
                      "declaration": 7097,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "6345:5:30",
                      "valueSize": 1
                    },
                    {
                      "declaration": 7097,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "6357:5:30",
                      "valueSize": 1
                    },
                    {
                      "declaration": 7059,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "6275:1:30",
                      "valueSize": 1
                    },
                    {
                      "declaration": 7059,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "6293:1:30",
                      "valueSize": 1
                    },
                    {
                      "declaration": 7059,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "6296:1:30",
                      "valueSize": 1
                    },
                    {
                      "declaration": 7059,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "6330:1:30",
                      "valueSize": 1
                    },
                    {
                      "declaration": 7059,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "6388:1:30",
                      "valueSize": 1
                    },
                    {
                      "declaration": 7059,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "6400:1:30",
                      "valueSize": 1
                    }
                  ],
                  "id": 7110,
                  "nodeType": "InlineAssembly",
                  "src": "6252:160:30"
                },
                {
                  "AST": {
                    "nodeType": "YulBlock",
                    "src": "6430:151:30",
                    "statements": [
                      {
                        "nodeType": "YulAssignment",
                        "src": "6444:24:30",
                        "value": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "6453:3:30",
                              "type": "",
                              "value": "127"
                            },
                            {
                              "arguments": [
                                {
                                  "name": "r",
                                  "nodeType": "YulIdentifier",
                                  "src": "6462:1:30"
                                },
                                {
                                  "name": "r",
                                  "nodeType": "YulIdentifier",
                                  "src": "6465:1:30"
                                }
                              ],
                              "functionName": {
                                "name": "mul",
                                "nodeType": "YulIdentifier",
                                "src": "6458:3:30"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "6458:9:30"
                            }
                          ],
                          "functionName": {
                            "name": "shr",
                            "nodeType": "YulIdentifier",
                            "src": "6449:3:30"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "6449:19:30"
                        },
                        "variableNames": [
                          {
                            "name": "r",
                            "nodeType": "YulIdentifier",
                            "src": "6444:1:30"
                          }
                        ]
                      },
                      {
                        "nodeType": "YulVariableDeclaration",
                        "src": "6481:20:30",
                        "value": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "6494:3:30",
                              "type": "",
                              "value": "128"
                            },
                            {
                              "name": "r",
                              "nodeType": "YulIdentifier",
                              "src": "6499:1:30"
                            }
                          ],
                          "functionName": {
                            "name": "shr",
                            "nodeType": "YulIdentifier",
                            "src": "6490:3:30"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "6490:11:30"
                        },
                        "variables": [
                          {
                            "name": "f",
                            "nodeType": "YulTypedName",
                            "src": "6485:1:30",
                            "type": ""
                          }
                        ]
                      },
                      {
                        "nodeType": "YulAssignment",
                        "src": "6514:30:30",
                        "value": {
                          "arguments": [
                            {
                              "name": "log_2",
                              "nodeType": "YulIdentifier",
                              "src": "6526:5:30"
                            },
                            {
                              "arguments": [
                                {
                                  "kind": "number",
                                  "nodeType": "YulLiteral",
                                  "src": "6537:2:30",
                                  "type": "",
                                  "value": "60"
                                },
                                {
                                  "name": "f",
                                  "nodeType": "YulIdentifier",
                                  "src": "6541:1:30"
                                }
                              ],
                              "functionName": {
                                "name": "shl",
                                "nodeType": "YulIdentifier",
                                "src": "6533:3:30"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "6533:10:30"
                            }
                          ],
                          "functionName": {
                            "name": "or",
                            "nodeType": "YulIdentifier",
                            "src": "6523:2:30"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "6523:21:30"
                        },
                        "variableNames": [
                          {
                            "name": "log_2",
                            "nodeType": "YulIdentifier",
                            "src": "6514:5:30"
                          }
                        ]
                      },
                      {
                        "nodeType": "YulAssignment",
                        "src": "6557:14:30",
                        "value": {
                          "arguments": [
                            {
                              "name": "f",
                              "nodeType": "YulIdentifier",
                              "src": "6566:1:30"
                            },
                            {
                              "name": "r",
                              "nodeType": "YulIdentifier",
                              "src": "6569:1:30"
                            }
                          ],
                          "functionName": {
                            "name": "shr",
                            "nodeType": "YulIdentifier",
                            "src": "6562:3:30"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "6562:9:30"
                        },
                        "variableNames": [
                          {
                            "name": "r",
                            "nodeType": "YulIdentifier",
                            "src": "6557:1:30"
                          }
                        ]
                      }
                    ]
                  },
                  "evmVersion": "istanbul",
                  "externalReferences": [
                    {
                      "declaration": 7097,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "6514:5:30",
                      "valueSize": 1
                    },
                    {
                      "declaration": 7097,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "6526:5:30",
                      "valueSize": 1
                    },
                    {
                      "declaration": 7059,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "6444:1:30",
                      "valueSize": 1
                    },
                    {
                      "declaration": 7059,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "6462:1:30",
                      "valueSize": 1
                    },
                    {
                      "declaration": 7059,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "6465:1:30",
                      "valueSize": 1
                    },
                    {
                      "declaration": 7059,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "6499:1:30",
                      "valueSize": 1
                    },
                    {
                      "declaration": 7059,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "6557:1:30",
                      "valueSize": 1
                    },
                    {
                      "declaration": 7059,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "6569:1:30",
                      "valueSize": 1
                    }
                  ],
                  "id": 7111,
                  "nodeType": "InlineAssembly",
                  "src": "6421:160:30"
                },
                {
                  "AST": {
                    "nodeType": "YulBlock",
                    "src": "6599:151:30",
                    "statements": [
                      {
                        "nodeType": "YulAssignment",
                        "src": "6613:24:30",
                        "value": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "6622:3:30",
                              "type": "",
                              "value": "127"
                            },
                            {
                              "arguments": [
                                {
                                  "name": "r",
                                  "nodeType": "YulIdentifier",
                                  "src": "6631:1:30"
                                },
                                {
                                  "name": "r",
                                  "nodeType": "YulIdentifier",
                                  "src": "6634:1:30"
                                }
                              ],
                              "functionName": {
                                "name": "mul",
                                "nodeType": "YulIdentifier",
                                "src": "6627:3:30"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "6627:9:30"
                            }
                          ],
                          "functionName": {
                            "name": "shr",
                            "nodeType": "YulIdentifier",
                            "src": "6618:3:30"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "6618:19:30"
                        },
                        "variableNames": [
                          {
                            "name": "r",
                            "nodeType": "YulIdentifier",
                            "src": "6613:1:30"
                          }
                        ]
                      },
                      {
                        "nodeType": "YulVariableDeclaration",
                        "src": "6650:20:30",
                        "value": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "6663:3:30",
                              "type": "",
                              "value": "128"
                            },
                            {
                              "name": "r",
                              "nodeType": "YulIdentifier",
                              "src": "6668:1:30"
                            }
                          ],
                          "functionName": {
                            "name": "shr",
                            "nodeType": "YulIdentifier",
                            "src": "6659:3:30"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "6659:11:30"
                        },
                        "variables": [
                          {
                            "name": "f",
                            "nodeType": "YulTypedName",
                            "src": "6654:1:30",
                            "type": ""
                          }
                        ]
                      },
                      {
                        "nodeType": "YulAssignment",
                        "src": "6683:30:30",
                        "value": {
                          "arguments": [
                            {
                              "name": "log_2",
                              "nodeType": "YulIdentifier",
                              "src": "6695:5:30"
                            },
                            {
                              "arguments": [
                                {
                                  "kind": "number",
                                  "nodeType": "YulLiteral",
                                  "src": "6706:2:30",
                                  "type": "",
                                  "value": "59"
                                },
                                {
                                  "name": "f",
                                  "nodeType": "YulIdentifier",
                                  "src": "6710:1:30"
                                }
                              ],
                              "functionName": {
                                "name": "shl",
                                "nodeType": "YulIdentifier",
                                "src": "6702:3:30"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "6702:10:30"
                            }
                          ],
                          "functionName": {
                            "name": "or",
                            "nodeType": "YulIdentifier",
                            "src": "6692:2:30"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "6692:21:30"
                        },
                        "variableNames": [
                          {
                            "name": "log_2",
                            "nodeType": "YulIdentifier",
                            "src": "6683:5:30"
                          }
                        ]
                      },
                      {
                        "nodeType": "YulAssignment",
                        "src": "6726:14:30",
                        "value": {
                          "arguments": [
                            {
                              "name": "f",
                              "nodeType": "YulIdentifier",
                              "src": "6735:1:30"
                            },
                            {
                              "name": "r",
                              "nodeType": "YulIdentifier",
                              "src": "6738:1:30"
                            }
                          ],
                          "functionName": {
                            "name": "shr",
                            "nodeType": "YulIdentifier",
                            "src": "6731:3:30"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "6731:9:30"
                        },
                        "variableNames": [
                          {
                            "name": "r",
                            "nodeType": "YulIdentifier",
                            "src": "6726:1:30"
                          }
                        ]
                      }
                    ]
                  },
                  "evmVersion": "istanbul",
                  "externalReferences": [
                    {
                      "declaration": 7097,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "6683:5:30",
                      "valueSize": 1
                    },
                    {
                      "declaration": 7097,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "6695:5:30",
                      "valueSize": 1
                    },
                    {
                      "declaration": 7059,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "6613:1:30",
                      "valueSize": 1
                    },
                    {
                      "declaration": 7059,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "6631:1:30",
                      "valueSize": 1
                    },
                    {
                      "declaration": 7059,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "6634:1:30",
                      "valueSize": 1
                    },
                    {
                      "declaration": 7059,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "6668:1:30",
                      "valueSize": 1
                    },
                    {
                      "declaration": 7059,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "6726:1:30",
                      "valueSize": 1
                    },
                    {
                      "declaration": 7059,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "6738:1:30",
                      "valueSize": 1
                    }
                  ],
                  "id": 7112,
                  "nodeType": "InlineAssembly",
                  "src": "6590:160:30"
                },
                {
                  "AST": {
                    "nodeType": "YulBlock",
                    "src": "6768:151:30",
                    "statements": [
                      {
                        "nodeType": "YulAssignment",
                        "src": "6782:24:30",
                        "value": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "6791:3:30",
                              "type": "",
                              "value": "127"
                            },
                            {
                              "arguments": [
                                {
                                  "name": "r",
                                  "nodeType": "YulIdentifier",
                                  "src": "6800:1:30"
                                },
                                {
                                  "name": "r",
                                  "nodeType": "YulIdentifier",
                                  "src": "6803:1:30"
                                }
                              ],
                              "functionName": {
                                "name": "mul",
                                "nodeType": "YulIdentifier",
                                "src": "6796:3:30"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "6796:9:30"
                            }
                          ],
                          "functionName": {
                            "name": "shr",
                            "nodeType": "YulIdentifier",
                            "src": "6787:3:30"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "6787:19:30"
                        },
                        "variableNames": [
                          {
                            "name": "r",
                            "nodeType": "YulIdentifier",
                            "src": "6782:1:30"
                          }
                        ]
                      },
                      {
                        "nodeType": "YulVariableDeclaration",
                        "src": "6819:20:30",
                        "value": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "6832:3:30",
                              "type": "",
                              "value": "128"
                            },
                            {
                              "name": "r",
                              "nodeType": "YulIdentifier",
                              "src": "6837:1:30"
                            }
                          ],
                          "functionName": {
                            "name": "shr",
                            "nodeType": "YulIdentifier",
                            "src": "6828:3:30"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "6828:11:30"
                        },
                        "variables": [
                          {
                            "name": "f",
                            "nodeType": "YulTypedName",
                            "src": "6823:1:30",
                            "type": ""
                          }
                        ]
                      },
                      {
                        "nodeType": "YulAssignment",
                        "src": "6852:30:30",
                        "value": {
                          "arguments": [
                            {
                              "name": "log_2",
                              "nodeType": "YulIdentifier",
                              "src": "6864:5:30"
                            },
                            {
                              "arguments": [
                                {
                                  "kind": "number",
                                  "nodeType": "YulLiteral",
                                  "src": "6875:2:30",
                                  "type": "",
                                  "value": "58"
                                },
                                {
                                  "name": "f",
                                  "nodeType": "YulIdentifier",
                                  "src": "6879:1:30"
                                }
                              ],
                              "functionName": {
                                "name": "shl",
                                "nodeType": "YulIdentifier",
                                "src": "6871:3:30"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "6871:10:30"
                            }
                          ],
                          "functionName": {
                            "name": "or",
                            "nodeType": "YulIdentifier",
                            "src": "6861:2:30"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "6861:21:30"
                        },
                        "variableNames": [
                          {
                            "name": "log_2",
                            "nodeType": "YulIdentifier",
                            "src": "6852:5:30"
                          }
                        ]
                      },
                      {
                        "nodeType": "YulAssignment",
                        "src": "6895:14:30",
                        "value": {
                          "arguments": [
                            {
                              "name": "f",
                              "nodeType": "YulIdentifier",
                              "src": "6904:1:30"
                            },
                            {
                              "name": "r",
                              "nodeType": "YulIdentifier",
                              "src": "6907:1:30"
                            }
                          ],
                          "functionName": {
                            "name": "shr",
                            "nodeType": "YulIdentifier",
                            "src": "6900:3:30"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "6900:9:30"
                        },
                        "variableNames": [
                          {
                            "name": "r",
                            "nodeType": "YulIdentifier",
                            "src": "6895:1:30"
                          }
                        ]
                      }
                    ]
                  },
                  "evmVersion": "istanbul",
                  "externalReferences": [
                    {
                      "declaration": 7097,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "6852:5:30",
                      "valueSize": 1
                    },
                    {
                      "declaration": 7097,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "6864:5:30",
                      "valueSize": 1
                    },
                    {
                      "declaration": 7059,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "6782:1:30",
                      "valueSize": 1
                    },
                    {
                      "declaration": 7059,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "6800:1:30",
                      "valueSize": 1
                    },
                    {
                      "declaration": 7059,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "6803:1:30",
                      "valueSize": 1
                    },
                    {
                      "declaration": 7059,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "6837:1:30",
                      "valueSize": 1
                    },
                    {
                      "declaration": 7059,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "6895:1:30",
                      "valueSize": 1
                    },
                    {
                      "declaration": 7059,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "6907:1:30",
                      "valueSize": 1
                    }
                  ],
                  "id": 7113,
                  "nodeType": "InlineAssembly",
                  "src": "6759:160:30"
                },
                {
                  "AST": {
                    "nodeType": "YulBlock",
                    "src": "6937:151:30",
                    "statements": [
                      {
                        "nodeType": "YulAssignment",
                        "src": "6951:24:30",
                        "value": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "6960:3:30",
                              "type": "",
                              "value": "127"
                            },
                            {
                              "arguments": [
                                {
                                  "name": "r",
                                  "nodeType": "YulIdentifier",
                                  "src": "6969:1:30"
                                },
                                {
                                  "name": "r",
                                  "nodeType": "YulIdentifier",
                                  "src": "6972:1:30"
                                }
                              ],
                              "functionName": {
                                "name": "mul",
                                "nodeType": "YulIdentifier",
                                "src": "6965:3:30"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "6965:9:30"
                            }
                          ],
                          "functionName": {
                            "name": "shr",
                            "nodeType": "YulIdentifier",
                            "src": "6956:3:30"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "6956:19:30"
                        },
                        "variableNames": [
                          {
                            "name": "r",
                            "nodeType": "YulIdentifier",
                            "src": "6951:1:30"
                          }
                        ]
                      },
                      {
                        "nodeType": "YulVariableDeclaration",
                        "src": "6988:20:30",
                        "value": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "7001:3:30",
                              "type": "",
                              "value": "128"
                            },
                            {
                              "name": "r",
                              "nodeType": "YulIdentifier",
                              "src": "7006:1:30"
                            }
                          ],
                          "functionName": {
                            "name": "shr",
                            "nodeType": "YulIdentifier",
                            "src": "6997:3:30"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "6997:11:30"
                        },
                        "variables": [
                          {
                            "name": "f",
                            "nodeType": "YulTypedName",
                            "src": "6992:1:30",
                            "type": ""
                          }
                        ]
                      },
                      {
                        "nodeType": "YulAssignment",
                        "src": "7021:30:30",
                        "value": {
                          "arguments": [
                            {
                              "name": "log_2",
                              "nodeType": "YulIdentifier",
                              "src": "7033:5:30"
                            },
                            {
                              "arguments": [
                                {
                                  "kind": "number",
                                  "nodeType": "YulLiteral",
                                  "src": "7044:2:30",
                                  "type": "",
                                  "value": "57"
                                },
                                {
                                  "name": "f",
                                  "nodeType": "YulIdentifier",
                                  "src": "7048:1:30"
                                }
                              ],
                              "functionName": {
                                "name": "shl",
                                "nodeType": "YulIdentifier",
                                "src": "7040:3:30"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "7040:10:30"
                            }
                          ],
                          "functionName": {
                            "name": "or",
                            "nodeType": "YulIdentifier",
                            "src": "7030:2:30"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "7030:21:30"
                        },
                        "variableNames": [
                          {
                            "name": "log_2",
                            "nodeType": "YulIdentifier",
                            "src": "7021:5:30"
                          }
                        ]
                      },
                      {
                        "nodeType": "YulAssignment",
                        "src": "7064:14:30",
                        "value": {
                          "arguments": [
                            {
                              "name": "f",
                              "nodeType": "YulIdentifier",
                              "src": "7073:1:30"
                            },
                            {
                              "name": "r",
                              "nodeType": "YulIdentifier",
                              "src": "7076:1:30"
                            }
                          ],
                          "functionName": {
                            "name": "shr",
                            "nodeType": "YulIdentifier",
                            "src": "7069:3:30"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "7069:9:30"
                        },
                        "variableNames": [
                          {
                            "name": "r",
                            "nodeType": "YulIdentifier",
                            "src": "7064:1:30"
                          }
                        ]
                      }
                    ]
                  },
                  "evmVersion": "istanbul",
                  "externalReferences": [
                    {
                      "declaration": 7097,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "7021:5:30",
                      "valueSize": 1
                    },
                    {
                      "declaration": 7097,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "7033:5:30",
                      "valueSize": 1
                    },
                    {
                      "declaration": 7059,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "6951:1:30",
                      "valueSize": 1
                    },
                    {
                      "declaration": 7059,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "6969:1:30",
                      "valueSize": 1
                    },
                    {
                      "declaration": 7059,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "6972:1:30",
                      "valueSize": 1
                    },
                    {
                      "declaration": 7059,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "7006:1:30",
                      "valueSize": 1
                    },
                    {
                      "declaration": 7059,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "7064:1:30",
                      "valueSize": 1
                    },
                    {
                      "declaration": 7059,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "7076:1:30",
                      "valueSize": 1
                    }
                  ],
                  "id": 7114,
                  "nodeType": "InlineAssembly",
                  "src": "6928:160:30"
                },
                {
                  "AST": {
                    "nodeType": "YulBlock",
                    "src": "7106:151:30",
                    "statements": [
                      {
                        "nodeType": "YulAssignment",
                        "src": "7120:24:30",
                        "value": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "7129:3:30",
                              "type": "",
                              "value": "127"
                            },
                            {
                              "arguments": [
                                {
                                  "name": "r",
                                  "nodeType": "YulIdentifier",
                                  "src": "7138:1:30"
                                },
                                {
                                  "name": "r",
                                  "nodeType": "YulIdentifier",
                                  "src": "7141:1:30"
                                }
                              ],
                              "functionName": {
                                "name": "mul",
                                "nodeType": "YulIdentifier",
                                "src": "7134:3:30"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "7134:9:30"
                            }
                          ],
                          "functionName": {
                            "name": "shr",
                            "nodeType": "YulIdentifier",
                            "src": "7125:3:30"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "7125:19:30"
                        },
                        "variableNames": [
                          {
                            "name": "r",
                            "nodeType": "YulIdentifier",
                            "src": "7120:1:30"
                          }
                        ]
                      },
                      {
                        "nodeType": "YulVariableDeclaration",
                        "src": "7157:20:30",
                        "value": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "7170:3:30",
                              "type": "",
                              "value": "128"
                            },
                            {
                              "name": "r",
                              "nodeType": "YulIdentifier",
                              "src": "7175:1:30"
                            }
                          ],
                          "functionName": {
                            "name": "shr",
                            "nodeType": "YulIdentifier",
                            "src": "7166:3:30"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "7166:11:30"
                        },
                        "variables": [
                          {
                            "name": "f",
                            "nodeType": "YulTypedName",
                            "src": "7161:1:30",
                            "type": ""
                          }
                        ]
                      },
                      {
                        "nodeType": "YulAssignment",
                        "src": "7190:30:30",
                        "value": {
                          "arguments": [
                            {
                              "name": "log_2",
                              "nodeType": "YulIdentifier",
                              "src": "7202:5:30"
                            },
                            {
                              "arguments": [
                                {
                                  "kind": "number",
                                  "nodeType": "YulLiteral",
                                  "src": "7213:2:30",
                                  "type": "",
                                  "value": "56"
                                },
                                {
                                  "name": "f",
                                  "nodeType": "YulIdentifier",
                                  "src": "7217:1:30"
                                }
                              ],
                              "functionName": {
                                "name": "shl",
                                "nodeType": "YulIdentifier",
                                "src": "7209:3:30"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "7209:10:30"
                            }
                          ],
                          "functionName": {
                            "name": "or",
                            "nodeType": "YulIdentifier",
                            "src": "7199:2:30"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "7199:21:30"
                        },
                        "variableNames": [
                          {
                            "name": "log_2",
                            "nodeType": "YulIdentifier",
                            "src": "7190:5:30"
                          }
                        ]
                      },
                      {
                        "nodeType": "YulAssignment",
                        "src": "7233:14:30",
                        "value": {
                          "arguments": [
                            {
                              "name": "f",
                              "nodeType": "YulIdentifier",
                              "src": "7242:1:30"
                            },
                            {
                              "name": "r",
                              "nodeType": "YulIdentifier",
                              "src": "7245:1:30"
                            }
                          ],
                          "functionName": {
                            "name": "shr",
                            "nodeType": "YulIdentifier",
                            "src": "7238:3:30"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "7238:9:30"
                        },
                        "variableNames": [
                          {
                            "name": "r",
                            "nodeType": "YulIdentifier",
                            "src": "7233:1:30"
                          }
                        ]
                      }
                    ]
                  },
                  "evmVersion": "istanbul",
                  "externalReferences": [
                    {
                      "declaration": 7097,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "7190:5:30",
                      "valueSize": 1
                    },
                    {
                      "declaration": 7097,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "7202:5:30",
                      "valueSize": 1
                    },
                    {
                      "declaration": 7059,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "7120:1:30",
                      "valueSize": 1
                    },
                    {
                      "declaration": 7059,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "7138:1:30",
                      "valueSize": 1
                    },
                    {
                      "declaration": 7059,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "7141:1:30",
                      "valueSize": 1
                    },
                    {
                      "declaration": 7059,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "7175:1:30",
                      "valueSize": 1
                    },
                    {
                      "declaration": 7059,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "7233:1:30",
                      "valueSize": 1
                    },
                    {
                      "declaration": 7059,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "7245:1:30",
                      "valueSize": 1
                    }
                  ],
                  "id": 7115,
                  "nodeType": "InlineAssembly",
                  "src": "7097:160:30"
                },
                {
                  "AST": {
                    "nodeType": "YulBlock",
                    "src": "7275:151:30",
                    "statements": [
                      {
                        "nodeType": "YulAssignment",
                        "src": "7289:24:30",
                        "value": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "7298:3:30",
                              "type": "",
                              "value": "127"
                            },
                            {
                              "arguments": [
                                {
                                  "name": "r",
                                  "nodeType": "YulIdentifier",
                                  "src": "7307:1:30"
                                },
                                {
                                  "name": "r",
                                  "nodeType": "YulIdentifier",
                                  "src": "7310:1:30"
                                }
                              ],
                              "functionName": {
                                "name": "mul",
                                "nodeType": "YulIdentifier",
                                "src": "7303:3:30"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "7303:9:30"
                            }
                          ],
                          "functionName": {
                            "name": "shr",
                            "nodeType": "YulIdentifier",
                            "src": "7294:3:30"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "7294:19:30"
                        },
                        "variableNames": [
                          {
                            "name": "r",
                            "nodeType": "YulIdentifier",
                            "src": "7289:1:30"
                          }
                        ]
                      },
                      {
                        "nodeType": "YulVariableDeclaration",
                        "src": "7326:20:30",
                        "value": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "7339:3:30",
                              "type": "",
                              "value": "128"
                            },
                            {
                              "name": "r",
                              "nodeType": "YulIdentifier",
                              "src": "7344:1:30"
                            }
                          ],
                          "functionName": {
                            "name": "shr",
                            "nodeType": "YulIdentifier",
                            "src": "7335:3:30"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "7335:11:30"
                        },
                        "variables": [
                          {
                            "name": "f",
                            "nodeType": "YulTypedName",
                            "src": "7330:1:30",
                            "type": ""
                          }
                        ]
                      },
                      {
                        "nodeType": "YulAssignment",
                        "src": "7359:30:30",
                        "value": {
                          "arguments": [
                            {
                              "name": "log_2",
                              "nodeType": "YulIdentifier",
                              "src": "7371:5:30"
                            },
                            {
                              "arguments": [
                                {
                                  "kind": "number",
                                  "nodeType": "YulLiteral",
                                  "src": "7382:2:30",
                                  "type": "",
                                  "value": "55"
                                },
                                {
                                  "name": "f",
                                  "nodeType": "YulIdentifier",
                                  "src": "7386:1:30"
                                }
                              ],
                              "functionName": {
                                "name": "shl",
                                "nodeType": "YulIdentifier",
                                "src": "7378:3:30"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "7378:10:30"
                            }
                          ],
                          "functionName": {
                            "name": "or",
                            "nodeType": "YulIdentifier",
                            "src": "7368:2:30"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "7368:21:30"
                        },
                        "variableNames": [
                          {
                            "name": "log_2",
                            "nodeType": "YulIdentifier",
                            "src": "7359:5:30"
                          }
                        ]
                      },
                      {
                        "nodeType": "YulAssignment",
                        "src": "7402:14:30",
                        "value": {
                          "arguments": [
                            {
                              "name": "f",
                              "nodeType": "YulIdentifier",
                              "src": "7411:1:30"
                            },
                            {
                              "name": "r",
                              "nodeType": "YulIdentifier",
                              "src": "7414:1:30"
                            }
                          ],
                          "functionName": {
                            "name": "shr",
                            "nodeType": "YulIdentifier",
                            "src": "7407:3:30"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "7407:9:30"
                        },
                        "variableNames": [
                          {
                            "name": "r",
                            "nodeType": "YulIdentifier",
                            "src": "7402:1:30"
                          }
                        ]
                      }
                    ]
                  },
                  "evmVersion": "istanbul",
                  "externalReferences": [
                    {
                      "declaration": 7097,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "7359:5:30",
                      "valueSize": 1
                    },
                    {
                      "declaration": 7097,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "7371:5:30",
                      "valueSize": 1
                    },
                    {
                      "declaration": 7059,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "7289:1:30",
                      "valueSize": 1
                    },
                    {
                      "declaration": 7059,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "7307:1:30",
                      "valueSize": 1
                    },
                    {
                      "declaration": 7059,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "7310:1:30",
                      "valueSize": 1
                    },
                    {
                      "declaration": 7059,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "7344:1:30",
                      "valueSize": 1
                    },
                    {
                      "declaration": 7059,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "7402:1:30",
                      "valueSize": 1
                    },
                    {
                      "declaration": 7059,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "7414:1:30",
                      "valueSize": 1
                    }
                  ],
                  "id": 7116,
                  "nodeType": "InlineAssembly",
                  "src": "7266:160:30"
                },
                {
                  "AST": {
                    "nodeType": "YulBlock",
                    "src": "7444:151:30",
                    "statements": [
                      {
                        "nodeType": "YulAssignment",
                        "src": "7458:24:30",
                        "value": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "7467:3:30",
                              "type": "",
                              "value": "127"
                            },
                            {
                              "arguments": [
                                {
                                  "name": "r",
                                  "nodeType": "YulIdentifier",
                                  "src": "7476:1:30"
                                },
                                {
                                  "name": "r",
                                  "nodeType": "YulIdentifier",
                                  "src": "7479:1:30"
                                }
                              ],
                              "functionName": {
                                "name": "mul",
                                "nodeType": "YulIdentifier",
                                "src": "7472:3:30"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "7472:9:30"
                            }
                          ],
                          "functionName": {
                            "name": "shr",
                            "nodeType": "YulIdentifier",
                            "src": "7463:3:30"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "7463:19:30"
                        },
                        "variableNames": [
                          {
                            "name": "r",
                            "nodeType": "YulIdentifier",
                            "src": "7458:1:30"
                          }
                        ]
                      },
                      {
                        "nodeType": "YulVariableDeclaration",
                        "src": "7495:20:30",
                        "value": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "7508:3:30",
                              "type": "",
                              "value": "128"
                            },
                            {
                              "name": "r",
                              "nodeType": "YulIdentifier",
                              "src": "7513:1:30"
                            }
                          ],
                          "functionName": {
                            "name": "shr",
                            "nodeType": "YulIdentifier",
                            "src": "7504:3:30"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "7504:11:30"
                        },
                        "variables": [
                          {
                            "name": "f",
                            "nodeType": "YulTypedName",
                            "src": "7499:1:30",
                            "type": ""
                          }
                        ]
                      },
                      {
                        "nodeType": "YulAssignment",
                        "src": "7528:30:30",
                        "value": {
                          "arguments": [
                            {
                              "name": "log_2",
                              "nodeType": "YulIdentifier",
                              "src": "7540:5:30"
                            },
                            {
                              "arguments": [
                                {
                                  "kind": "number",
                                  "nodeType": "YulLiteral",
                                  "src": "7551:2:30",
                                  "type": "",
                                  "value": "54"
                                },
                                {
                                  "name": "f",
                                  "nodeType": "YulIdentifier",
                                  "src": "7555:1:30"
                                }
                              ],
                              "functionName": {
                                "name": "shl",
                                "nodeType": "YulIdentifier",
                                "src": "7547:3:30"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "7547:10:30"
                            }
                          ],
                          "functionName": {
                            "name": "or",
                            "nodeType": "YulIdentifier",
                            "src": "7537:2:30"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "7537:21:30"
                        },
                        "variableNames": [
                          {
                            "name": "log_2",
                            "nodeType": "YulIdentifier",
                            "src": "7528:5:30"
                          }
                        ]
                      },
                      {
                        "nodeType": "YulAssignment",
                        "src": "7571:14:30",
                        "value": {
                          "arguments": [
                            {
                              "name": "f",
                              "nodeType": "YulIdentifier",
                              "src": "7580:1:30"
                            },
                            {
                              "name": "r",
                              "nodeType": "YulIdentifier",
                              "src": "7583:1:30"
                            }
                          ],
                          "functionName": {
                            "name": "shr",
                            "nodeType": "YulIdentifier",
                            "src": "7576:3:30"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "7576:9:30"
                        },
                        "variableNames": [
                          {
                            "name": "r",
                            "nodeType": "YulIdentifier",
                            "src": "7571:1:30"
                          }
                        ]
                      }
                    ]
                  },
                  "evmVersion": "istanbul",
                  "externalReferences": [
                    {
                      "declaration": 7097,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "7528:5:30",
                      "valueSize": 1
                    },
                    {
                      "declaration": 7097,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "7540:5:30",
                      "valueSize": 1
                    },
                    {
                      "declaration": 7059,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "7458:1:30",
                      "valueSize": 1
                    },
                    {
                      "declaration": 7059,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "7476:1:30",
                      "valueSize": 1
                    },
                    {
                      "declaration": 7059,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "7479:1:30",
                      "valueSize": 1
                    },
                    {
                      "declaration": 7059,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "7513:1:30",
                      "valueSize": 1
                    },
                    {
                      "declaration": 7059,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "7571:1:30",
                      "valueSize": 1
                    },
                    {
                      "declaration": 7059,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "7583:1:30",
                      "valueSize": 1
                    }
                  ],
                  "id": 7117,
                  "nodeType": "InlineAssembly",
                  "src": "7435:160:30"
                },
                {
                  "AST": {
                    "nodeType": "YulBlock",
                    "src": "7613:151:30",
                    "statements": [
                      {
                        "nodeType": "YulAssignment",
                        "src": "7627:24:30",
                        "value": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "7636:3:30",
                              "type": "",
                              "value": "127"
                            },
                            {
                              "arguments": [
                                {
                                  "name": "r",
                                  "nodeType": "YulIdentifier",
                                  "src": "7645:1:30"
                                },
                                {
                                  "name": "r",
                                  "nodeType": "YulIdentifier",
                                  "src": "7648:1:30"
                                }
                              ],
                              "functionName": {
                                "name": "mul",
                                "nodeType": "YulIdentifier",
                                "src": "7641:3:30"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "7641:9:30"
                            }
                          ],
                          "functionName": {
                            "name": "shr",
                            "nodeType": "YulIdentifier",
                            "src": "7632:3:30"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "7632:19:30"
                        },
                        "variableNames": [
                          {
                            "name": "r",
                            "nodeType": "YulIdentifier",
                            "src": "7627:1:30"
                          }
                        ]
                      },
                      {
                        "nodeType": "YulVariableDeclaration",
                        "src": "7664:20:30",
                        "value": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "7677:3:30",
                              "type": "",
                              "value": "128"
                            },
                            {
                              "name": "r",
                              "nodeType": "YulIdentifier",
                              "src": "7682:1:30"
                            }
                          ],
                          "functionName": {
                            "name": "shr",
                            "nodeType": "YulIdentifier",
                            "src": "7673:3:30"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "7673:11:30"
                        },
                        "variables": [
                          {
                            "name": "f",
                            "nodeType": "YulTypedName",
                            "src": "7668:1:30",
                            "type": ""
                          }
                        ]
                      },
                      {
                        "nodeType": "YulAssignment",
                        "src": "7697:30:30",
                        "value": {
                          "arguments": [
                            {
                              "name": "log_2",
                              "nodeType": "YulIdentifier",
                              "src": "7709:5:30"
                            },
                            {
                              "arguments": [
                                {
                                  "kind": "number",
                                  "nodeType": "YulLiteral",
                                  "src": "7720:2:30",
                                  "type": "",
                                  "value": "53"
                                },
                                {
                                  "name": "f",
                                  "nodeType": "YulIdentifier",
                                  "src": "7724:1:30"
                                }
                              ],
                              "functionName": {
                                "name": "shl",
                                "nodeType": "YulIdentifier",
                                "src": "7716:3:30"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "7716:10:30"
                            }
                          ],
                          "functionName": {
                            "name": "or",
                            "nodeType": "YulIdentifier",
                            "src": "7706:2:30"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "7706:21:30"
                        },
                        "variableNames": [
                          {
                            "name": "log_2",
                            "nodeType": "YulIdentifier",
                            "src": "7697:5:30"
                          }
                        ]
                      },
                      {
                        "nodeType": "YulAssignment",
                        "src": "7740:14:30",
                        "value": {
                          "arguments": [
                            {
                              "name": "f",
                              "nodeType": "YulIdentifier",
                              "src": "7749:1:30"
                            },
                            {
                              "name": "r",
                              "nodeType": "YulIdentifier",
                              "src": "7752:1:30"
                            }
                          ],
                          "functionName": {
                            "name": "shr",
                            "nodeType": "YulIdentifier",
                            "src": "7745:3:30"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "7745:9:30"
                        },
                        "variableNames": [
                          {
                            "name": "r",
                            "nodeType": "YulIdentifier",
                            "src": "7740:1:30"
                          }
                        ]
                      }
                    ]
                  },
                  "evmVersion": "istanbul",
                  "externalReferences": [
                    {
                      "declaration": 7097,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "7697:5:30",
                      "valueSize": 1
                    },
                    {
                      "declaration": 7097,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "7709:5:30",
                      "valueSize": 1
                    },
                    {
                      "declaration": 7059,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "7627:1:30",
                      "valueSize": 1
                    },
                    {
                      "declaration": 7059,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "7645:1:30",
                      "valueSize": 1
                    },
                    {
                      "declaration": 7059,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "7648:1:30",
                      "valueSize": 1
                    },
                    {
                      "declaration": 7059,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "7682:1:30",
                      "valueSize": 1
                    },
                    {
                      "declaration": 7059,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "7740:1:30",
                      "valueSize": 1
                    },
                    {
                      "declaration": 7059,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "7752:1:30",
                      "valueSize": 1
                    }
                  ],
                  "id": 7118,
                  "nodeType": "InlineAssembly",
                  "src": "7604:160:30"
                },
                {
                  "AST": {
                    "nodeType": "YulBlock",
                    "src": "7782:151:30",
                    "statements": [
                      {
                        "nodeType": "YulAssignment",
                        "src": "7796:24:30",
                        "value": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "7805:3:30",
                              "type": "",
                              "value": "127"
                            },
                            {
                              "arguments": [
                                {
                                  "name": "r",
                                  "nodeType": "YulIdentifier",
                                  "src": "7814:1:30"
                                },
                                {
                                  "name": "r",
                                  "nodeType": "YulIdentifier",
                                  "src": "7817:1:30"
                                }
                              ],
                              "functionName": {
                                "name": "mul",
                                "nodeType": "YulIdentifier",
                                "src": "7810:3:30"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "7810:9:30"
                            }
                          ],
                          "functionName": {
                            "name": "shr",
                            "nodeType": "YulIdentifier",
                            "src": "7801:3:30"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "7801:19:30"
                        },
                        "variableNames": [
                          {
                            "name": "r",
                            "nodeType": "YulIdentifier",
                            "src": "7796:1:30"
                          }
                        ]
                      },
                      {
                        "nodeType": "YulVariableDeclaration",
                        "src": "7833:20:30",
                        "value": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "7846:3:30",
                              "type": "",
                              "value": "128"
                            },
                            {
                              "name": "r",
                              "nodeType": "YulIdentifier",
                              "src": "7851:1:30"
                            }
                          ],
                          "functionName": {
                            "name": "shr",
                            "nodeType": "YulIdentifier",
                            "src": "7842:3:30"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "7842:11:30"
                        },
                        "variables": [
                          {
                            "name": "f",
                            "nodeType": "YulTypedName",
                            "src": "7837:1:30",
                            "type": ""
                          }
                        ]
                      },
                      {
                        "nodeType": "YulAssignment",
                        "src": "7866:30:30",
                        "value": {
                          "arguments": [
                            {
                              "name": "log_2",
                              "nodeType": "YulIdentifier",
                              "src": "7878:5:30"
                            },
                            {
                              "arguments": [
                                {
                                  "kind": "number",
                                  "nodeType": "YulLiteral",
                                  "src": "7889:2:30",
                                  "type": "",
                                  "value": "52"
                                },
                                {
                                  "name": "f",
                                  "nodeType": "YulIdentifier",
                                  "src": "7893:1:30"
                                }
                              ],
                              "functionName": {
                                "name": "shl",
                                "nodeType": "YulIdentifier",
                                "src": "7885:3:30"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "7885:10:30"
                            }
                          ],
                          "functionName": {
                            "name": "or",
                            "nodeType": "YulIdentifier",
                            "src": "7875:2:30"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "7875:21:30"
                        },
                        "variableNames": [
                          {
                            "name": "log_2",
                            "nodeType": "YulIdentifier",
                            "src": "7866:5:30"
                          }
                        ]
                      },
                      {
                        "nodeType": "YulAssignment",
                        "src": "7909:14:30",
                        "value": {
                          "arguments": [
                            {
                              "name": "f",
                              "nodeType": "YulIdentifier",
                              "src": "7918:1:30"
                            },
                            {
                              "name": "r",
                              "nodeType": "YulIdentifier",
                              "src": "7921:1:30"
                            }
                          ],
                          "functionName": {
                            "name": "shr",
                            "nodeType": "YulIdentifier",
                            "src": "7914:3:30"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "7914:9:30"
                        },
                        "variableNames": [
                          {
                            "name": "r",
                            "nodeType": "YulIdentifier",
                            "src": "7909:1:30"
                          }
                        ]
                      }
                    ]
                  },
                  "evmVersion": "istanbul",
                  "externalReferences": [
                    {
                      "declaration": 7097,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "7866:5:30",
                      "valueSize": 1
                    },
                    {
                      "declaration": 7097,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "7878:5:30",
                      "valueSize": 1
                    },
                    {
                      "declaration": 7059,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "7796:1:30",
                      "valueSize": 1
                    },
                    {
                      "declaration": 7059,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "7814:1:30",
                      "valueSize": 1
                    },
                    {
                      "declaration": 7059,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "7817:1:30",
                      "valueSize": 1
                    },
                    {
                      "declaration": 7059,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "7851:1:30",
                      "valueSize": 1
                    },
                    {
                      "declaration": 7059,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "7909:1:30",
                      "valueSize": 1
                    },
                    {
                      "declaration": 7059,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "7921:1:30",
                      "valueSize": 1
                    }
                  ],
                  "id": 7119,
                  "nodeType": "InlineAssembly",
                  "src": "7773:160:30"
                },
                {
                  "AST": {
                    "nodeType": "YulBlock",
                    "src": "7951:151:30",
                    "statements": [
                      {
                        "nodeType": "YulAssignment",
                        "src": "7965:24:30",
                        "value": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "7974:3:30",
                              "type": "",
                              "value": "127"
                            },
                            {
                              "arguments": [
                                {
                                  "name": "r",
                                  "nodeType": "YulIdentifier",
                                  "src": "7983:1:30"
                                },
                                {
                                  "name": "r",
                                  "nodeType": "YulIdentifier",
                                  "src": "7986:1:30"
                                }
                              ],
                              "functionName": {
                                "name": "mul",
                                "nodeType": "YulIdentifier",
                                "src": "7979:3:30"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "7979:9:30"
                            }
                          ],
                          "functionName": {
                            "name": "shr",
                            "nodeType": "YulIdentifier",
                            "src": "7970:3:30"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "7970:19:30"
                        },
                        "variableNames": [
                          {
                            "name": "r",
                            "nodeType": "YulIdentifier",
                            "src": "7965:1:30"
                          }
                        ]
                      },
                      {
                        "nodeType": "YulVariableDeclaration",
                        "src": "8002:20:30",
                        "value": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "8015:3:30",
                              "type": "",
                              "value": "128"
                            },
                            {
                              "name": "r",
                              "nodeType": "YulIdentifier",
                              "src": "8020:1:30"
                            }
                          ],
                          "functionName": {
                            "name": "shr",
                            "nodeType": "YulIdentifier",
                            "src": "8011:3:30"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "8011:11:30"
                        },
                        "variables": [
                          {
                            "name": "f",
                            "nodeType": "YulTypedName",
                            "src": "8006:1:30",
                            "type": ""
                          }
                        ]
                      },
                      {
                        "nodeType": "YulAssignment",
                        "src": "8035:30:30",
                        "value": {
                          "arguments": [
                            {
                              "name": "log_2",
                              "nodeType": "YulIdentifier",
                              "src": "8047:5:30"
                            },
                            {
                              "arguments": [
                                {
                                  "kind": "number",
                                  "nodeType": "YulLiteral",
                                  "src": "8058:2:30",
                                  "type": "",
                                  "value": "51"
                                },
                                {
                                  "name": "f",
                                  "nodeType": "YulIdentifier",
                                  "src": "8062:1:30"
                                }
                              ],
                              "functionName": {
                                "name": "shl",
                                "nodeType": "YulIdentifier",
                                "src": "8054:3:30"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "8054:10:30"
                            }
                          ],
                          "functionName": {
                            "name": "or",
                            "nodeType": "YulIdentifier",
                            "src": "8044:2:30"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "8044:21:30"
                        },
                        "variableNames": [
                          {
                            "name": "log_2",
                            "nodeType": "YulIdentifier",
                            "src": "8035:5:30"
                          }
                        ]
                      },
                      {
                        "nodeType": "YulAssignment",
                        "src": "8078:14:30",
                        "value": {
                          "arguments": [
                            {
                              "name": "f",
                              "nodeType": "YulIdentifier",
                              "src": "8087:1:30"
                            },
                            {
                              "name": "r",
                              "nodeType": "YulIdentifier",
                              "src": "8090:1:30"
                            }
                          ],
                          "functionName": {
                            "name": "shr",
                            "nodeType": "YulIdentifier",
                            "src": "8083:3:30"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "8083:9:30"
                        },
                        "variableNames": [
                          {
                            "name": "r",
                            "nodeType": "YulIdentifier",
                            "src": "8078:1:30"
                          }
                        ]
                      }
                    ]
                  },
                  "evmVersion": "istanbul",
                  "externalReferences": [
                    {
                      "declaration": 7097,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "8035:5:30",
                      "valueSize": 1
                    },
                    {
                      "declaration": 7097,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "8047:5:30",
                      "valueSize": 1
                    },
                    {
                      "declaration": 7059,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "7965:1:30",
                      "valueSize": 1
                    },
                    {
                      "declaration": 7059,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "7983:1:30",
                      "valueSize": 1
                    },
                    {
                      "declaration": 7059,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "7986:1:30",
                      "valueSize": 1
                    },
                    {
                      "declaration": 7059,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "8020:1:30",
                      "valueSize": 1
                    },
                    {
                      "declaration": 7059,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "8078:1:30",
                      "valueSize": 1
                    },
                    {
                      "declaration": 7059,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "8090:1:30",
                      "valueSize": 1
                    }
                  ],
                  "id": 7120,
                  "nodeType": "InlineAssembly",
                  "src": "7942:160:30"
                },
                {
                  "AST": {
                    "nodeType": "YulBlock",
                    "src": "8120:124:30",
                    "statements": [
                      {
                        "nodeType": "YulAssignment",
                        "src": "8134:24:30",
                        "value": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "8143:3:30",
                              "type": "",
                              "value": "127"
                            },
                            {
                              "arguments": [
                                {
                                  "name": "r",
                                  "nodeType": "YulIdentifier",
                                  "src": "8152:1:30"
                                },
                                {
                                  "name": "r",
                                  "nodeType": "YulIdentifier",
                                  "src": "8155:1:30"
                                }
                              ],
                              "functionName": {
                                "name": "mul",
                                "nodeType": "YulIdentifier",
                                "src": "8148:3:30"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "8148:9:30"
                            }
                          ],
                          "functionName": {
                            "name": "shr",
                            "nodeType": "YulIdentifier",
                            "src": "8139:3:30"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "8139:19:30"
                        },
                        "variableNames": [
                          {
                            "name": "r",
                            "nodeType": "YulIdentifier",
                            "src": "8134:1:30"
                          }
                        ]
                      },
                      {
                        "nodeType": "YulVariableDeclaration",
                        "src": "8171:20:30",
                        "value": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "8184:3:30",
                              "type": "",
                              "value": "128"
                            },
                            {
                              "name": "r",
                              "nodeType": "YulIdentifier",
                              "src": "8189:1:30"
                            }
                          ],
                          "functionName": {
                            "name": "shr",
                            "nodeType": "YulIdentifier",
                            "src": "8180:3:30"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "8180:11:30"
                        },
                        "variables": [
                          {
                            "name": "f",
                            "nodeType": "YulTypedName",
                            "src": "8175:1:30",
                            "type": ""
                          }
                        ]
                      },
                      {
                        "nodeType": "YulAssignment",
                        "src": "8204:30:30",
                        "value": {
                          "arguments": [
                            {
                              "name": "log_2",
                              "nodeType": "YulIdentifier",
                              "src": "8216:5:30"
                            },
                            {
                              "arguments": [
                                {
                                  "kind": "number",
                                  "nodeType": "YulLiteral",
                                  "src": "8227:2:30",
                                  "type": "",
                                  "value": "50"
                                },
                                {
                                  "name": "f",
                                  "nodeType": "YulIdentifier",
                                  "src": "8231:1:30"
                                }
                              ],
                              "functionName": {
                                "name": "shl",
                                "nodeType": "YulIdentifier",
                                "src": "8223:3:30"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "8223:10:30"
                            }
                          ],
                          "functionName": {
                            "name": "or",
                            "nodeType": "YulIdentifier",
                            "src": "8213:2:30"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "8213:21:30"
                        },
                        "variableNames": [
                          {
                            "name": "log_2",
                            "nodeType": "YulIdentifier",
                            "src": "8204:5:30"
                          }
                        ]
                      }
                    ]
                  },
                  "evmVersion": "istanbul",
                  "externalReferences": [
                    {
                      "declaration": 7097,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "8204:5:30",
                      "valueSize": 1
                    },
                    {
                      "declaration": 7097,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "8216:5:30",
                      "valueSize": 1
                    },
                    {
                      "declaration": 7059,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "8134:1:30",
                      "valueSize": 1
                    },
                    {
                      "declaration": 7059,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "8152:1:30",
                      "valueSize": 1
                    },
                    {
                      "declaration": 7059,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "8155:1:30",
                      "valueSize": 1
                    },
                    {
                      "declaration": 7059,
                      "isOffset": false,
                      "isSlot": false,
                      "src": "8189:1:30",
                      "valueSize": 1
                    }
                  ],
                  "id": 7121,
                  "nodeType": "InlineAssembly",
                  "src": "8111:133:30"
                },
                {
                  "assignments": [
                    7123
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 7123,
                      "mutability": "mutable",
                      "name": "log_sqrt10001",
                      "nodeType": "VariableDeclaration",
                      "scope": 7168,
                      "src": "8254:20:30",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int256",
                        "typeString": "int256"
                      },
                      "typeName": {
                        "id": 7122,
                        "name": "int256",
                        "nodeType": "ElementaryTypeName",
                        "src": "8254:6:30",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 7127,
                  "initialValue": {
                    "commonType": {
                      "typeIdentifier": "t_int256",
                      "typeString": "int256"
                    },
                    "id": 7126,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 7124,
                      "name": "log_2",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7097,
                      "src": "8277:5:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int256",
                        "typeString": "int256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "*",
                    "rightExpression": {
                      "hexValue": "323535373338393538393939363033383236333437313431",
                      "id": 7125,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "8285:24:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_255738958999603826347141_by_1",
                        "typeString": "int_const 255738958999603826347141"
                      },
                      "value": "255738958999603826347141"
                    },
                    "src": "8277:32:30",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int256",
                      "typeString": "int256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "8254:55:30"
                },
                {
                  "assignments": [
                    7129
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 7129,
                      "mutability": "mutable",
                      "name": "tickLow",
                      "nodeType": "VariableDeclaration",
                      "scope": 7168,
                      "src": "8338:13:30",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int24",
                        "typeString": "int24"
                      },
                      "typeName": {
                        "id": 7128,
                        "name": "int24",
                        "nodeType": "ElementaryTypeName",
                        "src": "8338:5:30",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int24",
                          "typeString": "int24"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 7139,
                  "initialValue": {
                    "arguments": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        },
                        "id": 7137,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "components": [
                            {
                              "commonType": {
                                "typeIdentifier": "t_int256",
                                "typeString": "int256"
                              },
                              "id": 7134,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "id": 7132,
                                "name": "log_sqrt10001",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 7123,
                                "src": "8361:13:30",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_int256",
                                  "typeString": "int256"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "-",
                              "rightExpression": {
                                "hexValue": "33343032393932393536383039313332343138353936313430313030363630323437323130",
                                "id": 7133,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "8377:37:30",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_3402992956809132418596140100660247210_by_1",
                                  "typeString": "int_const 3402...(29 digits omitted)...7210"
                                },
                                "value": "3402992956809132418596140100660247210"
                              },
                              "src": "8361:53:30",
                              "typeDescriptions": {
                                "typeIdentifier": "t_int256",
                                "typeString": "int256"
                              }
                            }
                          ],
                          "id": 7135,
                          "isConstant": false,
                          "isInlineArray": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "TupleExpression",
                          "src": "8360:55:30",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">>",
                        "rightExpression": {
                          "hexValue": "313238",
                          "id": 7136,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "8419:3:30",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_128_by_1",
                            "typeString": "int_const 128"
                          },
                          "value": "128"
                        },
                        "src": "8360:62:30",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        }
                      ],
                      "id": 7131,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "ElementaryTypeNameExpression",
                      "src": "8354:5:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_int24_$",
                        "typeString": "type(int24)"
                      },
                      "typeName": {
                        "id": 7130,
                        "name": "int24",
                        "nodeType": "ElementaryTypeName",
                        "src": "8354:5:30",
                        "typeDescriptions": {}
                      }
                    },
                    "id": 7138,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "typeConversion",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8354:69:30",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_int24",
                      "typeString": "int24"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "8338:85:30"
                },
                {
                  "assignments": [
                    7141
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 7141,
                      "mutability": "mutable",
                      "name": "tickHi",
                      "nodeType": "VariableDeclaration",
                      "scope": 7168,
                      "src": "8433:12:30",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int24",
                        "typeString": "int24"
                      },
                      "typeName": {
                        "id": 7140,
                        "name": "int24",
                        "nodeType": "ElementaryTypeName",
                        "src": "8433:5:30",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int24",
                          "typeString": "int24"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 7151,
                  "initialValue": {
                    "arguments": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        },
                        "id": 7149,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "components": [
                            {
                              "commonType": {
                                "typeIdentifier": "t_int256",
                                "typeString": "int256"
                              },
                              "id": 7146,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "id": 7144,
                                "name": "log_sqrt10001",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 7123,
                                "src": "8455:13:30",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_int256",
                                  "typeString": "int256"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "+",
                              "rightExpression": {
                                "hexValue": "323931333339343634373731393839363232393037303237363231313533333938303838343935",
                                "id": 7145,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "8471:39:30",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_291339464771989622907027621153398088495_by_1",
                                  "typeString": "int_const 2913...(31 digits omitted)...8495"
                                },
                                "value": "291339464771989622907027621153398088495"
                              },
                              "src": "8455:55:30",
                              "typeDescriptions": {
                                "typeIdentifier": "t_int256",
                                "typeString": "int256"
                              }
                            }
                          ],
                          "id": 7147,
                          "isConstant": false,
                          "isInlineArray": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "TupleExpression",
                          "src": "8454:57:30",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">>",
                        "rightExpression": {
                          "hexValue": "313238",
                          "id": 7148,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "8515:3:30",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_128_by_1",
                            "typeString": "int_const 128"
                          },
                          "value": "128"
                        },
                        "src": "8454:64:30",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        }
                      ],
                      "id": 7143,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "ElementaryTypeNameExpression",
                      "src": "8448:5:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_int24_$",
                        "typeString": "type(int24)"
                      },
                      "typeName": {
                        "id": 7142,
                        "name": "int24",
                        "nodeType": "ElementaryTypeName",
                        "src": "8448:5:30",
                        "typeDescriptions": {}
                      }
                    },
                    "id": 7150,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "typeConversion",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8448:71:30",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_int24",
                      "typeString": "int24"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "8433:86:30"
                },
                {
                  "expression": {
                    "id": 7166,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 7152,
                      "name": "tick",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7036,
                      "src": "8530:4:30",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int24",
                        "typeString": "int24"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "condition": {
                        "commonType": {
                          "typeIdentifier": "t_int24",
                          "typeString": "int24"
                        },
                        "id": 7155,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "id": 7153,
                          "name": "tickLow",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 7129,
                          "src": "8537:7:30",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int24",
                            "typeString": "int24"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "id": 7154,
                          "name": "tickHi",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 7141,
                          "src": "8548:6:30",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int24",
                            "typeString": "int24"
                          }
                        },
                        "src": "8537:17:30",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "falseExpression": {
                        "condition": {
                          "commonType": {
                            "typeIdentifier": "t_uint160",
                            "typeString": "uint160"
                          },
                          "id": 7161,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "arguments": [
                              {
                                "id": 7158,
                                "name": "tickHi",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 7141,
                                "src": "8586:6:30",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_int24",
                                  "typeString": "int24"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_int24",
                                  "typeString": "int24"
                                }
                              ],
                              "id": 7157,
                              "name": "getSqrtRatioAtTick",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 7030,
                              "src": "8567:18:30",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_pure$_t_int24_$returns$_t_uint160_$",
                                "typeString": "function (int24) pure returns (uint160)"
                              }
                            },
                            "id": 7159,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "8567:26:30",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint160",
                              "typeString": "uint160"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "<=",
                          "rightExpression": {
                            "id": 7160,
                            "name": "sqrtPriceX96",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 7033,
                            "src": "8597:12:30",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint160",
                              "typeString": "uint160"
                            }
                          },
                          "src": "8567:42:30",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "falseExpression": {
                          "id": 7163,
                          "name": "tickLow",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 7129,
                          "src": "8621:7:30",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int24",
                            "typeString": "int24"
                          }
                        },
                        "id": 7164,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "Conditional",
                        "src": "8567:61:30",
                        "trueExpression": {
                          "id": 7162,
                          "name": "tickHi",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 7141,
                          "src": "8612:6:30",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int24",
                            "typeString": "int24"
                          }
                        },
                        "typeDescriptions": {
                          "typeIdentifier": "t_int24",
                          "typeString": "int24"
                        }
                      },
                      "id": 7165,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "Conditional",
                      "src": "8537:91:30",
                      "trueExpression": {
                        "id": 7156,
                        "name": "tickLow",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7129,
                        "src": "8557:7:30",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int24",
                          "typeString": "int24"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_int24",
                        "typeString": "int24"
                      }
                    },
                    "src": "8530:98:30",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int24",
                      "typeString": "int24"
                    }
                  },
                  "id": 7167,
                  "nodeType": "ExpressionStatement",
                  "src": "8530:98:30"
                }
              ]
            },
            "documentation": {
              "id": 7031,
              "nodeType": "StructuredDocumentation",
              "src": "3941:408:30",
              "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": 7169,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getTickAtSqrtRatio",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 7034,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7033,
                  "mutability": "mutable",
                  "name": "sqrtPriceX96",
                  "nodeType": "VariableDeclaration",
                  "scope": 7169,
                  "src": "4382:20:30",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint160",
                    "typeString": "uint160"
                  },
                  "typeName": {
                    "id": 7032,
                    "name": "uint160",
                    "nodeType": "ElementaryTypeName",
                    "src": "4382:7:30",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint160",
                      "typeString": "uint160"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4381:22:30"
            },
            "returnParameters": {
              "id": 7037,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7036,
                  "mutability": "mutable",
                  "name": "tick",
                  "nodeType": "VariableDeclaration",
                  "scope": 7169,
                  "src": "4427:10:30",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_int24",
                    "typeString": "int24"
                  },
                  "typeName": {
                    "id": 7035,
                    "name": "int24",
                    "nodeType": "ElementaryTypeName",
                    "src": "4427:5:30",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int24",
                      "typeString": "int24"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4426:12:30"
            },
            "scope": 7170,
            "src": "4354:4281:30",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          }
        ],
        "scope": 7171,
        "src": "306:8331:30"
      }
    ],
    "src": "45:8593:30"
  },
  "legacyAST": {
    "attributes": {
      "absolutePath": "/Users/warrenmason/Documents/UniswapV3Contracts/Core/LiveContracts/MoonwalkerSwap-v1-Core/contracts/libraries/TickMath.sol",
      "exportedSymbols": {
        "TickMath": [
          7170
        ]
      },
      "license": "GPL-2.0-or-later"
    },
    "children": [
      {
        "attributes": {
          "literals": [
            "solidity",
            ">=",
            "0.5",
            ".0"
          ]
        },
        "id": 6637,
        "name": "PragmaDirective",
        "src": "45:24:30"
      },
      {
        "attributes": {
          "abstract": false,
          "baseContracts": [
            null
          ],
          "contractDependencies": [
            null
          ],
          "contractKind": "library",
          "fullyImplemented": true,
          "linearizedBaseContracts": [
            7170
          ],
          "name": "TickMath",
          "scope": 7171
        },
        "children": [
          {
            "attributes": {
              "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"
            },
            "id": 6638,
            "name": "StructuredDocumentation",
            "src": "71:235:30"
          },
          {
            "attributes": {
              "constant": true,
              "mutability": "constant",
              "name": "MIN_TICK",
              "scope": 7170,
              "stateVariable": true,
              "storageLocation": "default",
              "type": "int24",
              "visibility": "internal"
            },
            "children": [
              {
                "attributes": {
                  "name": "int24",
                  "type": "int24"
                },
                "id": 6640,
                "name": "ElementaryTypeName",
                "src": "442:5:30"
              },
              {
                "attributes": {
                  "isConstant": false,
                  "isLValue": false,
                  "isPure": true,
                  "lValueRequested": false,
                  "operator": "-",
                  "prefix": true,
                  "type": "int_const -887272"
                },
                "children": [
                  {
                    "attributes": {
                      "hexvalue": "383837323732",
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "token": "number",
                      "type": "int_const 887272",
                      "value": "887272"
                    },
                    "id": 6641,
                    "name": "Literal",
                    "src": "478:6:30"
                  }
                ],
                "id": 6642,
                "name": "UnaryOperation",
                "src": "477:7:30"
              },
              {
                "attributes": {
                  "text": "@dev The minimum tick that may be passed to #getSqrtRatioAtTick computed from log base 1.0001 of 2**-128"
                },
                "id": 6639,
                "name": "StructuredDocumentation",
                "src": "329:108:30"
              }
            ],
            "id": 6643,
            "name": "VariableDeclaration",
            "src": "442:42:30"
          },
          {
            "attributes": {
              "constant": true,
              "mutability": "constant",
              "name": "MAX_TICK",
              "scope": 7170,
              "stateVariable": true,
              "storageLocation": "default",
              "type": "int24",
              "visibility": "internal"
            },
            "children": [
              {
                "attributes": {
                  "name": "int24",
                  "type": "int24"
                },
                "id": 6645,
                "name": "ElementaryTypeName",
                "src": "602:5:30"
              },
              {
                "attributes": {
                  "isConstant": false,
                  "isLValue": false,
                  "isPure": true,
                  "lValueRequested": false,
                  "operator": "-",
                  "prefix": true,
                  "type": "int24"
                },
                "children": [
                  {
                    "attributes": {
                      "overloadedDeclarations": [
                        null
                      ],
                      "referencedDeclaration": 6643,
                      "type": "int24",
                      "value": "MIN_TICK"
                    },
                    "id": 6646,
                    "name": "Identifier",
                    "src": "638:8:30"
                  }
                ],
                "id": 6647,
                "name": "UnaryOperation",
                "src": "637:9:30"
              },
              {
                "attributes": {
                  "text": "@dev The maximum tick that may be passed to #getSqrtRatioAtTick computed from log base 1.0001 of 2**128"
                },
                "id": 6644,
                "name": "StructuredDocumentation",
                "src": "490:107:30"
              }
            ],
            "id": 6648,
            "name": "VariableDeclaration",
            "src": "602:44:30"
          },
          {
            "attributes": {
              "constant": true,
              "mutability": "constant",
              "name": "MIN_SQRT_RATIO",
              "scope": 7170,
              "stateVariable": true,
              "storageLocation": "default",
              "type": "uint160",
              "visibility": "internal"
            },
            "children": [
              {
                "attributes": {
                  "name": "uint160",
                  "type": "uint160"
                },
                "id": 6650,
                "name": "ElementaryTypeName",
                "src": "774:7:30"
              },
              {
                "attributes": {
                  "hexvalue": "34323935313238373339",
                  "isConstant": false,
                  "isLValue": false,
                  "isPure": true,
                  "lValueRequested": false,
                  "token": "number",
                  "type": "int_const 4295128739",
                  "value": "4295128739"
                },
                "id": 6651,
                "name": "Literal",
                "src": "817:10:30"
              },
              {
                "attributes": {
                  "text": "@dev The minimum value that can be returned from #getSqrtRatioAtTick. Equivalent to getSqrtRatioAtTick(MIN_TICK)"
                },
                "id": 6649,
                "name": "StructuredDocumentation",
                "src": "653:116:30"
              }
            ],
            "id": 6652,
            "name": "VariableDeclaration",
            "src": "774:53:30"
          },
          {
            "attributes": {
              "constant": true,
              "mutability": "constant",
              "name": "MAX_SQRT_RATIO",
              "scope": 7170,
              "stateVariable": true,
              "storageLocation": "default",
              "type": "uint160",
              "visibility": "internal"
            },
            "children": [
              {
                "attributes": {
                  "name": "uint160",
                  "type": "uint160"
                },
                "id": 6654,
                "name": "ElementaryTypeName",
                "src": "954:7:30"
              },
              {
                "attributes": {
                  "hexvalue": "31343631343436373033343835323130313033323837323733303532323033393838383232333738373233393730333432",
                  "isConstant": false,
                  "isLValue": false,
                  "isPure": true,
                  "lValueRequested": false,
                  "token": "number",
                  "type": "int_const 1461...(41 digits omitted)...0342",
                  "value": "1461446703485210103287273052203988822378723970342"
                },
                "id": 6655,
                "name": "Literal",
                "src": "997:49:30"
              },
              {
                "attributes": {
                  "text": "@dev The maximum value that can be returned from #getSqrtRatioAtTick. Equivalent to getSqrtRatioAtTick(MAX_TICK)"
                },
                "id": 6653,
                "name": "StructuredDocumentation",
                "src": "833:116:30"
              }
            ],
            "id": 6656,
            "name": "VariableDeclaration",
            "src": "954:92:30"
          },
          {
            "attributes": {
              "implemented": true,
              "isConstructor": false,
              "kind": "function",
              "modifiers": [
                null
              ],
              "name": "getSqrtRatioAtTick",
              "scope": 7170,
              "stateMutability": "pure",
              "virtual": false,
              "visibility": "internal"
            },
            "children": [
              {
                "attributes": {
                  "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": 6657,
                "name": "StructuredDocumentation",
                "src": "1053:297:30"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "tick",
                      "scope": 7030,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "int24",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "int24",
                          "type": "int24"
                        },
                        "id": 6658,
                        "name": "ElementaryTypeName",
                        "src": "1383:5:30"
                      }
                    ],
                    "id": 6659,
                    "name": "VariableDeclaration",
                    "src": "1383:10:30"
                  }
                ],
                "id": 6660,
                "name": "ParameterList",
                "src": "1382:12:30"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "sqrtPriceX96",
                      "scope": 7030,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint160",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint160",
                          "type": "uint160"
                        },
                        "id": 6661,
                        "name": "ElementaryTypeName",
                        "src": "1418:7:30"
                      }
                    ],
                    "id": 6662,
                    "name": "VariableDeclaration",
                    "src": "1418:20:30"
                  }
                ],
                "id": 6663,
                "name": "ParameterList",
                "src": "1417:22:30"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "assignments": [
                        6665
                      ]
                    },
                    "children": [
                      {
                        "attributes": {
                          "constant": false,
                          "mutability": "mutable",
                          "name": "absTick",
                          "scope": 7029,
                          "stateVariable": false,
                          "storageLocation": "default",
                          "type": "uint256",
                          "visibility": "internal"
                        },
                        "children": [
                          {
                            "attributes": {
                              "name": "uint256",
                              "type": "uint256"
                            },
                            "id": 6664,
                            "name": "ElementaryTypeName",
                            "src": "1450:7:30"
                          }
                        ],
                        "id": 6665,
                        "name": "VariableDeclaration",
                        "src": "1450:15:30"
                      },
                      {
                        "attributes": {
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "type": "uint256"
                        },
                        "children": [
                          {
                            "attributes": {
                              "commonType": {
                                "typeIdentifier": "t_int24",
                                "typeString": "int24"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "<",
                              "type": "bool"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 6659,
                                  "type": "int24",
                                  "value": "tick"
                                },
                                "id": 6666,
                                "name": "Identifier",
                                "src": "1468:4:30"
                              },
                              {
                                "attributes": {
                                  "hexvalue": "30",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "token": "number",
                                  "type": "int_const 0",
                                  "value": "0"
                                },
                                "id": 6667,
                                "name": "Literal",
                                "src": "1475:1:30"
                              }
                            ],
                            "id": 6668,
                            "name": "BinaryOperation",
                            "src": "1468:8:30"
                          },
                          {
                            "attributes": {
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "isStructConstructorCall": false,
                              "lValueRequested": false,
                              "names": [
                                null
                              ],
                              "tryCall": false,
                              "type": "uint256",
                              "type_conversion": true
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_int256",
                                      "typeString": "int256"
                                    }
                                  ],
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "type": "type(uint256)"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "name": "uint256"
                                    },
                                    "id": 6669,
                                    "name": "ElementaryTypeName",
                                    "src": "1479:7:30"
                                  }
                                ],
                                "id": 6670,
                                "name": "ElementaryTypeNameExpression",
                                "src": "1479:7:30"
                              },
                              {
                                "attributes": {
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": "-",
                                  "prefix": true,
                                  "type": "int256"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "isStructConstructorCall": false,
                                      "lValueRequested": false,
                                      "names": [
                                        null
                                      ],
                                      "tryCall": false,
                                      "type": "int256",
                                      "type_conversion": true
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_int24",
                                              "typeString": "int24"
                                            }
                                          ],
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "type": "type(int256)"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "name": "int256"
                                            },
                                            "id": 6671,
                                            "name": "ElementaryTypeName",
                                            "src": "1488:6:30"
                                          }
                                        ],
                                        "id": 6672,
                                        "name": "ElementaryTypeNameExpression",
                                        "src": "1488:6:30"
                                      },
                                      {
                                        "attributes": {
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 6659,
                                          "type": "int24",
                                          "value": "tick"
                                        },
                                        "id": 6673,
                                        "name": "Identifier",
                                        "src": "1495:4:30"
                                      }
                                    ],
                                    "id": 6674,
                                    "name": "FunctionCall",
                                    "src": "1488:12:30"
                                  }
                                ],
                                "id": 6675,
                                "name": "UnaryOperation",
                                "src": "1487:13:30"
                              }
                            ],
                            "id": 6676,
                            "name": "FunctionCall",
                            "src": "1479:22:30"
                          },
                          {
                            "attributes": {
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "isStructConstructorCall": false,
                              "lValueRequested": false,
                              "names": [
                                null
                              ],
                              "tryCall": false,
                              "type": "uint256",
                              "type_conversion": true
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_int256",
                                      "typeString": "int256"
                                    }
                                  ],
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "type": "type(uint256)"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "name": "uint256"
                                    },
                                    "id": 6677,
                                    "name": "ElementaryTypeName",
                                    "src": "1504:7:30"
                                  }
                                ],
                                "id": 6678,
                                "name": "ElementaryTypeNameExpression",
                                "src": "1504:7:30"
                              },
                              {
                                "attributes": {
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "isStructConstructorCall": false,
                                  "lValueRequested": false,
                                  "names": [
                                    null
                                  ],
                                  "tryCall": false,
                                  "type": "int256",
                                  "type_conversion": true
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_int24",
                                          "typeString": "int24"
                                        }
                                      ],
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "type": "type(int256)"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "name": "int256"
                                        },
                                        "id": 6679,
                                        "name": "ElementaryTypeName",
                                        "src": "1512:6:30"
                                      }
                                    ],
                                    "id": 6680,
                                    "name": "ElementaryTypeNameExpression",
                                    "src": "1512:6:30"
                                  },
                                  {
                                    "attributes": {
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 6659,
                                      "type": "int24",
                                      "value": "tick"
                                    },
                                    "id": 6681,
                                    "name": "Identifier",
                                    "src": "1519:4:30"
                                  }
                                ],
                                "id": 6682,
                                "name": "FunctionCall",
                                "src": "1512:12:30"
                              }
                            ],
                            "id": 6683,
                            "name": "FunctionCall",
                            "src": "1504:21:30"
                          }
                        ],
                        "id": 6684,
                        "name": "Conditional",
                        "src": "1468:57:30"
                      }
                    ],
                    "id": 6685,
                    "name": "VariableDeclarationStatement",
                    "src": "1450:75:30"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "tryCall": false,
                          "type": "tuple()",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                },
                                {
                                  "typeIdentifier": "t_stringliteral_846b7b6deb1cfa110d0ea7ec6162a7123b761785528db70cceed5143183b11fc",
                                  "typeString": "literal_string \"T\""
                                }
                              ],
                              "overloadedDeclarations": [
                                4294967278,
                                4294967278
                              ],
                              "referencedDeclaration": 4294967278,
                              "type": "function (bool,string memory) pure",
                              "value": "require"
                            },
                            "id": 6686,
                            "name": "Identifier",
                            "src": "1535:7:30"
                          },
                          {
                            "attributes": {
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "<=",
                              "type": "bool"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 6665,
                                  "type": "uint256",
                                  "value": "absTick"
                                },
                                "id": 6687,
                                "name": "Identifier",
                                "src": "1543:7:30"
                              },
                              {
                                "attributes": {
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "isStructConstructorCall": false,
                                  "lValueRequested": false,
                                  "names": [
                                    null
                                  ],
                                  "tryCall": false,
                                  "type": "uint256",
                                  "type_conversion": true
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_int24",
                                          "typeString": "int24"
                                        }
                                      ],
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "type": "type(uint256)"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "name": "uint256"
                                        },
                                        "id": 6688,
                                        "name": "ElementaryTypeName",
                                        "src": "1554:7:30"
                                      }
                                    ],
                                    "id": 6689,
                                    "name": "ElementaryTypeNameExpression",
                                    "src": "1554:7:30"
                                  },
                                  {
                                    "attributes": {
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 6648,
                                      "type": "int24",
                                      "value": "MAX_TICK"
                                    },
                                    "id": 6690,
                                    "name": "Identifier",
                                    "src": "1562:8:30"
                                  }
                                ],
                                "id": 6691,
                                "name": "FunctionCall",
                                "src": "1554:17:30"
                              }
                            ],
                            "id": 6692,
                            "name": "BinaryOperation",
                            "src": "1543:28:30"
                          },
                          {
                            "attributes": {
                              "hexvalue": "54",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "token": "string",
                              "type": "literal_string \"T\"",
                              "value": "T"
                            },
                            "id": 6693,
                            "name": "Literal",
                            "src": "1573:3:30"
                          }
                        ],
                        "id": 6694,
                        "name": "FunctionCall",
                        "src": "1535:42:30"
                      }
                    ],
                    "id": 6695,
                    "name": "ExpressionStatement",
                    "src": "1535:42:30"
                  },
                  {
                    "attributes": {
                      "assignments": [
                        6697
                      ]
                    },
                    "children": [
                      {
                        "attributes": {
                          "constant": false,
                          "mutability": "mutable",
                          "name": "ratio",
                          "scope": 7029,
                          "stateVariable": false,
                          "storageLocation": "default",
                          "type": "uint256",
                          "visibility": "internal"
                        },
                        "children": [
                          {
                            "attributes": {
                              "name": "uint256",
                              "type": "uint256"
                            },
                            "id": 6696,
                            "name": "ElementaryTypeName",
                            "src": "1588:7:30"
                          }
                        ],
                        "id": 6697,
                        "name": "VariableDeclaration",
                        "src": "1588:13:30"
                      },
                      {
                        "attributes": {
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "type": "uint136"
                        },
                        "children": [
                          {
                            "attributes": {
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "!=",
                              "type": "bool"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "commonType": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": "&",
                                  "type": "uint256"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 6665,
                                      "type": "uint256",
                                      "value": "absTick"
                                    },
                                    "id": 6698,
                                    "name": "Identifier",
                                    "src": "1604:7:30"
                                  },
                                  {
                                    "attributes": {
                                      "hexvalue": "307831",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "token": "number",
                                      "type": "int_const 1",
                                      "value": "0x1"
                                    },
                                    "id": 6699,
                                    "name": "Literal",
                                    "src": "1614:3:30"
                                  }
                                ],
                                "id": 6700,
                                "name": "BinaryOperation",
                                "src": "1604:13:30"
                              },
                              {
                                "attributes": {
                                  "hexvalue": "30",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "token": "number",
                                  "type": "int_const 0",
                                  "value": "0"
                                },
                                "id": 6701,
                                "name": "Literal",
                                "src": "1621:1:30"
                              }
                            ],
                            "id": 6702,
                            "name": "BinaryOperation",
                            "src": "1604:18:30"
                          },
                          {
                            "attributes": {
                              "hexvalue": "30786666666362393333626436666164333761613264313632643161353934303031",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "token": "number",
                              "type": "int_const 3402...(31 digits omitted)...9313",
                              "value": "0xfffcb933bd6fad37aa2d162d1a594001"
                            },
                            "id": 6703,
                            "name": "Literal",
                            "src": "1625:34:30"
                          },
                          {
                            "attributes": {
                              "hexvalue": "3078313030303030303030303030303030303030303030303030303030303030303030",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "token": "number",
                              "type": "int_const 3402...(31 digits omitted)...1456",
                              "value": "0x100000000000000000000000000000000"
                            },
                            "id": 6704,
                            "name": "Literal",
                            "src": "1662:35:30"
                          }
                        ],
                        "id": 6705,
                        "name": "Conditional",
                        "src": "1604:93:30"
                      }
                    ],
                    "id": 6706,
                    "name": "VariableDeclarationStatement",
                    "src": "1588:109:30"
                  },
                  {
                    "attributes": {},
                    "children": [
                      {
                        "attributes": {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "!=",
                          "type": "bool"
                        },
                        "children": [
                          {
                            "attributes": {
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "&",
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 6665,
                                  "type": "uint256",
                                  "value": "absTick"
                                },
                                "id": 6707,
                                "name": "Identifier",
                                "src": "1711:7:30"
                              },
                              {
                                "attributes": {
                                  "hexvalue": "307832",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "token": "number",
                                  "type": "int_const 2",
                                  "value": "0x2"
                                },
                                "id": 6708,
                                "name": "Literal",
                                "src": "1721:3:30"
                              }
                            ],
                            "id": 6709,
                            "name": "BinaryOperation",
                            "src": "1711:13:30"
                          },
                          {
                            "attributes": {
                              "hexvalue": "30",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "token": "number",
                              "type": "int_const 0",
                              "value": "0"
                            },
                            "id": 6710,
                            "name": "Literal",
                            "src": "1728:1:30"
                          }
                        ],
                        "id": 6711,
                        "name": "BinaryOperation",
                        "src": "1711:18:30"
                      },
                      {
                        "children": [
                          {
                            "attributes": {
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "=",
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 6697,
                                  "type": "uint256",
                                  "value": "ratio"
                                },
                                "id": 6712,
                                "name": "Identifier",
                                "src": "1731:5:30"
                              },
                              {
                                "attributes": {
                                  "commonType": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": ">>",
                                  "type": "uint256"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "isConstant": false,
                                      "isInlineArray": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "type": "uint256"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "commonType": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          },
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "operator": "*",
                                          "type": "uint256"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 6697,
                                              "type": "uint256",
                                              "value": "ratio"
                                            },
                                            "id": 6713,
                                            "name": "Identifier",
                                            "src": "1740:5:30"
                                          },
                                          {
                                            "attributes": {
                                              "hexvalue": "30786666663937323732333733643431333235396134363939303538306532313361",
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "lValueRequested": false,
                                              "token": "number",
                                              "type": "int_const 3402...(31 digits omitted)...2778",
                                              "value": "0xfff97272373d413259a46990580e213a"
                                            },
                                            "id": 6714,
                                            "name": "Literal",
                                            "src": "1748:34:30"
                                          }
                                        ],
                                        "id": 6715,
                                        "name": "BinaryOperation",
                                        "src": "1740:42:30"
                                      }
                                    ],
                                    "id": 6716,
                                    "name": "TupleExpression",
                                    "src": "1739:44:30"
                                  },
                                  {
                                    "attributes": {
                                      "hexvalue": "313238",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "token": "number",
                                      "type": "int_const 128",
                                      "value": "128"
                                    },
                                    "id": 6717,
                                    "name": "Literal",
                                    "src": "1787:3:30"
                                  }
                                ],
                                "id": 6718,
                                "name": "BinaryOperation",
                                "src": "1739:51:30"
                              }
                            ],
                            "id": 6719,
                            "name": "Assignment",
                            "src": "1731:59:30"
                          }
                        ],
                        "id": 6720,
                        "name": "ExpressionStatement",
                        "src": "1731:59:30"
                      }
                    ],
                    "id": 6721,
                    "name": "IfStatement",
                    "src": "1707:83:30"
                  },
                  {
                    "attributes": {},
                    "children": [
                      {
                        "attributes": {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "!=",
                          "type": "bool"
                        },
                        "children": [
                          {
                            "attributes": {
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "&",
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 6665,
                                  "type": "uint256",
                                  "value": "absTick"
                                },
                                "id": 6722,
                                "name": "Identifier",
                                "src": "1804:7:30"
                              },
                              {
                                "attributes": {
                                  "hexvalue": "307834",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "token": "number",
                                  "type": "int_const 4",
                                  "value": "0x4"
                                },
                                "id": 6723,
                                "name": "Literal",
                                "src": "1814:3:30"
                              }
                            ],
                            "id": 6724,
                            "name": "BinaryOperation",
                            "src": "1804:13:30"
                          },
                          {
                            "attributes": {
                              "hexvalue": "30",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "token": "number",
                              "type": "int_const 0",
                              "value": "0"
                            },
                            "id": 6725,
                            "name": "Literal",
                            "src": "1821:1:30"
                          }
                        ],
                        "id": 6726,
                        "name": "BinaryOperation",
                        "src": "1804:18:30"
                      },
                      {
                        "children": [
                          {
                            "attributes": {
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "=",
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 6697,
                                  "type": "uint256",
                                  "value": "ratio"
                                },
                                "id": 6727,
                                "name": "Identifier",
                                "src": "1824:5:30"
                              },
                              {
                                "attributes": {
                                  "commonType": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": ">>",
                                  "type": "uint256"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "isConstant": false,
                                      "isInlineArray": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "type": "uint256"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "commonType": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          },
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "operator": "*",
                                          "type": "uint256"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 6697,
                                              "type": "uint256",
                                              "value": "ratio"
                                            },
                                            "id": 6728,
                                            "name": "Identifier",
                                            "src": "1833:5:30"
                                          },
                                          {
                                            "attributes": {
                                              "hexvalue": "30786666663265353066356636353639333265663132333537636633633766646363",
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "lValueRequested": false,
                                              "token": "number",
                                              "type": "int_const 3402...(31 digits omitted)...1260",
                                              "value": "0xfff2e50f5f656932ef12357cf3c7fdcc"
                                            },
                                            "id": 6729,
                                            "name": "Literal",
                                            "src": "1841:34:30"
                                          }
                                        ],
                                        "id": 6730,
                                        "name": "BinaryOperation",
                                        "src": "1833:42:30"
                                      }
                                    ],
                                    "id": 6731,
                                    "name": "TupleExpression",
                                    "src": "1832:44:30"
                                  },
                                  {
                                    "attributes": {
                                      "hexvalue": "313238",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "token": "number",
                                      "type": "int_const 128",
                                      "value": "128"
                                    },
                                    "id": 6732,
                                    "name": "Literal",
                                    "src": "1880:3:30"
                                  }
                                ],
                                "id": 6733,
                                "name": "BinaryOperation",
                                "src": "1832:51:30"
                              }
                            ],
                            "id": 6734,
                            "name": "Assignment",
                            "src": "1824:59:30"
                          }
                        ],
                        "id": 6735,
                        "name": "ExpressionStatement",
                        "src": "1824:59:30"
                      }
                    ],
                    "id": 6736,
                    "name": "IfStatement",
                    "src": "1800:83:30"
                  },
                  {
                    "attributes": {},
                    "children": [
                      {
                        "attributes": {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "!=",
                          "type": "bool"
                        },
                        "children": [
                          {
                            "attributes": {
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "&",
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 6665,
                                  "type": "uint256",
                                  "value": "absTick"
                                },
                                "id": 6737,
                                "name": "Identifier",
                                "src": "1897:7:30"
                              },
                              {
                                "attributes": {
                                  "hexvalue": "307838",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "token": "number",
                                  "type": "int_const 8",
                                  "value": "0x8"
                                },
                                "id": 6738,
                                "name": "Literal",
                                "src": "1907:3:30"
                              }
                            ],
                            "id": 6739,
                            "name": "BinaryOperation",
                            "src": "1897:13:30"
                          },
                          {
                            "attributes": {
                              "hexvalue": "30",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "token": "number",
                              "type": "int_const 0",
                              "value": "0"
                            },
                            "id": 6740,
                            "name": "Literal",
                            "src": "1914:1:30"
                          }
                        ],
                        "id": 6741,
                        "name": "BinaryOperation",
                        "src": "1897:18:30"
                      },
                      {
                        "children": [
                          {
                            "attributes": {
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "=",
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 6697,
                                  "type": "uint256",
                                  "value": "ratio"
                                },
                                "id": 6742,
                                "name": "Identifier",
                                "src": "1917:5:30"
                              },
                              {
                                "attributes": {
                                  "commonType": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": ">>",
                                  "type": "uint256"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "isConstant": false,
                                      "isInlineArray": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "type": "uint256"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "commonType": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          },
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "operator": "*",
                                          "type": "uint256"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 6697,
                                              "type": "uint256",
                                              "value": "ratio"
                                            },
                                            "id": 6743,
                                            "name": "Identifier",
                                            "src": "1926:5:30"
                                          },
                                          {
                                            "attributes": {
                                              "hexvalue": "30786666653563616361376531306534653631633336323465616130393431636430",
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "lValueRequested": false,
                                              "token": "number",
                                              "type": "int_const 3401...(31 digits omitted)...4304",
                                              "value": "0xffe5caca7e10e4e61c3624eaa0941cd0"
                                            },
                                            "id": 6744,
                                            "name": "Literal",
                                            "src": "1934:34:30"
                                          }
                                        ],
                                        "id": 6745,
                                        "name": "BinaryOperation",
                                        "src": "1926:42:30"
                                      }
                                    ],
                                    "id": 6746,
                                    "name": "TupleExpression",
                                    "src": "1925:44:30"
                                  },
                                  {
                                    "attributes": {
                                      "hexvalue": "313238",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "token": "number",
                                      "type": "int_const 128",
                                      "value": "128"
                                    },
                                    "id": 6747,
                                    "name": "Literal",
                                    "src": "1973:3:30"
                                  }
                                ],
                                "id": 6748,
                                "name": "BinaryOperation",
                                "src": "1925:51:30"
                              }
                            ],
                            "id": 6749,
                            "name": "Assignment",
                            "src": "1917:59:30"
                          }
                        ],
                        "id": 6750,
                        "name": "ExpressionStatement",
                        "src": "1917:59:30"
                      }
                    ],
                    "id": 6751,
                    "name": "IfStatement",
                    "src": "1893:83:30"
                  },
                  {
                    "attributes": {},
                    "children": [
                      {
                        "attributes": {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "!=",
                          "type": "bool"
                        },
                        "children": [
                          {
                            "attributes": {
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "&",
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 6665,
                                  "type": "uint256",
                                  "value": "absTick"
                                },
                                "id": 6752,
                                "name": "Identifier",
                                "src": "1990:7:30"
                              },
                              {
                                "attributes": {
                                  "hexvalue": "30783130",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "token": "number",
                                  "type": "int_const 16",
                                  "value": "0x10"
                                },
                                "id": 6753,
                                "name": "Literal",
                                "src": "2000:4:30"
                              }
                            ],
                            "id": 6754,
                            "name": "BinaryOperation",
                            "src": "1990:14:30"
                          },
                          {
                            "attributes": {
                              "hexvalue": "30",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "token": "number",
                              "type": "int_const 0",
                              "value": "0"
                            },
                            "id": 6755,
                            "name": "Literal",
                            "src": "2008:1:30"
                          }
                        ],
                        "id": 6756,
                        "name": "BinaryOperation",
                        "src": "1990:19:30"
                      },
                      {
                        "children": [
                          {
                            "attributes": {
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "=",
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 6697,
                                  "type": "uint256",
                                  "value": "ratio"
                                },
                                "id": 6757,
                                "name": "Identifier",
                                "src": "2011:5:30"
                              },
                              {
                                "attributes": {
                                  "commonType": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": ">>",
                                  "type": "uint256"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "isConstant": false,
                                      "isInlineArray": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "type": "uint256"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "commonType": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          },
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "operator": "*",
                                          "type": "uint256"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 6697,
                                              "type": "uint256",
                                              "value": "ratio"
                                            },
                                            "id": 6758,
                                            "name": "Identifier",
                                            "src": "2020:5:30"
                                          },
                                          {
                                            "attributes": {
                                              "hexvalue": "30786666636239383433643630663631353963396462353838333563393236363434",
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "lValueRequested": false,
                                              "token": "number",
                                              "type": "int_const 3400...(31 digits omitted)...1444",
                                              "value": "0xffcb9843d60f6159c9db58835c926644"
                                            },
                                            "id": 6759,
                                            "name": "Literal",
                                            "src": "2028:34:30"
                                          }
                                        ],
                                        "id": 6760,
                                        "name": "BinaryOperation",
                                        "src": "2020:42:30"
                                      }
                                    ],
                                    "id": 6761,
                                    "name": "TupleExpression",
                                    "src": "2019:44:30"
                                  },
                                  {
                                    "attributes": {
                                      "hexvalue": "313238",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "token": "number",
                                      "type": "int_const 128",
                                      "value": "128"
                                    },
                                    "id": 6762,
                                    "name": "Literal",
                                    "src": "2067:3:30"
                                  }
                                ],
                                "id": 6763,
                                "name": "BinaryOperation",
                                "src": "2019:51:30"
                              }
                            ],
                            "id": 6764,
                            "name": "Assignment",
                            "src": "2011:59:30"
                          }
                        ],
                        "id": 6765,
                        "name": "ExpressionStatement",
                        "src": "2011:59:30"
                      }
                    ],
                    "id": 6766,
                    "name": "IfStatement",
                    "src": "1986:84:30"
                  },
                  {
                    "attributes": {},
                    "children": [
                      {
                        "attributes": {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "!=",
                          "type": "bool"
                        },
                        "children": [
                          {
                            "attributes": {
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "&",
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 6665,
                                  "type": "uint256",
                                  "value": "absTick"
                                },
                                "id": 6767,
                                "name": "Identifier",
                                "src": "2084:7:30"
                              },
                              {
                                "attributes": {
                                  "hexvalue": "30783230",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "token": "number",
                                  "type": "int_const 32",
                                  "value": "0x20"
                                },
                                "id": 6768,
                                "name": "Literal",
                                "src": "2094:4:30"
                              }
                            ],
                            "id": 6769,
                            "name": "BinaryOperation",
                            "src": "2084:14:30"
                          },
                          {
                            "attributes": {
                              "hexvalue": "30",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "token": "number",
                              "type": "int_const 0",
                              "value": "0"
                            },
                            "id": 6770,
                            "name": "Literal",
                            "src": "2102:1:30"
                          }
                        ],
                        "id": 6771,
                        "name": "BinaryOperation",
                        "src": "2084:19:30"
                      },
                      {
                        "children": [
                          {
                            "attributes": {
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "=",
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 6697,
                                  "type": "uint256",
                                  "value": "ratio"
                                },
                                "id": 6772,
                                "name": "Identifier",
                                "src": "2105:5:30"
                              },
                              {
                                "attributes": {
                                  "commonType": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": ">>",
                                  "type": "uint256"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "isConstant": false,
                                      "isInlineArray": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "type": "uint256"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "commonType": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          },
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "operator": "*",
                                          "type": "uint256"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 6697,
                                              "type": "uint256",
                                              "value": "ratio"
                                            },
                                            "id": 6773,
                                            "name": "Identifier",
                                            "src": "2114:5:30"
                                          },
                                          {
                                            "attributes": {
                                              "hexvalue": "30786666393733623431666139386330383134373265363839366466623235346330",
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "lValueRequested": false,
                                              "token": "number",
                                              "type": "int_const 3397...(31 digits omitted)...2016",
                                              "value": "0xff973b41fa98c081472e6896dfb254c0"
                                            },
                                            "id": 6774,
                                            "name": "Literal",
                                            "src": "2122:34:30"
                                          }
                                        ],
                                        "id": 6775,
                                        "name": "BinaryOperation",
                                        "src": "2114:42:30"
                                      }
                                    ],
                                    "id": 6776,
                                    "name": "TupleExpression",
                                    "src": "2113:44:30"
                                  },
                                  {
                                    "attributes": {
                                      "hexvalue": "313238",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "token": "number",
                                      "type": "int_const 128",
                                      "value": "128"
                                    },
                                    "id": 6777,
                                    "name": "Literal",
                                    "src": "2161:3:30"
                                  }
                                ],
                                "id": 6778,
                                "name": "BinaryOperation",
                                "src": "2113:51:30"
                              }
                            ],
                            "id": 6779,
                            "name": "Assignment",
                            "src": "2105:59:30"
                          }
                        ],
                        "id": 6780,
                        "name": "ExpressionStatement",
                        "src": "2105:59:30"
                      }
                    ],
                    "id": 6781,
                    "name": "IfStatement",
                    "src": "2080:84:30"
                  },
                  {
                    "attributes": {},
                    "children": [
                      {
                        "attributes": {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "!=",
                          "type": "bool"
                        },
                        "children": [
                          {
                            "attributes": {
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "&",
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 6665,
                                  "type": "uint256",
                                  "value": "absTick"
                                },
                                "id": 6782,
                                "name": "Identifier",
                                "src": "2178:7:30"
                              },
                              {
                                "attributes": {
                                  "hexvalue": "30783430",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "token": "number",
                                  "type": "int_const 64",
                                  "value": "0x40"
                                },
                                "id": 6783,
                                "name": "Literal",
                                "src": "2188:4:30"
                              }
                            ],
                            "id": 6784,
                            "name": "BinaryOperation",
                            "src": "2178:14:30"
                          },
                          {
                            "attributes": {
                              "hexvalue": "30",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "token": "number",
                              "type": "int_const 0",
                              "value": "0"
                            },
                            "id": 6785,
                            "name": "Literal",
                            "src": "2196:1:30"
                          }
                        ],
                        "id": 6786,
                        "name": "BinaryOperation",
                        "src": "2178:19:30"
                      },
                      {
                        "children": [
                          {
                            "attributes": {
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "=",
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 6697,
                                  "type": "uint256",
                                  "value": "ratio"
                                },
                                "id": 6787,
                                "name": "Identifier",
                                "src": "2199:5:30"
                              },
                              {
                                "attributes": {
                                  "commonType": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": ">>",
                                  "type": "uint256"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "isConstant": false,
                                      "isInlineArray": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "type": "uint256"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "commonType": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          },
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "operator": "*",
                                          "type": "uint256"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 6697,
                                              "type": "uint256",
                                              "value": "ratio"
                                            },
                                            "id": 6788,
                                            "name": "Identifier",
                                            "src": "2208:5:30"
                                          },
                                          {
                                            "attributes": {
                                              "hexvalue": "30786666326561313634363663393661333834336563373862333236623532383631",
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "lValueRequested": false,
                                              "token": "number",
                                              "type": "int_const 3391...(31 digits omitted)...7025",
                                              "value": "0xff2ea16466c96a3843ec78b326b52861"
                                            },
                                            "id": 6789,
                                            "name": "Literal",
                                            "src": "2216:34:30"
                                          }
                                        ],
                                        "id": 6790,
                                        "name": "BinaryOperation",
                                        "src": "2208:42:30"
                                      }
                                    ],
                                    "id": 6791,
                                    "name": "TupleExpression",
                                    "src": "2207:44:30"
                                  },
                                  {
                                    "attributes": {
                                      "hexvalue": "313238",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "token": "number",
                                      "type": "int_const 128",
                                      "value": "128"
                                    },
                                    "id": 6792,
                                    "name": "Literal",
                                    "src": "2255:3:30"
                                  }
                                ],
                                "id": 6793,
                                "name": "BinaryOperation",
                                "src": "2207:51:30"
                              }
                            ],
                            "id": 6794,
                            "name": "Assignment",
                            "src": "2199:59:30"
                          }
                        ],
                        "id": 6795,
                        "name": "ExpressionStatement",
                        "src": "2199:59:30"
                      }
                    ],
                    "id": 6796,
                    "name": "IfStatement",
                    "src": "2174:84:30"
                  },
                  {
                    "attributes": {},
                    "children": [
                      {
                        "attributes": {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "!=",
                          "type": "bool"
                        },
                        "children": [
                          {
                            "attributes": {
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "&",
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 6665,
                                  "type": "uint256",
                                  "value": "absTick"
                                },
                                "id": 6797,
                                "name": "Identifier",
                                "src": "2272:7:30"
                              },
                              {
                                "attributes": {
                                  "hexvalue": "30783830",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "token": "number",
                                  "type": "int_const 128",
                                  "value": "0x80"
                                },
                                "id": 6798,
                                "name": "Literal",
                                "src": "2282:4:30"
                              }
                            ],
                            "id": 6799,
                            "name": "BinaryOperation",
                            "src": "2272:14:30"
                          },
                          {
                            "attributes": {
                              "hexvalue": "30",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "token": "number",
                              "type": "int_const 0",
                              "value": "0"
                            },
                            "id": 6800,
                            "name": "Literal",
                            "src": "2290:1:30"
                          }
                        ],
                        "id": 6801,
                        "name": "BinaryOperation",
                        "src": "2272:19:30"
                      },
                      {
                        "children": [
                          {
                            "attributes": {
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "=",
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 6697,
                                  "type": "uint256",
                                  "value": "ratio"
                                },
                                "id": 6802,
                                "name": "Identifier",
                                "src": "2293:5:30"
                              },
                              {
                                "attributes": {
                                  "commonType": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": ">>",
                                  "type": "uint256"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "isConstant": false,
                                      "isInlineArray": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "type": "uint256"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "commonType": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          },
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "operator": "*",
                                          "type": "uint256"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 6697,
                                              "type": "uint256",
                                              "value": "ratio"
                                            },
                                            "id": 6803,
                                            "name": "Identifier",
                                            "src": "2302:5:30"
                                          },
                                          {
                                            "attributes": {
                                              "hexvalue": "30786665356465653034366139396132613831316334363166313936396333303533",
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "lValueRequested": false,
                                              "token": "number",
                                              "type": "int_const 3381...(31 digits omitted)...5971",
                                              "value": "0xfe5dee046a99a2a811c461f1969c3053"
                                            },
                                            "id": 6804,
                                            "name": "Literal",
                                            "src": "2310:34:30"
                                          }
                                        ],
                                        "id": 6805,
                                        "name": "BinaryOperation",
                                        "src": "2302:42:30"
                                      }
                                    ],
                                    "id": 6806,
                                    "name": "TupleExpression",
                                    "src": "2301:44:30"
                                  },
                                  {
                                    "attributes": {
                                      "hexvalue": "313238",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "token": "number",
                                      "type": "int_const 128",
                                      "value": "128"
                                    },
                                    "id": 6807,
                                    "name": "Literal",
                                    "src": "2349:3:30"
                                  }
                                ],
                                "id": 6808,
                                "name": "BinaryOperation",
                                "src": "2301:51:30"
                              }
                            ],
                            "id": 6809,
                            "name": "Assignment",
                            "src": "2293:59:30"
                          }
                        ],
                        "id": 6810,
                        "name": "ExpressionStatement",
                        "src": "2293:59:30"
                      }
                    ],
                    "id": 6811,
                    "name": "IfStatement",
                    "src": "2268:84:30"
                  },
                  {
                    "attributes": {},
                    "children": [
                      {
                        "attributes": {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "!=",
                          "type": "bool"
                        },
                        "children": [
                          {
                            "attributes": {
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "&",
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 6665,
                                  "type": "uint256",
                                  "value": "absTick"
                                },
                                "id": 6812,
                                "name": "Identifier",
                                "src": "2366:7:30"
                              },
                              {
                                "attributes": {
                                  "hexvalue": "3078313030",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "token": "number",
                                  "type": "int_const 256",
                                  "value": "0x100"
                                },
                                "id": 6813,
                                "name": "Literal",
                                "src": "2376:5:30"
                              }
                            ],
                            "id": 6814,
                            "name": "BinaryOperation",
                            "src": "2366:15:30"
                          },
                          {
                            "attributes": {
                              "hexvalue": "30",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "token": "number",
                              "type": "int_const 0",
                              "value": "0"
                            },
                            "id": 6815,
                            "name": "Literal",
                            "src": "2385:1:30"
                          }
                        ],
                        "id": 6816,
                        "name": "BinaryOperation",
                        "src": "2366:20:30"
                      },
                      {
                        "children": [
                          {
                            "attributes": {
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "=",
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 6697,
                                  "type": "uint256",
                                  "value": "ratio"
                                },
                                "id": 6817,
                                "name": "Identifier",
                                "src": "2388:5:30"
                              },
                              {
                                "attributes": {
                                  "commonType": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": ">>",
                                  "type": "uint256"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "isConstant": false,
                                      "isInlineArray": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "type": "uint256"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "commonType": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          },
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "operator": "*",
                                          "type": "uint256"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 6697,
                                              "type": "uint256",
                                              "value": "ratio"
                                            },
                                            "id": 6818,
                                            "name": "Identifier",
                                            "src": "2397:5:30"
                                          },
                                          {
                                            "attributes": {
                                              "hexvalue": "30786663626538366337393030613838616564636666633833623437396161336134",
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "lValueRequested": false,
                                              "token": "number",
                                              "type": "int_const 3359...(31 digits omitted)...7700",
                                              "value": "0xfcbe86c7900a88aedcffc83b479aa3a4"
                                            },
                                            "id": 6819,
                                            "name": "Literal",
                                            "src": "2405:34:30"
                                          }
                                        ],
                                        "id": 6820,
                                        "name": "BinaryOperation",
                                        "src": "2397:42:30"
                                      }
                                    ],
                                    "id": 6821,
                                    "name": "TupleExpression",
                                    "src": "2396:44:30"
                                  },
                                  {
                                    "attributes": {
                                      "hexvalue": "313238",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "token": "number",
                                      "type": "int_const 128",
                                      "value": "128"
                                    },
                                    "id": 6822,
                                    "name": "Literal",
                                    "src": "2444:3:30"
                                  }
                                ],
                                "id": 6823,
                                "name": "BinaryOperation",
                                "src": "2396:51:30"
                              }
                            ],
                            "id": 6824,
                            "name": "Assignment",
                            "src": "2388:59:30"
                          }
                        ],
                        "id": 6825,
                        "name": "ExpressionStatement",
                        "src": "2388:59:30"
                      }
                    ],
                    "id": 6826,
                    "name": "IfStatement",
                    "src": "2362:85:30"
                  },
                  {
                    "attributes": {},
                    "children": [
                      {
                        "attributes": {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "!=",
                          "type": "bool"
                        },
                        "children": [
                          {
                            "attributes": {
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "&",
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 6665,
                                  "type": "uint256",
                                  "value": "absTick"
                                },
                                "id": 6827,
                                "name": "Identifier",
                                "src": "2461:7:30"
                              },
                              {
                                "attributes": {
                                  "hexvalue": "3078323030",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "token": "number",
                                  "type": "int_const 512",
                                  "value": "0x200"
                                },
                                "id": 6828,
                                "name": "Literal",
                                "src": "2471:5:30"
                              }
                            ],
                            "id": 6829,
                            "name": "BinaryOperation",
                            "src": "2461:15:30"
                          },
                          {
                            "attributes": {
                              "hexvalue": "30",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "token": "number",
                              "type": "int_const 0",
                              "value": "0"
                            },
                            "id": 6830,
                            "name": "Literal",
                            "src": "2480:1:30"
                          }
                        ],
                        "id": 6831,
                        "name": "BinaryOperation",
                        "src": "2461:20:30"
                      },
                      {
                        "children": [
                          {
                            "attributes": {
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "=",
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 6697,
                                  "type": "uint256",
                                  "value": "ratio"
                                },
                                "id": 6832,
                                "name": "Identifier",
                                "src": "2483:5:30"
                              },
                              {
                                "attributes": {
                                  "commonType": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": ">>",
                                  "type": "uint256"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "isConstant": false,
                                      "isInlineArray": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "type": "uint256"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "commonType": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          },
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "operator": "*",
                                          "type": "uint256"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 6697,
                                              "type": "uint256",
                                              "value": "ratio"
                                            },
                                            "id": 6833,
                                            "name": "Identifier",
                                            "src": "2492:5:30"
                                          },
                                          {
                                            "attributes": {
                                              "hexvalue": "30786639383761373235336163343133313736663262303734636637383135653534",
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "lValueRequested": false,
                                              "token": "number",
                                              "type": "int_const 3316...(31 digits omitted)...7300",
                                              "value": "0xf987a7253ac413176f2b074cf7815e54"
                                            },
                                            "id": 6834,
                                            "name": "Literal",
                                            "src": "2500:34:30"
                                          }
                                        ],
                                        "id": 6835,
                                        "name": "BinaryOperation",
                                        "src": "2492:42:30"
                                      }
                                    ],
                                    "id": 6836,
                                    "name": "TupleExpression",
                                    "src": "2491:44:30"
                                  },
                                  {
                                    "attributes": {
                                      "hexvalue": "313238",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "token": "number",
                                      "type": "int_const 128",
                                      "value": "128"
                                    },
                                    "id": 6837,
                                    "name": "Literal",
                                    "src": "2539:3:30"
                                  }
                                ],
                                "id": 6838,
                                "name": "BinaryOperation",
                                "src": "2491:51:30"
                              }
                            ],
                            "id": 6839,
                            "name": "Assignment",
                            "src": "2483:59:30"
                          }
                        ],
                        "id": 6840,
                        "name": "ExpressionStatement",
                        "src": "2483:59:30"
                      }
                    ],
                    "id": 6841,
                    "name": "IfStatement",
                    "src": "2457:85:30"
                  },
                  {
                    "attributes": {},
                    "children": [
                      {
                        "attributes": {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "!=",
                          "type": "bool"
                        },
                        "children": [
                          {
                            "attributes": {
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "&",
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 6665,
                                  "type": "uint256",
                                  "value": "absTick"
                                },
                                "id": 6842,
                                "name": "Identifier",
                                "src": "2556:7:30"
                              },
                              {
                                "attributes": {
                                  "hexvalue": "3078343030",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "token": "number",
                                  "type": "int_const 1024",
                                  "value": "0x400"
                                },
                                "id": 6843,
                                "name": "Literal",
                                "src": "2566:5:30"
                              }
                            ],
                            "id": 6844,
                            "name": "BinaryOperation",
                            "src": "2556:15:30"
                          },
                          {
                            "attributes": {
                              "hexvalue": "30",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "token": "number",
                              "type": "int_const 0",
                              "value": "0"
                            },
                            "id": 6845,
                            "name": "Literal",
                            "src": "2575:1:30"
                          }
                        ],
                        "id": 6846,
                        "name": "BinaryOperation",
                        "src": "2556:20:30"
                      },
                      {
                        "children": [
                          {
                            "attributes": {
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "=",
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 6697,
                                  "type": "uint256",
                                  "value": "ratio"
                                },
                                "id": 6847,
                                "name": "Identifier",
                                "src": "2578:5:30"
                              },
                              {
                                "attributes": {
                                  "commonType": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": ">>",
                                  "type": "uint256"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "isConstant": false,
                                      "isInlineArray": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "type": "uint256"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "commonType": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          },
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "operator": "*",
                                          "type": "uint256"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 6697,
                                              "type": "uint256",
                                              "value": "ratio"
                                            },
                                            "id": 6848,
                                            "name": "Identifier",
                                            "src": "2587:5:30"
                                          },
                                          {
                                            "attributes": {
                                              "hexvalue": "30786633333932623038323262373030303539343063376133393865346237306633",
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "lValueRequested": false,
                                              "token": "number",
                                              "type": "int_const 3232...(31 digits omitted)...8739",
                                              "value": "0xf3392b0822b70005940c7a398e4b70f3"
                                            },
                                            "id": 6849,
                                            "name": "Literal",
                                            "src": "2595:34:30"
                                          }
                                        ],
                                        "id": 6850,
                                        "name": "BinaryOperation",
                                        "src": "2587:42:30"
                                      }
                                    ],
                                    "id": 6851,
                                    "name": "TupleExpression",
                                    "src": "2586:44:30"
                                  },
                                  {
                                    "attributes": {
                                      "hexvalue": "313238",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "token": "number",
                                      "type": "int_const 128",
                                      "value": "128"
                                    },
                                    "id": 6852,
                                    "name": "Literal",
                                    "src": "2634:3:30"
                                  }
                                ],
                                "id": 6853,
                                "name": "BinaryOperation",
                                "src": "2586:51:30"
                              }
                            ],
                            "id": 6854,
                            "name": "Assignment",
                            "src": "2578:59:30"
                          }
                        ],
                        "id": 6855,
                        "name": "ExpressionStatement",
                        "src": "2578:59:30"
                      }
                    ],
                    "id": 6856,
                    "name": "IfStatement",
                    "src": "2552:85:30"
                  },
                  {
                    "attributes": {},
                    "children": [
                      {
                        "attributes": {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "!=",
                          "type": "bool"
                        },
                        "children": [
                          {
                            "attributes": {
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "&",
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 6665,
                                  "type": "uint256",
                                  "value": "absTick"
                                },
                                "id": 6857,
                                "name": "Identifier",
                                "src": "2651:7:30"
                              },
                              {
                                "attributes": {
                                  "hexvalue": "3078383030",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "token": "number",
                                  "type": "int_const 2048",
                                  "value": "0x800"
                                },
                                "id": 6858,
                                "name": "Literal",
                                "src": "2661:5:30"
                              }
                            ],
                            "id": 6859,
                            "name": "BinaryOperation",
                            "src": "2651:15:30"
                          },
                          {
                            "attributes": {
                              "hexvalue": "30",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "token": "number",
                              "type": "int_const 0",
                              "value": "0"
                            },
                            "id": 6860,
                            "name": "Literal",
                            "src": "2670:1:30"
                          }
                        ],
                        "id": 6861,
                        "name": "BinaryOperation",
                        "src": "2651:20:30"
                      },
                      {
                        "children": [
                          {
                            "attributes": {
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "=",
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 6697,
                                  "type": "uint256",
                                  "value": "ratio"
                                },
                                "id": 6862,
                                "name": "Identifier",
                                "src": "2673:5:30"
                              },
                              {
                                "attributes": {
                                  "commonType": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": ">>",
                                  "type": "uint256"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "isConstant": false,
                                      "isInlineArray": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "type": "uint256"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "commonType": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          },
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "operator": "*",
                                          "type": "uint256"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 6697,
                                              "type": "uint256",
                                              "value": "ratio"
                                            },
                                            "id": 6863,
                                            "name": "Identifier",
                                            "src": "2682:5:30"
                                          },
                                          {
                                            "attributes": {
                                              "hexvalue": "30786537313539343735613263323962373434336232396337666136653838396439",
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "lValueRequested": false,
                                              "token": "number",
                                              "type": "int_const 3071...(31 digits omitted)...3929",
                                              "value": "0xe7159475a2c29b7443b29c7fa6e889d9"
                                            },
                                            "id": 6864,
                                            "name": "Literal",
                                            "src": "2690:34:30"
                                          }
                                        ],
                                        "id": 6865,
                                        "name": "BinaryOperation",
                                        "src": "2682:42:30"
                                      }
                                    ],
                                    "id": 6866,
                                    "name": "TupleExpression",
                                    "src": "2681:44:30"
                                  },
                                  {
                                    "attributes": {
                                      "hexvalue": "313238",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "token": "number",
                                      "type": "int_const 128",
                                      "value": "128"
                                    },
                                    "id": 6867,
                                    "name": "Literal",
                                    "src": "2729:3:30"
                                  }
                                ],
                                "id": 6868,
                                "name": "BinaryOperation",
                                "src": "2681:51:30"
                              }
                            ],
                            "id": 6869,
                            "name": "Assignment",
                            "src": "2673:59:30"
                          }
                        ],
                        "id": 6870,
                        "name": "ExpressionStatement",
                        "src": "2673:59:30"
                      }
                    ],
                    "id": 6871,
                    "name": "IfStatement",
                    "src": "2647:85:30"
                  },
                  {
                    "attributes": {},
                    "children": [
                      {
                        "attributes": {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "!=",
                          "type": "bool"
                        },
                        "children": [
                          {
                            "attributes": {
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "&",
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 6665,
                                  "type": "uint256",
                                  "value": "absTick"
                                },
                                "id": 6872,
                                "name": "Identifier",
                                "src": "2746:7:30"
                              },
                              {
                                "attributes": {
                                  "hexvalue": "307831303030",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "token": "number",
                                  "type": "int_const 4096",
                                  "value": "0x1000"
                                },
                                "id": 6873,
                                "name": "Literal",
                                "src": "2756:6:30"
                              }
                            ],
                            "id": 6874,
                            "name": "BinaryOperation",
                            "src": "2746:16:30"
                          },
                          {
                            "attributes": {
                              "hexvalue": "30",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "token": "number",
                              "type": "int_const 0",
                              "value": "0"
                            },
                            "id": 6875,
                            "name": "Literal",
                            "src": "2766:1:30"
                          }
                        ],
                        "id": 6876,
                        "name": "BinaryOperation",
                        "src": "2746:21:30"
                      },
                      {
                        "children": [
                          {
                            "attributes": {
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "=",
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 6697,
                                  "type": "uint256",
                                  "value": "ratio"
                                },
                                "id": 6877,
                                "name": "Identifier",
                                "src": "2769:5:30"
                              },
                              {
                                "attributes": {
                                  "commonType": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": ">>",
                                  "type": "uint256"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "isConstant": false,
                                      "isInlineArray": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "type": "uint256"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "commonType": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          },
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "operator": "*",
                                          "type": "uint256"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 6697,
                                              "type": "uint256",
                                              "value": "ratio"
                                            },
                                            "id": 6878,
                                            "name": "Identifier",
                                            "src": "2778:5:30"
                                          },
                                          {
                                            "attributes": {
                                              "hexvalue": "30786430393766336264666432303232623838343561643866373932616135383235",
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "lValueRequested": false,
                                              "token": "number",
                                              "type": "int_const 2772...(31 digits omitted)...5045",
                                              "value": "0xd097f3bdfd2022b8845ad8f792aa5825"
                                            },
                                            "id": 6879,
                                            "name": "Literal",
                                            "src": "2786:34:30"
                                          }
                                        ],
                                        "id": 6880,
                                        "name": "BinaryOperation",
                                        "src": "2778:42:30"
                                      }
                                    ],
                                    "id": 6881,
                                    "name": "TupleExpression",
                                    "src": "2777:44:30"
                                  },
                                  {
                                    "attributes": {
                                      "hexvalue": "313238",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "token": "number",
                                      "type": "int_const 128",
                                      "value": "128"
                                    },
                                    "id": 6882,
                                    "name": "Literal",
                                    "src": "2825:3:30"
                                  }
                                ],
                                "id": 6883,
                                "name": "BinaryOperation",
                                "src": "2777:51:30"
                              }
                            ],
                            "id": 6884,
                            "name": "Assignment",
                            "src": "2769:59:30"
                          }
                        ],
                        "id": 6885,
                        "name": "ExpressionStatement",
                        "src": "2769:59:30"
                      }
                    ],
                    "id": 6886,
                    "name": "IfStatement",
                    "src": "2742:86:30"
                  },
                  {
                    "attributes": {},
                    "children": [
                      {
                        "attributes": {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "!=",
                          "type": "bool"
                        },
                        "children": [
                          {
                            "attributes": {
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "&",
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 6665,
                                  "type": "uint256",
                                  "value": "absTick"
                                },
                                "id": 6887,
                                "name": "Identifier",
                                "src": "2842:7:30"
                              },
                              {
                                "attributes": {
                                  "hexvalue": "307832303030",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "token": "number",
                                  "type": "int_const 8192",
                                  "value": "0x2000"
                                },
                                "id": 6888,
                                "name": "Literal",
                                "src": "2852:6:30"
                              }
                            ],
                            "id": 6889,
                            "name": "BinaryOperation",
                            "src": "2842:16:30"
                          },
                          {
                            "attributes": {
                              "hexvalue": "30",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "token": "number",
                              "type": "int_const 0",
                              "value": "0"
                            },
                            "id": 6890,
                            "name": "Literal",
                            "src": "2862:1:30"
                          }
                        ],
                        "id": 6891,
                        "name": "BinaryOperation",
                        "src": "2842:21:30"
                      },
                      {
                        "children": [
                          {
                            "attributes": {
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "=",
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 6697,
                                  "type": "uint256",
                                  "value": "ratio"
                                },
                                "id": 6892,
                                "name": "Identifier",
                                "src": "2865:5:30"
                              },
                              {
                                "attributes": {
                                  "commonType": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": ">>",
                                  "type": "uint256"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "isConstant": false,
                                      "isInlineArray": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "type": "uint256"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "commonType": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          },
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "operator": "*",
                                          "type": "uint256"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 6697,
                                              "type": "uint256",
                                              "value": "ratio"
                                            },
                                            "id": 6893,
                                            "name": "Identifier",
                                            "src": "2874:5:30"
                                          },
                                          {
                                            "attributes": {
                                              "hexvalue": "30786139663734363436326438373066646638613635646331663930653036316535",
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "lValueRequested": false,
                                              "token": "number",
                                              "type": "int_const 2259...(31 digits omitted)...1333",
                                              "value": "0xa9f746462d870fdf8a65dc1f90e061e5"
                                            },
                                            "id": 6894,
                                            "name": "Literal",
                                            "src": "2882:34:30"
                                          }
                                        ],
                                        "id": 6895,
                                        "name": "BinaryOperation",
                                        "src": "2874:42:30"
                                      }
                                    ],
                                    "id": 6896,
                                    "name": "TupleExpression",
                                    "src": "2873:44:30"
                                  },
                                  {
                                    "attributes": {
                                      "hexvalue": "313238",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "token": "number",
                                      "type": "int_const 128",
                                      "value": "128"
                                    },
                                    "id": 6897,
                                    "name": "Literal",
                                    "src": "2921:3:30"
                                  }
                                ],
                                "id": 6898,
                                "name": "BinaryOperation",
                                "src": "2873:51:30"
                              }
                            ],
                            "id": 6899,
                            "name": "Assignment",
                            "src": "2865:59:30"
                          }
                        ],
                        "id": 6900,
                        "name": "ExpressionStatement",
                        "src": "2865:59:30"
                      }
                    ],
                    "id": 6901,
                    "name": "IfStatement",
                    "src": "2838:86:30"
                  },
                  {
                    "attributes": {},
                    "children": [
                      {
                        "attributes": {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "!=",
                          "type": "bool"
                        },
                        "children": [
                          {
                            "attributes": {
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "&",
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 6665,
                                  "type": "uint256",
                                  "value": "absTick"
                                },
                                "id": 6902,
                                "name": "Identifier",
                                "src": "2938:7:30"
                              },
                              {
                                "attributes": {
                                  "hexvalue": "307834303030",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "token": "number",
                                  "type": "int_const 16384",
                                  "value": "0x4000"
                                },
                                "id": 6903,
                                "name": "Literal",
                                "src": "2948:6:30"
                              }
                            ],
                            "id": 6904,
                            "name": "BinaryOperation",
                            "src": "2938:16:30"
                          },
                          {
                            "attributes": {
                              "hexvalue": "30",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "token": "number",
                              "type": "int_const 0",
                              "value": "0"
                            },
                            "id": 6905,
                            "name": "Literal",
                            "src": "2958:1:30"
                          }
                        ],
                        "id": 6906,
                        "name": "BinaryOperation",
                        "src": "2938:21:30"
                      },
                      {
                        "children": [
                          {
                            "attributes": {
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "=",
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 6697,
                                  "type": "uint256",
                                  "value": "ratio"
                                },
                                "id": 6907,
                                "name": "Identifier",
                                "src": "2961:5:30"
                              },
                              {
                                "attributes": {
                                  "commonType": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": ">>",
                                  "type": "uint256"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "isConstant": false,
                                      "isInlineArray": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "type": "uint256"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "commonType": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          },
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "operator": "*",
                                          "type": "uint256"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 6697,
                                              "type": "uint256",
                                              "value": "ratio"
                                            },
                                            "id": 6908,
                                            "name": "Identifier",
                                            "src": "2970:5:30"
                                          },
                                          {
                                            "attributes": {
                                              "hexvalue": "30783730643836396131353664326131623839306262336466363262616633326637",
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "lValueRequested": false,
                                              "token": "number",
                                              "type": "int_const 1499...(31 digits omitted)...5943",
                                              "value": "0x70d869a156d2a1b890bb3df62baf32f7"
                                            },
                                            "id": 6909,
                                            "name": "Literal",
                                            "src": "2978:34:30"
                                          }
                                        ],
                                        "id": 6910,
                                        "name": "BinaryOperation",
                                        "src": "2970:42:30"
                                      }
                                    ],
                                    "id": 6911,
                                    "name": "TupleExpression",
                                    "src": "2969:44:30"
                                  },
                                  {
                                    "attributes": {
                                      "hexvalue": "313238",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "token": "number",
                                      "type": "int_const 128",
                                      "value": "128"
                                    },
                                    "id": 6912,
                                    "name": "Literal",
                                    "src": "3017:3:30"
                                  }
                                ],
                                "id": 6913,
                                "name": "BinaryOperation",
                                "src": "2969:51:30"
                              }
                            ],
                            "id": 6914,
                            "name": "Assignment",
                            "src": "2961:59:30"
                          }
                        ],
                        "id": 6915,
                        "name": "ExpressionStatement",
                        "src": "2961:59:30"
                      }
                    ],
                    "id": 6916,
                    "name": "IfStatement",
                    "src": "2934:86:30"
                  },
                  {
                    "attributes": {},
                    "children": [
                      {
                        "attributes": {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "!=",
                          "type": "bool"
                        },
                        "children": [
                          {
                            "attributes": {
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "&",
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 6665,
                                  "type": "uint256",
                                  "value": "absTick"
                                },
                                "id": 6917,
                                "name": "Identifier",
                                "src": "3034:7:30"
                              },
                              {
                                "attributes": {
                                  "hexvalue": "307838303030",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "token": "number",
                                  "type": "int_const 32768",
                                  "value": "0x8000"
                                },
                                "id": 6918,
                                "name": "Literal",
                                "src": "3044:6:30"
                              }
                            ],
                            "id": 6919,
                            "name": "BinaryOperation",
                            "src": "3034:16:30"
                          },
                          {
                            "attributes": {
                              "hexvalue": "30",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "token": "number",
                              "type": "int_const 0",
                              "value": "0"
                            },
                            "id": 6920,
                            "name": "Literal",
                            "src": "3054:1:30"
                          }
                        ],
                        "id": 6921,
                        "name": "BinaryOperation",
                        "src": "3034:21:30"
                      },
                      {
                        "children": [
                          {
                            "attributes": {
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "=",
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 6697,
                                  "type": "uint256",
                                  "value": "ratio"
                                },
                                "id": 6922,
                                "name": "Identifier",
                                "src": "3057:5:30"
                              },
                              {
                                "attributes": {
                                  "commonType": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": ">>",
                                  "type": "uint256"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "isConstant": false,
                                      "isInlineArray": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "type": "uint256"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "commonType": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          },
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "operator": "*",
                                          "type": "uint256"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 6697,
                                              "type": "uint256",
                                              "value": "ratio"
                                            },
                                            "id": 6923,
                                            "name": "Identifier",
                                            "src": "3066:5:30"
                                          },
                                          {
                                            "attributes": {
                                              "hexvalue": "30783331626531333566393764303866643938313233313530353534326663666136",
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "lValueRequested": false,
                                              "token": "number",
                                              "type": "int_const 6611...(30 digits omitted)...7926",
                                              "value": "0x31be135f97d08fd981231505542fcfa6"
                                            },
                                            "id": 6924,
                                            "name": "Literal",
                                            "src": "3074:34:30"
                                          }
                                        ],
                                        "id": 6925,
                                        "name": "BinaryOperation",
                                        "src": "3066:42:30"
                                      }
                                    ],
                                    "id": 6926,
                                    "name": "TupleExpression",
                                    "src": "3065:44:30"
                                  },
                                  {
                                    "attributes": {
                                      "hexvalue": "313238",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "token": "number",
                                      "type": "int_const 128",
                                      "value": "128"
                                    },
                                    "id": 6927,
                                    "name": "Literal",
                                    "src": "3113:3:30"
                                  }
                                ],
                                "id": 6928,
                                "name": "BinaryOperation",
                                "src": "3065:51:30"
                              }
                            ],
                            "id": 6929,
                            "name": "Assignment",
                            "src": "3057:59:30"
                          }
                        ],
                        "id": 6930,
                        "name": "ExpressionStatement",
                        "src": "3057:59:30"
                      }
                    ],
                    "id": 6931,
                    "name": "IfStatement",
                    "src": "3030:86:30"
                  },
                  {
                    "attributes": {},
                    "children": [
                      {
                        "attributes": {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "!=",
                          "type": "bool"
                        },
                        "children": [
                          {
                            "attributes": {
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "&",
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 6665,
                                  "type": "uint256",
                                  "value": "absTick"
                                },
                                "id": 6932,
                                "name": "Identifier",
                                "src": "3130:7:30"
                              },
                              {
                                "attributes": {
                                  "hexvalue": "30783130303030",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "token": "number",
                                  "type": "int_const 65536",
                                  "value": "0x10000"
                                },
                                "id": 6933,
                                "name": "Literal",
                                "src": "3140:7:30"
                              }
                            ],
                            "id": 6934,
                            "name": "BinaryOperation",
                            "src": "3130:17:30"
                          },
                          {
                            "attributes": {
                              "hexvalue": "30",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "token": "number",
                              "type": "int_const 0",
                              "value": "0"
                            },
                            "id": 6935,
                            "name": "Literal",
                            "src": "3151:1:30"
                          }
                        ],
                        "id": 6936,
                        "name": "BinaryOperation",
                        "src": "3130:22:30"
                      },
                      {
                        "children": [
                          {
                            "attributes": {
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "=",
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 6697,
                                  "type": "uint256",
                                  "value": "ratio"
                                },
                                "id": 6937,
                                "name": "Identifier",
                                "src": "3154:5:30"
                              },
                              {
                                "attributes": {
                                  "commonType": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": ">>",
                                  "type": "uint256"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "isConstant": false,
                                      "isInlineArray": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "type": "uint256"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "commonType": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          },
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "operator": "*",
                                          "type": "uint256"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 6697,
                                              "type": "uint256",
                                              "value": "ratio"
                                            },
                                            "id": 6938,
                                            "name": "Identifier",
                                            "src": "3163:5:30"
                                          },
                                          {
                                            "attributes": {
                                              "hexvalue": "307839616135303862356237613834653163363737646535346633653939626339",
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "lValueRequested": false,
                                              "token": "number",
                                              "type": "int_const 1284...(30 digits omitted)...8313",
                                              "value": "0x9aa508b5b7a84e1c677de54f3e99bc9"
                                            },
                                            "id": 6939,
                                            "name": "Literal",
                                            "src": "3171:33:30"
                                          }
                                        ],
                                        "id": 6940,
                                        "name": "BinaryOperation",
                                        "src": "3163:41:30"
                                      }
                                    ],
                                    "id": 6941,
                                    "name": "TupleExpression",
                                    "src": "3162:43:30"
                                  },
                                  {
                                    "attributes": {
                                      "hexvalue": "313238",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "token": "number",
                                      "type": "int_const 128",
                                      "value": "128"
                                    },
                                    "id": 6942,
                                    "name": "Literal",
                                    "src": "3209:3:30"
                                  }
                                ],
                                "id": 6943,
                                "name": "BinaryOperation",
                                "src": "3162:50:30"
                              }
                            ],
                            "id": 6944,
                            "name": "Assignment",
                            "src": "3154:58:30"
                          }
                        ],
                        "id": 6945,
                        "name": "ExpressionStatement",
                        "src": "3154:58:30"
                      }
                    ],
                    "id": 6946,
                    "name": "IfStatement",
                    "src": "3126:86:30"
                  },
                  {
                    "attributes": {},
                    "children": [
                      {
                        "attributes": {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "!=",
                          "type": "bool"
                        },
                        "children": [
                          {
                            "attributes": {
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "&",
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 6665,
                                  "type": "uint256",
                                  "value": "absTick"
                                },
                                "id": 6947,
                                "name": "Identifier",
                                "src": "3226:7:30"
                              },
                              {
                                "attributes": {
                                  "hexvalue": "30783230303030",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "token": "number",
                                  "type": "int_const 131072",
                                  "value": "0x20000"
                                },
                                "id": 6948,
                                "name": "Literal",
                                "src": "3236:7:30"
                              }
                            ],
                            "id": 6949,
                            "name": "BinaryOperation",
                            "src": "3226:17:30"
                          },
                          {
                            "attributes": {
                              "hexvalue": "30",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "token": "number",
                              "type": "int_const 0",
                              "value": "0"
                            },
                            "id": 6950,
                            "name": "Literal",
                            "src": "3247:1:30"
                          }
                        ],
                        "id": 6951,
                        "name": "BinaryOperation",
                        "src": "3226:22:30"
                      },
                      {
                        "children": [
                          {
                            "attributes": {
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "=",
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 6697,
                                  "type": "uint256",
                                  "value": "ratio"
                                },
                                "id": 6952,
                                "name": "Identifier",
                                "src": "3250:5:30"
                              },
                              {
                                "attributes": {
                                  "commonType": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": ">>",
                                  "type": "uint256"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "isConstant": false,
                                      "isInlineArray": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "type": "uint256"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "commonType": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          },
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "operator": "*",
                                          "type": "uint256"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 6697,
                                              "type": "uint256",
                                              "value": "ratio"
                                            },
                                            "id": 6953,
                                            "name": "Identifier",
                                            "src": "3259:5:30"
                                          },
                                          {
                                            "attributes": {
                                              "hexvalue": "3078356436616638646564623831313936363939633332393232356565363034",
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "lValueRequested": false,
                                              "token": "number",
                                              "type": "int_const 4850...(28 digits omitted)...4020",
                                              "value": "0x5d6af8dedb81196699c329225ee604"
                                            },
                                            "id": 6954,
                                            "name": "Literal",
                                            "src": "3267:32:30"
                                          }
                                        ],
                                        "id": 6955,
                                        "name": "BinaryOperation",
                                        "src": "3259:40:30"
                                      }
                                    ],
                                    "id": 6956,
                                    "name": "TupleExpression",
                                    "src": "3258:42:30"
                                  },
                                  {
                                    "attributes": {
                                      "hexvalue": "313238",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "token": "number",
                                      "type": "int_const 128",
                                      "value": "128"
                                    },
                                    "id": 6957,
                                    "name": "Literal",
                                    "src": "3304:3:30"
                                  }
                                ],
                                "id": 6958,
                                "name": "BinaryOperation",
                                "src": "3258:49:30"
                              }
                            ],
                            "id": 6959,
                            "name": "Assignment",
                            "src": "3250:57:30"
                          }
                        ],
                        "id": 6960,
                        "name": "ExpressionStatement",
                        "src": "3250:57:30"
                      }
                    ],
                    "id": 6961,
                    "name": "IfStatement",
                    "src": "3222:85:30"
                  },
                  {
                    "attributes": {},
                    "children": [
                      {
                        "attributes": {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "!=",
                          "type": "bool"
                        },
                        "children": [
                          {
                            "attributes": {
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "&",
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 6665,
                                  "type": "uint256",
                                  "value": "absTick"
                                },
                                "id": 6962,
                                "name": "Identifier",
                                "src": "3321:7:30"
                              },
                              {
                                "attributes": {
                                  "hexvalue": "30783430303030",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "token": "number",
                                  "type": "int_const 262144",
                                  "value": "0x40000"
                                },
                                "id": 6963,
                                "name": "Literal",
                                "src": "3331:7:30"
                              }
                            ],
                            "id": 6964,
                            "name": "BinaryOperation",
                            "src": "3321:17:30"
                          },
                          {
                            "attributes": {
                              "hexvalue": "30",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "token": "number",
                              "type": "int_const 0",
                              "value": "0"
                            },
                            "id": 6965,
                            "name": "Literal",
                            "src": "3342:1:30"
                          }
                        ],
                        "id": 6966,
                        "name": "BinaryOperation",
                        "src": "3321:22:30"
                      },
                      {
                        "children": [
                          {
                            "attributes": {
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "=",
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 6697,
                                  "type": "uint256",
                                  "value": "ratio"
                                },
                                "id": 6967,
                                "name": "Identifier",
                                "src": "3345:5:30"
                              },
                              {
                                "attributes": {
                                  "commonType": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": ">>",
                                  "type": "uint256"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "isConstant": false,
                                      "isInlineArray": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "type": "uint256"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "commonType": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          },
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "operator": "*",
                                          "type": "uint256"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 6697,
                                              "type": "uint256",
                                              "value": "ratio"
                                            },
                                            "id": 6968,
                                            "name": "Identifier",
                                            "src": "3354:5:30"
                                          },
                                          {
                                            "attributes": {
                                              "hexvalue": "307832323136653538346635666131656139323630343162656466653938",
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "lValueRequested": false,
                                              "token": "number",
                                              "type": "int_const 6914...(25 digits omitted)...4168",
                                              "value": "0x2216e584f5fa1ea926041bedfe98"
                                            },
                                            "id": 6969,
                                            "name": "Literal",
                                            "src": "3362:30:30"
                                          }
                                        ],
                                        "id": 6970,
                                        "name": "BinaryOperation",
                                        "src": "3354:38:30"
                                      }
                                    ],
                                    "id": 6971,
                                    "name": "TupleExpression",
                                    "src": "3353:40:30"
                                  },
                                  {
                                    "attributes": {
                                      "hexvalue": "313238",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "token": "number",
                                      "type": "int_const 128",
                                      "value": "128"
                                    },
                                    "id": 6972,
                                    "name": "Literal",
                                    "src": "3397:3:30"
                                  }
                                ],
                                "id": 6973,
                                "name": "BinaryOperation",
                                "src": "3353:47:30"
                              }
                            ],
                            "id": 6974,
                            "name": "Assignment",
                            "src": "3345:55:30"
                          }
                        ],
                        "id": 6975,
                        "name": "ExpressionStatement",
                        "src": "3345:55:30"
                      }
                    ],
                    "id": 6976,
                    "name": "IfStatement",
                    "src": "3317:83:30"
                  },
                  {
                    "attributes": {},
                    "children": [
                      {
                        "attributes": {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "!=",
                          "type": "bool"
                        },
                        "children": [
                          {
                            "attributes": {
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "&",
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 6665,
                                  "type": "uint256",
                                  "value": "absTick"
                                },
                                "id": 6977,
                                "name": "Identifier",
                                "src": "3414:7:30"
                              },
                              {
                                "attributes": {
                                  "hexvalue": "30783830303030",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "token": "number",
                                  "type": "int_const 524288",
                                  "value": "0x80000"
                                },
                                "id": 6978,
                                "name": "Literal",
                                "src": "3424:7:30"
                              }
                            ],
                            "id": 6979,
                            "name": "BinaryOperation",
                            "src": "3414:17:30"
                          },
                          {
                            "attributes": {
                              "hexvalue": "30",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "token": "number",
                              "type": "int_const 0",
                              "value": "0"
                            },
                            "id": 6980,
                            "name": "Literal",
                            "src": "3435:1:30"
                          }
                        ],
                        "id": 6981,
                        "name": "BinaryOperation",
                        "src": "3414:22:30"
                      },
                      {
                        "children": [
                          {
                            "attributes": {
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "=",
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 6697,
                                  "type": "uint256",
                                  "value": "ratio"
                                },
                                "id": 6982,
                                "name": "Identifier",
                                "src": "3438:5:30"
                              },
                              {
                                "attributes": {
                                  "commonType": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": ">>",
                                  "type": "uint256"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "isConstant": false,
                                      "isInlineArray": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "type": "uint256"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "commonType": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          },
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "operator": "*",
                                          "type": "uint256"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 6697,
                                              "type": "uint256",
                                              "value": "ratio"
                                            },
                                            "id": 6983,
                                            "name": "Identifier",
                                            "src": "3447:5:30"
                                          },
                                          {
                                            "attributes": {
                                              "hexvalue": "30783438613137303339316637646334323434346538666132",
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "lValueRequested": false,
                                              "token": "number",
                                              "type": "int_const 1404880482679654955896180642",
                                              "value": "0x48a170391f7dc42444e8fa2"
                                            },
                                            "id": 6984,
                                            "name": "Literal",
                                            "src": "3455:25:30"
                                          }
                                        ],
                                        "id": 6985,
                                        "name": "BinaryOperation",
                                        "src": "3447:33:30"
                                      }
                                    ],
                                    "id": 6986,
                                    "name": "TupleExpression",
                                    "src": "3446:35:30"
                                  },
                                  {
                                    "attributes": {
                                      "hexvalue": "313238",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "token": "number",
                                      "type": "int_const 128",
                                      "value": "128"
                                    },
                                    "id": 6987,
                                    "name": "Literal",
                                    "src": "3485:3:30"
                                  }
                                ],
                                "id": 6988,
                                "name": "BinaryOperation",
                                "src": "3446:42:30"
                              }
                            ],
                            "id": 6989,
                            "name": "Assignment",
                            "src": "3438:50:30"
                          }
                        ],
                        "id": 6990,
                        "name": "ExpressionStatement",
                        "src": "3438:50:30"
                      }
                    ],
                    "id": 6991,
                    "name": "IfStatement",
                    "src": "3410:78:30"
                  },
                  {
                    "attributes": {},
                    "children": [
                      {
                        "attributes": {
                          "commonType": {
                            "typeIdentifier": "t_int24",
                            "typeString": "int24"
                          },
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": ">",
                          "type": "bool"
                        },
                        "children": [
                          {
                            "attributes": {
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 6659,
                              "type": "int24",
                              "value": "tick"
                            },
                            "id": 6992,
                            "name": "Identifier",
                            "src": "3503:4:30"
                          },
                          {
                            "attributes": {
                              "hexvalue": "30",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "token": "number",
                              "type": "int_const 0",
                              "value": "0"
                            },
                            "id": 6993,
                            "name": "Literal",
                            "src": "3510:1:30"
                          }
                        ],
                        "id": 6994,
                        "name": "BinaryOperation",
                        "src": "3503:8:30"
                      },
                      {
                        "children": [
                          {
                            "attributes": {
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "=",
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 6697,
                                  "type": "uint256",
                                  "value": "ratio"
                                },
                                "id": 6995,
                                "name": "Identifier",
                                "src": "3513:5:30"
                              },
                              {
                                "attributes": {
                                  "commonType": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": "/",
                                  "type": "uint256"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "member_name": "max",
                                      "type": "uint256"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "isStructConstructorCall": false,
                                          "lValueRequested": false,
                                          "names": [
                                            null
                                          ],
                                          "tryCall": false,
                                          "type": "type(uint256)",
                                          "type_conversion": false
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "argumentTypes": [
                                                {
                                                  "typeIdentifier": "t_type$_t_uint256_$",
                                                  "typeString": "type(uint256)"
                                                }
                                              ],
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 4294967269,
                                              "type": "function () pure",
                                              "value": "type"
                                            },
                                            "id": 6996,
                                            "name": "Identifier",
                                            "src": "3521:4:30"
                                          },
                                          {
                                            "attributes": {
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "lValueRequested": false,
                                              "type": "type(uint256)"
                                            },
                                            "children": [
                                              {
                                                "attributes": {
                                                  "name": "uint256"
                                                },
                                                "id": 6997,
                                                "name": "ElementaryTypeName",
                                                "src": "3526:7:30"
                                              }
                                            ],
                                            "id": 6998,
                                            "name": "ElementaryTypeNameExpression",
                                            "src": "3526:7:30"
                                          }
                                        ],
                                        "id": 6999,
                                        "name": "FunctionCall",
                                        "src": "3521:13:30"
                                      }
                                    ],
                                    "id": 7000,
                                    "name": "MemberAccess",
                                    "src": "3521:17:30"
                                  },
                                  {
                                    "attributes": {
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 6697,
                                      "type": "uint256",
                                      "value": "ratio"
                                    },
                                    "id": 7001,
                                    "name": "Identifier",
                                    "src": "3541:5:30"
                                  }
                                ],
                                "id": 7002,
                                "name": "BinaryOperation",
                                "src": "3521:25:30"
                              }
                            ],
                            "id": 7003,
                            "name": "Assignment",
                            "src": "3513:33:30"
                          }
                        ],
                        "id": 7004,
                        "name": "ExpressionStatement",
                        "src": "3513:33:30"
                      }
                    ],
                    "id": 7005,
                    "name": "IfStatement",
                    "src": "3499:47:30"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "=",
                          "type": "uint160"
                        },
                        "children": [
                          {
                            "attributes": {
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 6662,
                              "type": "uint160",
                              "value": "sqrtPriceX96"
                            },
                            "id": 7006,
                            "name": "Identifier",
                            "src": "3856:12:30"
                          },
                          {
                            "attributes": {
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "isStructConstructorCall": false,
                              "lValueRequested": false,
                              "names": [
                                null
                              ],
                              "tryCall": false,
                              "type": "uint160",
                              "type_conversion": true
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  ],
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "type": "type(uint160)"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "name": "uint160"
                                    },
                                    "id": 7007,
                                    "name": "ElementaryTypeName",
                                    "src": "3871:7:30"
                                  }
                                ],
                                "id": 7008,
                                "name": "ElementaryTypeNameExpression",
                                "src": "3871:7:30"
                              },
                              {
                                "attributes": {
                                  "commonType": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": "+",
                                  "type": "uint256"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "isConstant": false,
                                      "isInlineArray": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "type": "uint256"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "commonType": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          },
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "operator": ">>",
                                          "type": "uint256"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 6697,
                                              "type": "uint256",
                                              "value": "ratio"
                                            },
                                            "id": 7009,
                                            "name": "Identifier",
                                            "src": "3880:5:30"
                                          },
                                          {
                                            "attributes": {
                                              "hexvalue": "3332",
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "lValueRequested": false,
                                              "token": "number",
                                              "type": "int_const 32",
                                              "value": "32"
                                            },
                                            "id": 7010,
                                            "name": "Literal",
                                            "src": "3889:2:30"
                                          }
                                        ],
                                        "id": 7011,
                                        "name": "BinaryOperation",
                                        "src": "3880:11:30"
                                      }
                                    ],
                                    "id": 7012,
                                    "name": "TupleExpression",
                                    "src": "3879:13:30"
                                  },
                                  {
                                    "attributes": {
                                      "isConstant": false,
                                      "isInlineArray": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "type": "uint8"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "type": "uint8"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "commonType": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                              },
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": false,
                                              "lValueRequested": false,
                                              "operator": "==",
                                              "type": "bool"
                                            },
                                            "children": [
                                              {
                                                "attributes": {
                                                  "commonType": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                  },
                                                  "isConstant": false,
                                                  "isLValue": false,
                                                  "isPure": false,
                                                  "lValueRequested": false,
                                                  "operator": "%",
                                                  "type": "uint256"
                                                },
                                                "children": [
                                                  {
                                                    "attributes": {
                                                      "overloadedDeclarations": [
                                                        null
                                                      ],
                                                      "referencedDeclaration": 6697,
                                                      "type": "uint256",
                                                      "value": "ratio"
                                                    },
                                                    "id": 7013,
                                                    "name": "Identifier",
                                                    "src": "3896:5:30"
                                                  },
                                                  {
                                                    "attributes": {
                                                      "isConstant": false,
                                                      "isInlineArray": false,
                                                      "isLValue": false,
                                                      "isPure": true,
                                                      "lValueRequested": false,
                                                      "type": "int_const 4294967296"
                                                    },
                                                    "children": [
                                                      {
                                                        "attributes": {
                                                          "commonType": {
                                                            "typeIdentifier": "t_rational_4294967296_by_1",
                                                            "typeString": "int_const 4294967296"
                                                          },
                                                          "isConstant": false,
                                                          "isLValue": false,
                                                          "isPure": true,
                                                          "lValueRequested": false,
                                                          "operator": "<<",
                                                          "type": "int_const 4294967296"
                                                        },
                                                        "children": [
                                                          {
                                                            "attributes": {
                                                              "hexvalue": "31",
                                                              "isConstant": false,
                                                              "isLValue": false,
                                                              "isPure": true,
                                                              "lValueRequested": false,
                                                              "token": "number",
                                                              "type": "int_const 1",
                                                              "value": "1"
                                                            },
                                                            "id": 7014,
                                                            "name": "Literal",
                                                            "src": "3905:1:30"
                                                          },
                                                          {
                                                            "attributes": {
                                                              "hexvalue": "3332",
                                                              "isConstant": false,
                                                              "isLValue": false,
                                                              "isPure": true,
                                                              "lValueRequested": false,
                                                              "token": "number",
                                                              "type": "int_const 32",
                                                              "value": "32"
                                                            },
                                                            "id": 7015,
                                                            "name": "Literal",
                                                            "src": "3910:2:30"
                                                          }
                                                        ],
                                                        "id": 7016,
                                                        "name": "BinaryOperation",
                                                        "src": "3905:7:30"
                                                      }
                                                    ],
                                                    "id": 7017,
                                                    "name": "TupleExpression",
                                                    "src": "3904:9:30"
                                                  }
                                                ],
                                                "id": 7018,
                                                "name": "BinaryOperation",
                                                "src": "3896:17:30"
                                              },
                                              {
                                                "attributes": {
                                                  "hexvalue": "30",
                                                  "isConstant": false,
                                                  "isLValue": false,
                                                  "isPure": true,
                                                  "lValueRequested": false,
                                                  "token": "number",
                                                  "type": "int_const 0",
                                                  "value": "0"
                                                },
                                                "id": 7019,
                                                "name": "Literal",
                                                "src": "3917:1:30"
                                              }
                                            ],
                                            "id": 7020,
                                            "name": "BinaryOperation",
                                            "src": "3896:22:30"
                                          },
                                          {
                                            "attributes": {
                                              "hexvalue": "30",
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "lValueRequested": false,
                                              "token": "number",
                                              "type": "int_const 0",
                                              "value": "0"
                                            },
                                            "id": 7021,
                                            "name": "Literal",
                                            "src": "3921:1:30"
                                          },
                                          {
                                            "attributes": {
                                              "hexvalue": "31",
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "lValueRequested": false,
                                              "token": "number",
                                              "type": "int_const 1",
                                              "value": "1"
                                            },
                                            "id": 7022,
                                            "name": "Literal",
                                            "src": "3925:1:30"
                                          }
                                        ],
                                        "id": 7023,
                                        "name": "Conditional",
                                        "src": "3896:30:30"
                                      }
                                    ],
                                    "id": 7024,
                                    "name": "TupleExpression",
                                    "src": "3895:32:30"
                                  }
                                ],
                                "id": 7025,
                                "name": "BinaryOperation",
                                "src": "3879:48:30"
                              }
                            ],
                            "id": 7026,
                            "name": "FunctionCall",
                            "src": "3871:57:30"
                          }
                        ],
                        "id": 7027,
                        "name": "Assignment",
                        "src": "3856:72:30"
                      }
                    ],
                    "id": 7028,
                    "name": "ExpressionStatement",
                    "src": "3856:72:30"
                  }
                ],
                "id": 7029,
                "name": "Block",
                "src": "1440:2495:30"
              }
            ],
            "id": 7030,
            "name": "FunctionDefinition",
            "src": "1355:2580:30"
          },
          {
            "attributes": {
              "implemented": true,
              "isConstructor": false,
              "kind": "function",
              "modifiers": [
                null
              ],
              "name": "getTickAtSqrtRatio",
              "scope": 7170,
              "stateMutability": "pure",
              "virtual": false,
              "visibility": "internal"
            },
            "children": [
              {
                "attributes": {
                  "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": 7031,
                "name": "StructuredDocumentation",
                "src": "3941:408:30"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "sqrtPriceX96",
                      "scope": 7169,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint160",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint160",
                          "type": "uint160"
                        },
                        "id": 7032,
                        "name": "ElementaryTypeName",
                        "src": "4382:7:30"
                      }
                    ],
                    "id": 7033,
                    "name": "VariableDeclaration",
                    "src": "4382:20:30"
                  }
                ],
                "id": 7034,
                "name": "ParameterList",
                "src": "4381:22:30"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "tick",
                      "scope": 7169,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "int24",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "int24",
                          "type": "int24"
                        },
                        "id": 7035,
                        "name": "ElementaryTypeName",
                        "src": "4427:5:30"
                      }
                    ],
                    "id": 7036,
                    "name": "VariableDeclaration",
                    "src": "4427:10:30"
                  }
                ],
                "id": 7037,
                "name": "ParameterList",
                "src": "4426:12:30"
              },
              {
                "children": [
                  {
                    "children": [
                      {
                        "attributes": {
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "tryCall": false,
                          "type": "tuple()",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                },
                                {
                                  "typeIdentifier": "t_stringliteral_ef22bddd350b943170a67d35191c27e310709a28c38b5762a152ff640108f5b2",
                                  "typeString": "literal_string \"R\""
                                }
                              ],
                              "overloadedDeclarations": [
                                4294967278,
                                4294967278
                              ],
                              "referencedDeclaration": 4294967278,
                              "type": "function (bool,string memory) pure",
                              "value": "require"
                            },
                            "id": 7038,
                            "name": "Identifier",
                            "src": "4548:7:30"
                          },
                          {
                            "attributes": {
                              "commonType": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "&&",
                              "type": "bool"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "commonType": {
                                    "typeIdentifier": "t_uint160",
                                    "typeString": "uint160"
                                  },
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": ">=",
                                  "type": "bool"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 7033,
                                      "type": "uint160",
                                      "value": "sqrtPriceX96"
                                    },
                                    "id": 7039,
                                    "name": "Identifier",
                                    "src": "4556:12:30"
                                  },
                                  {
                                    "attributes": {
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 6652,
                                      "type": "uint160",
                                      "value": "MIN_SQRT_RATIO"
                                    },
                                    "id": 7040,
                                    "name": "Identifier",
                                    "src": "4572:14:30"
                                  }
                                ],
                                "id": 7041,
                                "name": "BinaryOperation",
                                "src": "4556:30:30"
                              },
                              {
                                "attributes": {
                                  "commonType": {
                                    "typeIdentifier": "t_uint160",
                                    "typeString": "uint160"
                                  },
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": "<",
                                  "type": "bool"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 7033,
                                      "type": "uint160",
                                      "value": "sqrtPriceX96"
                                    },
                                    "id": 7042,
                                    "name": "Identifier",
                                    "src": "4590:12:30"
                                  },
                                  {
                                    "attributes": {
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 6656,
                                      "type": "uint160",
                                      "value": "MAX_SQRT_RATIO"
                                    },
                                    "id": 7043,
                                    "name": "Identifier",
                                    "src": "4605:14:30"
                                  }
                                ],
                                "id": 7044,
                                "name": "BinaryOperation",
                                "src": "4590:29:30"
                              }
                            ],
                            "id": 7045,
                            "name": "BinaryOperation",
                            "src": "4556:63:30"
                          },
                          {
                            "attributes": {
                              "hexvalue": "52",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "token": "string",
                              "type": "literal_string \"R\"",
                              "value": "R"
                            },
                            "id": 7046,
                            "name": "Literal",
                            "src": "4621:3:30"
                          }
                        ],
                        "id": 7047,
                        "name": "FunctionCall",
                        "src": "4548:77:30"
                      }
                    ],
                    "id": 7048,
                    "name": "ExpressionStatement",
                    "src": "4548:77:30"
                  },
                  {
                    "attributes": {
                      "assignments": [
                        7050
                      ]
                    },
                    "children": [
                      {
                        "attributes": {
                          "constant": false,
                          "mutability": "mutable",
                          "name": "ratio",
                          "scope": 7168,
                          "stateVariable": false,
                          "storageLocation": "default",
                          "type": "uint256",
                          "visibility": "internal"
                        },
                        "children": [
                          {
                            "attributes": {
                              "name": "uint256",
                              "type": "uint256"
                            },
                            "id": 7049,
                            "name": "ElementaryTypeName",
                            "src": "4635:7:30"
                          }
                        ],
                        "id": 7050,
                        "name": "VariableDeclaration",
                        "src": "4635:13:30"
                      },
                      {
                        "attributes": {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "<<",
                          "type": "uint256"
                        },
                        "children": [
                          {
                            "attributes": {
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "isStructConstructorCall": false,
                              "lValueRequested": false,
                              "names": [
                                null
                              ],
                              "tryCall": false,
                              "type": "uint256",
                              "type_conversion": true
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint160",
                                      "typeString": "uint160"
                                    }
                                  ],
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "type": "type(uint256)"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "name": "uint256"
                                    },
                                    "id": 7051,
                                    "name": "ElementaryTypeName",
                                    "src": "4651:7:30"
                                  }
                                ],
                                "id": 7052,
                                "name": "ElementaryTypeNameExpression",
                                "src": "4651:7:30"
                              },
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 7033,
                                  "type": "uint160",
                                  "value": "sqrtPriceX96"
                                },
                                "id": 7053,
                                "name": "Identifier",
                                "src": "4659:12:30"
                              }
                            ],
                            "id": 7054,
                            "name": "FunctionCall",
                            "src": "4651:21:30"
                          },
                          {
                            "attributes": {
                              "hexvalue": "3332",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "token": "number",
                              "type": "int_const 32",
                              "value": "32"
                            },
                            "id": 7055,
                            "name": "Literal",
                            "src": "4676:2:30"
                          }
                        ],
                        "id": 7056,
                        "name": "BinaryOperation",
                        "src": "4651:27:30"
                      }
                    ],
                    "id": 7057,
                    "name": "VariableDeclarationStatement",
                    "src": "4635:43:30"
                  },
                  {
                    "attributes": {
                      "assignments": [
                        7059
                      ]
                    },
                    "children": [
                      {
                        "attributes": {
                          "constant": false,
                          "mutability": "mutable",
                          "name": "r",
                          "scope": 7168,
                          "stateVariable": false,
                          "storageLocation": "default",
                          "type": "uint256",
                          "visibility": "internal"
                        },
                        "children": [
                          {
                            "attributes": {
                              "name": "uint256",
                              "type": "uint256"
                            },
                            "id": 7058,
                            "name": "ElementaryTypeName",
                            "src": "4689:7:30"
                          }
                        ],
                        "id": 7059,
                        "name": "VariableDeclaration",
                        "src": "4689:9:30"
                      },
                      {
                        "attributes": {
                          "overloadedDeclarations": [
                            null
                          ],
                          "referencedDeclaration": 7050,
                          "type": "uint256",
                          "value": "ratio"
                        },
                        "id": 7060,
                        "name": "Identifier",
                        "src": "4701:5:30"
                      }
                    ],
                    "id": 7061,
                    "name": "VariableDeclarationStatement",
                    "src": "4689:17:30"
                  },
                  {
                    "attributes": {
                      "assignments": [
                        7063
                      ]
                    },
                    "children": [
                      {
                        "attributes": {
                          "constant": false,
                          "mutability": "mutable",
                          "name": "msb",
                          "scope": 7168,
                          "stateVariable": false,
                          "storageLocation": "default",
                          "type": "uint256",
                          "visibility": "internal"
                        },
                        "children": [
                          {
                            "attributes": {
                              "name": "uint256",
                              "type": "uint256"
                            },
                            "id": 7062,
                            "name": "ElementaryTypeName",
                            "src": "4716:7:30"
                          }
                        ],
                        "id": 7063,
                        "name": "VariableDeclaration",
                        "src": "4716:11:30"
                      },
                      {
                        "attributes": {
                          "hexvalue": "30",
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "token": "number",
                          "type": "int_const 0",
                          "value": "0"
                        },
                        "id": 7064,
                        "name": "Literal",
                        "src": "4730:1:30"
                      }
                    ],
                    "id": 7065,
                    "name": "VariableDeclarationStatement",
                    "src": "4716:15:30"
                  },
                  {
                    "attributes": {
                      "evmVersion": "istanbul",
                      "externalReferences": [
                        {
                          "declaration": 7063,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "4836:3:30",
                          "valueSize": 1
                        },
                        {
                          "declaration": 7063,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "4846:3:30",
                          "valueSize": 1
                        },
                        {
                          "declaration": 7059,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "4784:1:30",
                          "valueSize": 1
                        },
                        {
                          "declaration": 7059,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "4866:1:30",
                          "valueSize": 1
                        },
                        {
                          "declaration": 7059,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "4878:1:30",
                          "valueSize": 1
                        }
                      ],
                      "operations": "{\n    let f := shl(7, gt(r, 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF))\n    msb := or(msb, f)\n    r := shr(f, r)\n}"
                    },
                    "children": [],
                    "id": 7066,
                    "name": "InlineAssembly",
                    "src": "4742:148:30"
                  },
                  {
                    "attributes": {
                      "evmVersion": "istanbul",
                      "externalReferences": [
                        {
                          "declaration": 7063,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "4977:3:30",
                          "valueSize": 1
                        },
                        {
                          "declaration": 7063,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "4987:3:30",
                          "valueSize": 1
                        },
                        {
                          "declaration": 7059,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "4941:1:30",
                          "valueSize": 1
                        },
                        {
                          "declaration": 7059,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "5007:1:30",
                          "valueSize": 1
                        },
                        {
                          "declaration": 7059,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "5019:1:30",
                          "valueSize": 1
                        }
                      ],
                      "operations": "{\n    let f := shl(6, gt(r, 0xFFFFFFFFFFFFFFFF))\n    msb := or(msb, f)\n    r := shr(f, r)\n}"
                    },
                    "children": [],
                    "id": 7067,
                    "name": "InlineAssembly",
                    "src": "4899:132:30"
                  },
                  {
                    "attributes": {
                      "evmVersion": "istanbul",
                      "externalReferences": [
                        {
                          "declaration": 7063,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "5110:3:30",
                          "valueSize": 1
                        },
                        {
                          "declaration": 7063,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "5120:3:30",
                          "valueSize": 1
                        },
                        {
                          "declaration": 7059,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "5082:1:30",
                          "valueSize": 1
                        },
                        {
                          "declaration": 7059,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "5140:1:30",
                          "valueSize": 1
                        },
                        {
                          "declaration": 7059,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "5152:1:30",
                          "valueSize": 1
                        }
                      ],
                      "operations": "{\n    let f := shl(5, gt(r, 0xFFFFFFFF))\n    msb := or(msb, f)\n    r := shr(f, r)\n}"
                    },
                    "children": [],
                    "id": 7068,
                    "name": "InlineAssembly",
                    "src": "5040:124:30"
                  },
                  {
                    "attributes": {
                      "evmVersion": "istanbul",
                      "externalReferences": [
                        {
                          "declaration": 7063,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "5239:3:30",
                          "valueSize": 1
                        },
                        {
                          "declaration": 7063,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "5249:3:30",
                          "valueSize": 1
                        },
                        {
                          "declaration": 7059,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "5215:1:30",
                          "valueSize": 1
                        },
                        {
                          "declaration": 7059,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "5269:1:30",
                          "valueSize": 1
                        },
                        {
                          "declaration": 7059,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "5281:1:30",
                          "valueSize": 1
                        }
                      ],
                      "operations": "{\n    let f := shl(4, gt(r, 0xFFFF))\n    msb := or(msb, f)\n    r := shr(f, r)\n}"
                    },
                    "children": [],
                    "id": 7069,
                    "name": "InlineAssembly",
                    "src": "5173:120:30"
                  },
                  {
                    "attributes": {
                      "evmVersion": "istanbul",
                      "externalReferences": [
                        {
                          "declaration": 7063,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "5366:3:30",
                          "valueSize": 1
                        },
                        {
                          "declaration": 7063,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "5376:3:30",
                          "valueSize": 1
                        },
                        {
                          "declaration": 7059,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "5344:1:30",
                          "valueSize": 1
                        },
                        {
                          "declaration": 7059,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "5396:1:30",
                          "valueSize": 1
                        },
                        {
                          "declaration": 7059,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "5408:1:30",
                          "valueSize": 1
                        }
                      ],
                      "operations": "{\n    let f := shl(3, gt(r, 0xFF))\n    msb := or(msb, f)\n    r := shr(f, r)\n}"
                    },
                    "children": [],
                    "id": 7070,
                    "name": "InlineAssembly",
                    "src": "5302:118:30"
                  },
                  {
                    "attributes": {
                      "evmVersion": "istanbul",
                      "externalReferences": [
                        {
                          "declaration": 7063,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "5492:3:30",
                          "valueSize": 1
                        },
                        {
                          "declaration": 7063,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "5502:3:30",
                          "valueSize": 1
                        },
                        {
                          "declaration": 7059,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "5471:1:30",
                          "valueSize": 1
                        },
                        {
                          "declaration": 7059,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "5522:1:30",
                          "valueSize": 1
                        },
                        {
                          "declaration": 7059,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "5534:1:30",
                          "valueSize": 1
                        }
                      ],
                      "operations": "{\n    let f := shl(2, gt(r, 0xF))\n    msb := or(msb, f)\n    r := shr(f, r)\n}"
                    },
                    "children": [],
                    "id": 7071,
                    "name": "InlineAssembly",
                    "src": "5429:117:30"
                  },
                  {
                    "attributes": {
                      "evmVersion": "istanbul",
                      "externalReferences": [
                        {
                          "declaration": 7063,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "5618:3:30",
                          "valueSize": 1
                        },
                        {
                          "declaration": 7063,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "5628:3:30",
                          "valueSize": 1
                        },
                        {
                          "declaration": 7059,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "5597:1:30",
                          "valueSize": 1
                        },
                        {
                          "declaration": 7059,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "5648:1:30",
                          "valueSize": 1
                        },
                        {
                          "declaration": 7059,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "5660:1:30",
                          "valueSize": 1
                        }
                      ],
                      "operations": "{\n    let f := shl(1, gt(r, 0x3))\n    msb := or(msb, f)\n    r := shr(f, r)\n}"
                    },
                    "children": [],
                    "id": 7072,
                    "name": "InlineAssembly",
                    "src": "5555:117:30"
                  },
                  {
                    "attributes": {
                      "evmVersion": "istanbul",
                      "externalReferences": [
                        {
                          "declaration": 7063,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "5736:3:30",
                          "valueSize": 1
                        },
                        {
                          "declaration": 7063,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "5746:3:30",
                          "valueSize": 1
                        },
                        {
                          "declaration": 7059,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "5716:1:30",
                          "valueSize": 1
                        }
                      ],
                      "operations": "{\n    let f := gt(r, 0x1)\n    msb := or(msb, f)\n}"
                    },
                    "children": [],
                    "id": 7073,
                    "name": "InlineAssembly",
                    "src": "5681:82:30"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": ">=",
                          "type": "bool"
                        },
                        "children": [
                          {
                            "attributes": {
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 7063,
                              "type": "uint256",
                              "value": "msb"
                            },
                            "id": 7074,
                            "name": "Identifier",
                            "src": "5777:3:30"
                          },
                          {
                            "attributes": {
                              "hexvalue": "313238",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "token": "number",
                              "type": "int_const 128",
                              "value": "128"
                            },
                            "id": 7075,
                            "name": "Literal",
                            "src": "5784:3:30"
                          }
                        ],
                        "id": 7076,
                        "name": "BinaryOperation",
                        "src": "5777:10:30"
                      },
                      {
                        "children": [
                          {
                            "attributes": {
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "=",
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 7059,
                                  "type": "uint256",
                                  "value": "r"
                                },
                                "id": 7077,
                                "name": "Identifier",
                                "src": "5789:1:30"
                              },
                              {
                                "attributes": {
                                  "commonType": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": ">>",
                                  "type": "uint256"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 7050,
                                      "type": "uint256",
                                      "value": "ratio"
                                    },
                                    "id": 7078,
                                    "name": "Identifier",
                                    "src": "5793:5:30"
                                  },
                                  {
                                    "attributes": {
                                      "isConstant": false,
                                      "isInlineArray": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "type": "uint256"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "commonType": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          },
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "operator": "-",
                                          "type": "uint256"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 7063,
                                              "type": "uint256",
                                              "value": "msb"
                                            },
                                            "id": 7079,
                                            "name": "Identifier",
                                            "src": "5803:3:30"
                                          },
                                          {
                                            "attributes": {
                                              "hexvalue": "313237",
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "lValueRequested": false,
                                              "token": "number",
                                              "type": "int_const 127",
                                              "value": "127"
                                            },
                                            "id": 7080,
                                            "name": "Literal",
                                            "src": "5809:3:30"
                                          }
                                        ],
                                        "id": 7081,
                                        "name": "BinaryOperation",
                                        "src": "5803:9:30"
                                      }
                                    ],
                                    "id": 7082,
                                    "name": "TupleExpression",
                                    "src": "5802:11:30"
                                  }
                                ],
                                "id": 7083,
                                "name": "BinaryOperation",
                                "src": "5793:20:30"
                              }
                            ],
                            "id": 7084,
                            "name": "Assignment",
                            "src": "5789:24:30"
                          }
                        ],
                        "id": 7085,
                        "name": "ExpressionStatement",
                        "src": "5789:24:30"
                      },
                      {
                        "children": [
                          {
                            "attributes": {
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "=",
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 7059,
                                  "type": "uint256",
                                  "value": "r"
                                },
                                "id": 7086,
                                "name": "Identifier",
                                "src": "5828:1:30"
                              },
                              {
                                "attributes": {
                                  "commonType": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": "<<",
                                  "type": "uint256"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 7050,
                                      "type": "uint256",
                                      "value": "ratio"
                                    },
                                    "id": 7087,
                                    "name": "Identifier",
                                    "src": "5832:5:30"
                                  },
                                  {
                                    "attributes": {
                                      "isConstant": false,
                                      "isInlineArray": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "type": "uint256"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "commonType": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          },
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "operator": "-",
                                          "type": "uint256"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "hexvalue": "313237",
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "lValueRequested": false,
                                              "token": "number",
                                              "type": "int_const 127",
                                              "value": "127"
                                            },
                                            "id": 7088,
                                            "name": "Literal",
                                            "src": "5842:3:30"
                                          },
                                          {
                                            "attributes": {
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 7063,
                                              "type": "uint256",
                                              "value": "msb"
                                            },
                                            "id": 7089,
                                            "name": "Identifier",
                                            "src": "5848:3:30"
                                          }
                                        ],
                                        "id": 7090,
                                        "name": "BinaryOperation",
                                        "src": "5842:9:30"
                                      }
                                    ],
                                    "id": 7091,
                                    "name": "TupleExpression",
                                    "src": "5841:11:30"
                                  }
                                ],
                                "id": 7092,
                                "name": "BinaryOperation",
                                "src": "5832:20:30"
                              }
                            ],
                            "id": 7093,
                            "name": "Assignment",
                            "src": "5828:24:30"
                          }
                        ],
                        "id": 7094,
                        "name": "ExpressionStatement",
                        "src": "5828:24:30"
                      }
                    ],
                    "id": 7095,
                    "name": "IfStatement",
                    "src": "5773:79:30"
                  },
                  {
                    "attributes": {
                      "assignments": [
                        7097
                      ]
                    },
                    "children": [
                      {
                        "attributes": {
                          "constant": false,
                          "mutability": "mutable",
                          "name": "log_2",
                          "scope": 7168,
                          "stateVariable": false,
                          "storageLocation": "default",
                          "type": "int256",
                          "visibility": "internal"
                        },
                        "children": [
                          {
                            "attributes": {
                              "name": "int256",
                              "type": "int256"
                            },
                            "id": 7096,
                            "name": "ElementaryTypeName",
                            "src": "5863:6:30"
                          }
                        ],
                        "id": 7097,
                        "name": "VariableDeclaration",
                        "src": "5863:12:30"
                      },
                      {
                        "attributes": {
                          "commonType": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          },
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "<<",
                          "type": "int256"
                        },
                        "children": [
                          {
                            "attributes": {
                              "isConstant": false,
                              "isInlineArray": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "type": "int256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "commonType": {
                                    "typeIdentifier": "t_int256",
                                    "typeString": "int256"
                                  },
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": "-",
                                  "type": "int256"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "isStructConstructorCall": false,
                                      "lValueRequested": false,
                                      "names": [
                                        null
                                      ],
                                      "tryCall": false,
                                      "type": "int256",
                                      "type_conversion": true
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_uint256",
                                              "typeString": "uint256"
                                            }
                                          ],
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "type": "type(int256)"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "name": "int256"
                                            },
                                            "id": 7098,
                                            "name": "ElementaryTypeName",
                                            "src": "5879:6:30"
                                          }
                                        ],
                                        "id": 7099,
                                        "name": "ElementaryTypeNameExpression",
                                        "src": "5879:6:30"
                                      },
                                      {
                                        "attributes": {
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 7063,
                                          "type": "uint256",
                                          "value": "msb"
                                        },
                                        "id": 7100,
                                        "name": "Identifier",
                                        "src": "5886:3:30"
                                      }
                                    ],
                                    "id": 7101,
                                    "name": "FunctionCall",
                                    "src": "5879:11:30"
                                  },
                                  {
                                    "attributes": {
                                      "hexvalue": "313238",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "token": "number",
                                      "type": "int_const 128",
                                      "value": "128"
                                    },
                                    "id": 7102,
                                    "name": "Literal",
                                    "src": "5893:3:30"
                                  }
                                ],
                                "id": 7103,
                                "name": "BinaryOperation",
                                "src": "5879:17:30"
                              }
                            ],
                            "id": 7104,
                            "name": "TupleExpression",
                            "src": "5878:19:30"
                          },
                          {
                            "attributes": {
                              "hexvalue": "3634",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "token": "number",
                              "type": "int_const 64",
                              "value": "64"
                            },
                            "id": 7105,
                            "name": "Literal",
                            "src": "5901:2:30"
                          }
                        ],
                        "id": 7106,
                        "name": "BinaryOperation",
                        "src": "5878:25:30"
                      }
                    ],
                    "id": 7107,
                    "name": "VariableDeclarationStatement",
                    "src": "5863:40:30"
                  },
                  {
                    "attributes": {
                      "evmVersion": "istanbul",
                      "externalReferences": [
                        {
                          "declaration": 7097,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "6007:5:30",
                          "valueSize": 1
                        },
                        {
                          "declaration": 7097,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "6019:5:30",
                          "valueSize": 1
                        },
                        {
                          "declaration": 7059,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "5937:1:30",
                          "valueSize": 1
                        },
                        {
                          "declaration": 7059,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "5955:1:30",
                          "valueSize": 1
                        },
                        {
                          "declaration": 7059,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "5958:1:30",
                          "valueSize": 1
                        },
                        {
                          "declaration": 7059,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "5992:1:30",
                          "valueSize": 1
                        },
                        {
                          "declaration": 7059,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "6050:1:30",
                          "valueSize": 1
                        },
                        {
                          "declaration": 7059,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "6062:1:30",
                          "valueSize": 1
                        }
                      ],
                      "operations": "{\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}"
                    },
                    "children": [],
                    "id": 7108,
                    "name": "InlineAssembly",
                    "src": "5914:160:30"
                  },
                  {
                    "attributes": {
                      "evmVersion": "istanbul",
                      "externalReferences": [
                        {
                          "declaration": 7097,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "6176:5:30",
                          "valueSize": 1
                        },
                        {
                          "declaration": 7097,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "6188:5:30",
                          "valueSize": 1
                        },
                        {
                          "declaration": 7059,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "6106:1:30",
                          "valueSize": 1
                        },
                        {
                          "declaration": 7059,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "6124:1:30",
                          "valueSize": 1
                        },
                        {
                          "declaration": 7059,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "6127:1:30",
                          "valueSize": 1
                        },
                        {
                          "declaration": 7059,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "6161:1:30",
                          "valueSize": 1
                        },
                        {
                          "declaration": 7059,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "6219:1:30",
                          "valueSize": 1
                        },
                        {
                          "declaration": 7059,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "6231:1:30",
                          "valueSize": 1
                        }
                      ],
                      "operations": "{\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}"
                    },
                    "children": [],
                    "id": 7109,
                    "name": "InlineAssembly",
                    "src": "6083:160:30"
                  },
                  {
                    "attributes": {
                      "evmVersion": "istanbul",
                      "externalReferences": [
                        {
                          "declaration": 7097,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "6345:5:30",
                          "valueSize": 1
                        },
                        {
                          "declaration": 7097,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "6357:5:30",
                          "valueSize": 1
                        },
                        {
                          "declaration": 7059,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "6275:1:30",
                          "valueSize": 1
                        },
                        {
                          "declaration": 7059,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "6293:1:30",
                          "valueSize": 1
                        },
                        {
                          "declaration": 7059,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "6296:1:30",
                          "valueSize": 1
                        },
                        {
                          "declaration": 7059,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "6330:1:30",
                          "valueSize": 1
                        },
                        {
                          "declaration": 7059,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "6388:1:30",
                          "valueSize": 1
                        },
                        {
                          "declaration": 7059,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "6400:1:30",
                          "valueSize": 1
                        }
                      ],
                      "operations": "{\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}"
                    },
                    "children": [],
                    "id": 7110,
                    "name": "InlineAssembly",
                    "src": "6252:160:30"
                  },
                  {
                    "attributes": {
                      "evmVersion": "istanbul",
                      "externalReferences": [
                        {
                          "declaration": 7097,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "6514:5:30",
                          "valueSize": 1
                        },
                        {
                          "declaration": 7097,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "6526:5:30",
                          "valueSize": 1
                        },
                        {
                          "declaration": 7059,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "6444:1:30",
                          "valueSize": 1
                        },
                        {
                          "declaration": 7059,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "6462:1:30",
                          "valueSize": 1
                        },
                        {
                          "declaration": 7059,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "6465:1:30",
                          "valueSize": 1
                        },
                        {
                          "declaration": 7059,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "6499:1:30",
                          "valueSize": 1
                        },
                        {
                          "declaration": 7059,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "6557:1:30",
                          "valueSize": 1
                        },
                        {
                          "declaration": 7059,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "6569:1:30",
                          "valueSize": 1
                        }
                      ],
                      "operations": "{\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}"
                    },
                    "children": [],
                    "id": 7111,
                    "name": "InlineAssembly",
                    "src": "6421:160:30"
                  },
                  {
                    "attributes": {
                      "evmVersion": "istanbul",
                      "externalReferences": [
                        {
                          "declaration": 7097,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "6683:5:30",
                          "valueSize": 1
                        },
                        {
                          "declaration": 7097,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "6695:5:30",
                          "valueSize": 1
                        },
                        {
                          "declaration": 7059,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "6613:1:30",
                          "valueSize": 1
                        },
                        {
                          "declaration": 7059,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "6631:1:30",
                          "valueSize": 1
                        },
                        {
                          "declaration": 7059,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "6634:1:30",
                          "valueSize": 1
                        },
                        {
                          "declaration": 7059,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "6668:1:30",
                          "valueSize": 1
                        },
                        {
                          "declaration": 7059,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "6726:1:30",
                          "valueSize": 1
                        },
                        {
                          "declaration": 7059,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "6738:1:30",
                          "valueSize": 1
                        }
                      ],
                      "operations": "{\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}"
                    },
                    "children": [],
                    "id": 7112,
                    "name": "InlineAssembly",
                    "src": "6590:160:30"
                  },
                  {
                    "attributes": {
                      "evmVersion": "istanbul",
                      "externalReferences": [
                        {
                          "declaration": 7097,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "6852:5:30",
                          "valueSize": 1
                        },
                        {
                          "declaration": 7097,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "6864:5:30",
                          "valueSize": 1
                        },
                        {
                          "declaration": 7059,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "6782:1:30",
                          "valueSize": 1
                        },
                        {
                          "declaration": 7059,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "6800:1:30",
                          "valueSize": 1
                        },
                        {
                          "declaration": 7059,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "6803:1:30",
                          "valueSize": 1
                        },
                        {
                          "declaration": 7059,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "6837:1:30",
                          "valueSize": 1
                        },
                        {
                          "declaration": 7059,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "6895:1:30",
                          "valueSize": 1
                        },
                        {
                          "declaration": 7059,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "6907:1:30",
                          "valueSize": 1
                        }
                      ],
                      "operations": "{\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}"
                    },
                    "children": [],
                    "id": 7113,
                    "name": "InlineAssembly",
                    "src": "6759:160:30"
                  },
                  {
                    "attributes": {
                      "evmVersion": "istanbul",
                      "externalReferences": [
                        {
                          "declaration": 7097,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "7021:5:30",
                          "valueSize": 1
                        },
                        {
                          "declaration": 7097,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "7033:5:30",
                          "valueSize": 1
                        },
                        {
                          "declaration": 7059,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "6951:1:30",
                          "valueSize": 1
                        },
                        {
                          "declaration": 7059,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "6969:1:30",
                          "valueSize": 1
                        },
                        {
                          "declaration": 7059,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "6972:1:30",
                          "valueSize": 1
                        },
                        {
                          "declaration": 7059,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "7006:1:30",
                          "valueSize": 1
                        },
                        {
                          "declaration": 7059,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "7064:1:30",
                          "valueSize": 1
                        },
                        {
                          "declaration": 7059,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "7076:1:30",
                          "valueSize": 1
                        }
                      ],
                      "operations": "{\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}"
                    },
                    "children": [],
                    "id": 7114,
                    "name": "InlineAssembly",
                    "src": "6928:160:30"
                  },
                  {
                    "attributes": {
                      "evmVersion": "istanbul",
                      "externalReferences": [
                        {
                          "declaration": 7097,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "7190:5:30",
                          "valueSize": 1
                        },
                        {
                          "declaration": 7097,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "7202:5:30",
                          "valueSize": 1
                        },
                        {
                          "declaration": 7059,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "7120:1:30",
                          "valueSize": 1
                        },
                        {
                          "declaration": 7059,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "7138:1:30",
                          "valueSize": 1
                        },
                        {
                          "declaration": 7059,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "7141:1:30",
                          "valueSize": 1
                        },
                        {
                          "declaration": 7059,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "7175:1:30",
                          "valueSize": 1
                        },
                        {
                          "declaration": 7059,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "7233:1:30",
                          "valueSize": 1
                        },
                        {
                          "declaration": 7059,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "7245:1:30",
                          "valueSize": 1
                        }
                      ],
                      "operations": "{\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}"
                    },
                    "children": [],
                    "id": 7115,
                    "name": "InlineAssembly",
                    "src": "7097:160:30"
                  },
                  {
                    "attributes": {
                      "evmVersion": "istanbul",
                      "externalReferences": [
                        {
                          "declaration": 7097,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "7359:5:30",
                          "valueSize": 1
                        },
                        {
                          "declaration": 7097,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "7371:5:30",
                          "valueSize": 1
                        },
                        {
                          "declaration": 7059,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "7289:1:30",
                          "valueSize": 1
                        },
                        {
                          "declaration": 7059,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "7307:1:30",
                          "valueSize": 1
                        },
                        {
                          "declaration": 7059,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "7310:1:30",
                          "valueSize": 1
                        },
                        {
                          "declaration": 7059,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "7344:1:30",
                          "valueSize": 1
                        },
                        {
                          "declaration": 7059,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "7402:1:30",
                          "valueSize": 1
                        },
                        {
                          "declaration": 7059,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "7414:1:30",
                          "valueSize": 1
                        }
                      ],
                      "operations": "{\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}"
                    },
                    "children": [],
                    "id": 7116,
                    "name": "InlineAssembly",
                    "src": "7266:160:30"
                  },
                  {
                    "attributes": {
                      "evmVersion": "istanbul",
                      "externalReferences": [
                        {
                          "declaration": 7097,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "7528:5:30",
                          "valueSize": 1
                        },
                        {
                          "declaration": 7097,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "7540:5:30",
                          "valueSize": 1
                        },
                        {
                          "declaration": 7059,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "7458:1:30",
                          "valueSize": 1
                        },
                        {
                          "declaration": 7059,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "7476:1:30",
                          "valueSize": 1
                        },
                        {
                          "declaration": 7059,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "7479:1:30",
                          "valueSize": 1
                        },
                        {
                          "declaration": 7059,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "7513:1:30",
                          "valueSize": 1
                        },
                        {
                          "declaration": 7059,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "7571:1:30",
                          "valueSize": 1
                        },
                        {
                          "declaration": 7059,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "7583:1:30",
                          "valueSize": 1
                        }
                      ],
                      "operations": "{\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}"
                    },
                    "children": [],
                    "id": 7117,
                    "name": "InlineAssembly",
                    "src": "7435:160:30"
                  },
                  {
                    "attributes": {
                      "evmVersion": "istanbul",
                      "externalReferences": [
                        {
                          "declaration": 7097,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "7697:5:30",
                          "valueSize": 1
                        },
                        {
                          "declaration": 7097,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "7709:5:30",
                          "valueSize": 1
                        },
                        {
                          "declaration": 7059,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "7627:1:30",
                          "valueSize": 1
                        },
                        {
                          "declaration": 7059,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "7645:1:30",
                          "valueSize": 1
                        },
                        {
                          "declaration": 7059,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "7648:1:30",
                          "valueSize": 1
                        },
                        {
                          "declaration": 7059,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "7682:1:30",
                          "valueSize": 1
                        },
                        {
                          "declaration": 7059,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "7740:1:30",
                          "valueSize": 1
                        },
                        {
                          "declaration": 7059,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "7752:1:30",
                          "valueSize": 1
                        }
                      ],
                      "operations": "{\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}"
                    },
                    "children": [],
                    "id": 7118,
                    "name": "InlineAssembly",
                    "src": "7604:160:30"
                  },
                  {
                    "attributes": {
                      "evmVersion": "istanbul",
                      "externalReferences": [
                        {
                          "declaration": 7097,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "7866:5:30",
                          "valueSize": 1
                        },
                        {
                          "declaration": 7097,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "7878:5:30",
                          "valueSize": 1
                        },
                        {
                          "declaration": 7059,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "7796:1:30",
                          "valueSize": 1
                        },
                        {
                          "declaration": 7059,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "7814:1:30",
                          "valueSize": 1
                        },
                        {
                          "declaration": 7059,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "7817:1:30",
                          "valueSize": 1
                        },
                        {
                          "declaration": 7059,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "7851:1:30",
                          "valueSize": 1
                        },
                        {
                          "declaration": 7059,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "7909:1:30",
                          "valueSize": 1
                        },
                        {
                          "declaration": 7059,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "7921:1:30",
                          "valueSize": 1
                        }
                      ],
                      "operations": "{\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}"
                    },
                    "children": [],
                    "id": 7119,
                    "name": "InlineAssembly",
                    "src": "7773:160:30"
                  },
                  {
                    "attributes": {
                      "evmVersion": "istanbul",
                      "externalReferences": [
                        {
                          "declaration": 7097,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "8035:5:30",
                          "valueSize": 1
                        },
                        {
                          "declaration": 7097,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "8047:5:30",
                          "valueSize": 1
                        },
                        {
                          "declaration": 7059,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "7965:1:30",
                          "valueSize": 1
                        },
                        {
                          "declaration": 7059,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "7983:1:30",
                          "valueSize": 1
                        },
                        {
                          "declaration": 7059,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "7986:1:30",
                          "valueSize": 1
                        },
                        {
                          "declaration": 7059,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "8020:1:30",
                          "valueSize": 1
                        },
                        {
                          "declaration": 7059,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "8078:1:30",
                          "valueSize": 1
                        },
                        {
                          "declaration": 7059,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "8090:1:30",
                          "valueSize": 1
                        }
                      ],
                      "operations": "{\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}"
                    },
                    "children": [],
                    "id": 7120,
                    "name": "InlineAssembly",
                    "src": "7942:160:30"
                  },
                  {
                    "attributes": {
                      "evmVersion": "istanbul",
                      "externalReferences": [
                        {
                          "declaration": 7097,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "8204:5:30",
                          "valueSize": 1
                        },
                        {
                          "declaration": 7097,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "8216:5:30",
                          "valueSize": 1
                        },
                        {
                          "declaration": 7059,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "8134:1:30",
                          "valueSize": 1
                        },
                        {
                          "declaration": 7059,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "8152:1:30",
                          "valueSize": 1
                        },
                        {
                          "declaration": 7059,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "8155:1:30",
                          "valueSize": 1
                        },
                        {
                          "declaration": 7059,
                          "isOffset": false,
                          "isSlot": false,
                          "src": "8189:1:30",
                          "valueSize": 1
                        }
                      ],
                      "operations": "{\n    r := shr(127, mul(r, r))\n    let f := shr(128, r)\n    log_2 := or(log_2, shl(50, f))\n}"
                    },
                    "children": [],
                    "id": 7121,
                    "name": "InlineAssembly",
                    "src": "8111:133:30"
                  },
                  {
                    "attributes": {
                      "assignments": [
                        7123
                      ]
                    },
                    "children": [
                      {
                        "attributes": {
                          "constant": false,
                          "mutability": "mutable",
                          "name": "log_sqrt10001",
                          "scope": 7168,
                          "stateVariable": false,
                          "storageLocation": "default",
                          "type": "int256",
                          "visibility": "internal"
                        },
                        "children": [
                          {
                            "attributes": {
                              "name": "int256",
                              "type": "int256"
                            },
                            "id": 7122,
                            "name": "ElementaryTypeName",
                            "src": "8254:6:30"
                          }
                        ],
                        "id": 7123,
                        "name": "VariableDeclaration",
                        "src": "8254:20:30"
                      },
                      {
                        "attributes": {
                          "commonType": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          },
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "*",
                          "type": "int256"
                        },
                        "children": [
                          {
                            "attributes": {
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 7097,
                              "type": "int256",
                              "value": "log_2"
                            },
                            "id": 7124,
                            "name": "Identifier",
                            "src": "8277:5:30"
                          },
                          {
                            "attributes": {
                              "hexvalue": "323535373338393538393939363033383236333437313431",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "token": "number",
                              "type": "int_const 255738958999603826347141",
                              "value": "255738958999603826347141"
                            },
                            "id": 7125,
                            "name": "Literal",
                            "src": "8285:24:30"
                          }
                        ],
                        "id": 7126,
                        "name": "BinaryOperation",
                        "src": "8277:32:30"
                      }
                    ],
                    "id": 7127,
                    "name": "VariableDeclarationStatement",
                    "src": "8254:55:30"
                  },
                  {
                    "attributes": {
                      "assignments": [
                        7129
                      ]
                    },
                    "children": [
                      {
                        "attributes": {
                          "constant": false,
                          "mutability": "mutable",
                          "name": "tickLow",
                          "scope": 7168,
                          "stateVariable": false,
                          "storageLocation": "default",
                          "type": "int24",
                          "visibility": "internal"
                        },
                        "children": [
                          {
                            "attributes": {
                              "name": "int24",
                              "type": "int24"
                            },
                            "id": 7128,
                            "name": "ElementaryTypeName",
                            "src": "8338:5:30"
                          }
                        ],
                        "id": 7129,
                        "name": "VariableDeclaration",
                        "src": "8338:13:30"
                      },
                      {
                        "attributes": {
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "tryCall": false,
                          "type": "int24",
                          "type_conversion": true
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_int256",
                                  "typeString": "int256"
                                }
                              ],
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "type": "type(int24)"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "name": "int24"
                                },
                                "id": 7130,
                                "name": "ElementaryTypeName",
                                "src": "8354:5:30"
                              }
                            ],
                            "id": 7131,
                            "name": "ElementaryTypeNameExpression",
                            "src": "8354:5:30"
                          },
                          {
                            "attributes": {
                              "commonType": {
                                "typeIdentifier": "t_int256",
                                "typeString": "int256"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": ">>",
                              "type": "int256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "isConstant": false,
                                  "isInlineArray": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "type": "int256"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "commonType": {
                                        "typeIdentifier": "t_int256",
                                        "typeString": "int256"
                                      },
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "operator": "-",
                                      "type": "int256"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 7123,
                                          "type": "int256",
                                          "value": "log_sqrt10001"
                                        },
                                        "id": 7132,
                                        "name": "Identifier",
                                        "src": "8361:13:30"
                                      },
                                      {
                                        "attributes": {
                                          "hexvalue": "33343032393932393536383039313332343138353936313430313030363630323437323130",
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "token": "number",
                                          "type": "int_const 3402...(29 digits omitted)...7210",
                                          "value": "3402992956809132418596140100660247210"
                                        },
                                        "id": 7133,
                                        "name": "Literal",
                                        "src": "8377:37:30"
                                      }
                                    ],
                                    "id": 7134,
                                    "name": "BinaryOperation",
                                    "src": "8361:53:30"
                                  }
                                ],
                                "id": 7135,
                                "name": "TupleExpression",
                                "src": "8360:55:30"
                              },
                              {
                                "attributes": {
                                  "hexvalue": "313238",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "token": "number",
                                  "type": "int_const 128",
                                  "value": "128"
                                },
                                "id": 7136,
                                "name": "Literal",
                                "src": "8419:3:30"
                              }
                            ],
                            "id": 7137,
                            "name": "BinaryOperation",
                            "src": "8360:62:30"
                          }
                        ],
                        "id": 7138,
                        "name": "FunctionCall",
                        "src": "8354:69:30"
                      }
                    ],
                    "id": 7139,
                    "name": "VariableDeclarationStatement",
                    "src": "8338:85:30"
                  },
                  {
                    "attributes": {
                      "assignments": [
                        7141
                      ]
                    },
                    "children": [
                      {
                        "attributes": {
                          "constant": false,
                          "mutability": "mutable",
                          "name": "tickHi",
                          "scope": 7168,
                          "stateVariable": false,
                          "storageLocation": "default",
                          "type": "int24",
                          "visibility": "internal"
                        },
                        "children": [
                          {
                            "attributes": {
                              "name": "int24",
                              "type": "int24"
                            },
                            "id": 7140,
                            "name": "ElementaryTypeName",
                            "src": "8433:5:30"
                          }
                        ],
                        "id": 7141,
                        "name": "VariableDeclaration",
                        "src": "8433:12:30"
                      },
                      {
                        "attributes": {
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "tryCall": false,
                          "type": "int24",
                          "type_conversion": true
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_int256",
                                  "typeString": "int256"
                                }
                              ],
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "type": "type(int24)"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "name": "int24"
                                },
                                "id": 7142,
                                "name": "ElementaryTypeName",
                                "src": "8448:5:30"
                              }
                            ],
                            "id": 7143,
                            "name": "ElementaryTypeNameExpression",
                            "src": "8448:5:30"
                          },
                          {
                            "attributes": {
                              "commonType": {
                                "typeIdentifier": "t_int256",
                                "typeString": "int256"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": ">>",
                              "type": "int256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "isConstant": false,
                                  "isInlineArray": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "type": "int256"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "commonType": {
                                        "typeIdentifier": "t_int256",
                                        "typeString": "int256"
                                      },
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "operator": "+",
                                      "type": "int256"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 7123,
                                          "type": "int256",
                                          "value": "log_sqrt10001"
                                        },
                                        "id": 7144,
                                        "name": "Identifier",
                                        "src": "8455:13:30"
                                      },
                                      {
                                        "attributes": {
                                          "hexvalue": "323931333339343634373731393839363232393037303237363231313533333938303838343935",
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "token": "number",
                                          "type": "int_const 2913...(31 digits omitted)...8495",
                                          "value": "291339464771989622907027621153398088495"
                                        },
                                        "id": 7145,
                                        "name": "Literal",
                                        "src": "8471:39:30"
                                      }
                                    ],
                                    "id": 7146,
                                    "name": "BinaryOperation",
                                    "src": "8455:55:30"
                                  }
                                ],
                                "id": 7147,
                                "name": "TupleExpression",
                                "src": "8454:57:30"
                              },
                              {
                                "attributes": {
                                  "hexvalue": "313238",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "token": "number",
                                  "type": "int_const 128",
                                  "value": "128"
                                },
                                "id": 7148,
                                "name": "Literal",
                                "src": "8515:3:30"
                              }
                            ],
                            "id": 7149,
                            "name": "BinaryOperation",
                            "src": "8454:64:30"
                          }
                        ],
                        "id": 7150,
                        "name": "FunctionCall",
                        "src": "8448:71:30"
                      }
                    ],
                    "id": 7151,
                    "name": "VariableDeclarationStatement",
                    "src": "8433:86:30"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "=",
                          "type": "int24"
                        },
                        "children": [
                          {
                            "attributes": {
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 7036,
                              "type": "int24",
                              "value": "tick"
                            },
                            "id": 7152,
                            "name": "Identifier",
                            "src": "8530:4:30"
                          },
                          {
                            "attributes": {
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "type": "int24"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "commonType": {
                                    "typeIdentifier": "t_int24",
                                    "typeString": "int24"
                                  },
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": "==",
                                  "type": "bool"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 7129,
                                      "type": "int24",
                                      "value": "tickLow"
                                    },
                                    "id": 7153,
                                    "name": "Identifier",
                                    "src": "8537:7:30"
                                  },
                                  {
                                    "attributes": {
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 7141,
                                      "type": "int24",
                                      "value": "tickHi"
                                    },
                                    "id": 7154,
                                    "name": "Identifier",
                                    "src": "8548:6:30"
                                  }
                                ],
                                "id": 7155,
                                "name": "BinaryOperation",
                                "src": "8537:17:30"
                              },
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 7129,
                                  "type": "int24",
                                  "value": "tickLow"
                                },
                                "id": 7156,
                                "name": "Identifier",
                                "src": "8557:7:30"
                              },
                              {
                                "attributes": {
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "type": "int24"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "commonType": {
                                        "typeIdentifier": "t_uint160",
                                        "typeString": "uint160"
                                      },
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "operator": "<=",
                                      "type": "bool"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "isStructConstructorCall": false,
                                          "lValueRequested": false,
                                          "names": [
                                            null
                                          ],
                                          "tryCall": false,
                                          "type": "uint160",
                                          "type_conversion": false
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "argumentTypes": [
                                                {
                                                  "typeIdentifier": "t_int24",
                                                  "typeString": "int24"
                                                }
                                              ],
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 7030,
                                              "type": "function (int24) pure returns (uint160)",
                                              "value": "getSqrtRatioAtTick"
                                            },
                                            "id": 7157,
                                            "name": "Identifier",
                                            "src": "8567:18:30"
                                          },
                                          {
                                            "attributes": {
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 7141,
                                              "type": "int24",
                                              "value": "tickHi"
                                            },
                                            "id": 7158,
                                            "name": "Identifier",
                                            "src": "8586:6:30"
                                          }
                                        ],
                                        "id": 7159,
                                        "name": "FunctionCall",
                                        "src": "8567:26:30"
                                      },
                                      {
                                        "attributes": {
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 7033,
                                          "type": "uint160",
                                          "value": "sqrtPriceX96"
                                        },
                                        "id": 7160,
                                        "name": "Identifier",
                                        "src": "8597:12:30"
                                      }
                                    ],
                                    "id": 7161,
                                    "name": "BinaryOperation",
                                    "src": "8567:42:30"
                                  },
                                  {
                                    "attributes": {
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 7141,
                                      "type": "int24",
                                      "value": "tickHi"
                                    },
                                    "id": 7162,
                                    "name": "Identifier",
                                    "src": "8612:6:30"
                                  },
                                  {
                                    "attributes": {
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 7129,
                                      "type": "int24",
                                      "value": "tickLow"
                                    },
                                    "id": 7163,
                                    "name": "Identifier",
                                    "src": "8621:7:30"
                                  }
                                ],
                                "id": 7164,
                                "name": "Conditional",
                                "src": "8567:61:30"
                              }
                            ],
                            "id": 7165,
                            "name": "Conditional",
                            "src": "8537:91:30"
                          }
                        ],
                        "id": 7166,
                        "name": "Assignment",
                        "src": "8530:98:30"
                      }
                    ],
                    "id": 7167,
                    "name": "ExpressionStatement",
                    "src": "8530:98:30"
                  }
                ],
                "id": 7168,
                "name": "Block",
                "src": "4439:4196:30"
              }
            ],
            "id": 7169,
            "name": "FunctionDefinition",
            "src": "4354:4281:30"
          }
        ],
        "id": 7170,
        "name": "ContractDefinition",
        "src": "306:8331:30"
      }
    ],
    "id": 7171,
    "name": "SourceUnit",
    "src": "45:8593:30"
  },
  "compiler": {
    "name": "solc",
    "version": "0.7.6+commit.7338295f.Emscripten.clang"
  },
  "networks": {},
  "schemaVersion": "3.4.1",
  "updatedAt": "2022-01-17T20:05:41.806Z",
  "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
  }
}