{
  "contractName": "ABDKMath64x64",
  "abi": [],
  "metadata": "{\"compiler\":{\"version\":\"0.7.6+commit.7338295f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Smart contract library of mathematical functions operating with signed 64.64-bit fixed point numbers.  Signed 64.64-bit fixed point number is basically a simple fraction whose numerator is signed 128-bit integer and denominator is 2^64.  As long as denominator is always the same, there is no need to store it, thus in Solidity signed 64.64-bit fixed point numbers are represented by int128 type holding only the numerator.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"abdk-libraries-solidity/ABDKMath64x64.sol\":\"ABDKMath64x64\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000000},\"remappings\":[]},\"sources\":{\"abdk-libraries-solidity/ABDKMath64x64.sol\":{\"keccak256\":\"0x67609bc0923563d05d3a8a7c681056f9702a92120777cb0bcbb40d0afbb4a015\",\"license\":\"BSD-4-Clause\",\"urls\":[\"bzz-raw://55e817969394d4e0201a8cd3763ad6776bc9fddc986febe9b4acf120e8b7ad0d\",\"dweb:/ipfs/QmNMve5ZjUfA8DJYic4sYTrDEAN6VyxcC7jWUTX25Wmnnp\"]}},\"version\":1}",
  "bytecode": "0x60566023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220d1cb4c0f3fad64eb5bfc79d08e599e994f24796a57e649e9779d00f3b0bf01da64736f6c63430007060033",
  "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220d1cb4c0f3fad64eb5bfc79d08e599e994f24796a57e649e9779d00f3b0bf01da64736f6c63430007060033",
  "immutableReferences": {},
  "generatedSources": [],
  "deployedGeneratedSources": [],
  "sourceMap": "686:24031:38:-:0;;;;;;;;;;;;;;;;;;;;;;;;;",
  "deployedSourceMap": "686:24031:38:-:0;;;;;;;;",
  "source": "// SPDX-License-Identifier: BSD-4-Clause\n/*\n * ABDK Math 64.64 Smart Contract Library.  Copyright © 2019 by ABDK Consulting.\n * Author: Mikhail Vladimirov <mikhail.vladimirov@gmail.com>\n */\npragma solidity ^0.5.0 || ^0.6.0 || ^0.7.0;\n\n/**\n * Smart contract library of mathematical functions operating with signed\n * 64.64-bit fixed point numbers.  Signed 64.64-bit fixed point number is\n * basically a simple fraction whose numerator is signed 128-bit integer and\n * denominator is 2^64.  As long as denominator is always the same, there is no\n * need to store it, thus in Solidity signed 64.64-bit fixed point numbers are\n * represented by int128 type holding only the numerator.\n */\nlibrary ABDKMath64x64 {\n  /*\n   * Minimum value signed 64.64-bit fixed point number may have. \n   */\n  int128 private constant MIN_64x64 = -0x80000000000000000000000000000000;\n\n  /*\n   * Maximum value signed 64.64-bit fixed point number may have. \n   */\n  int128 private constant MAX_64x64 = 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF;\n\n  /**\n   * Convert signed 256-bit integer number into signed 64.64-bit fixed point\n   * number.  Revert on overflow.\n   *\n   * @param x signed 256-bit integer number\n   * @return signed 64.64-bit fixed point number\n   */\n  function fromInt (int256 x) internal pure returns (int128) {\n    require (x >= -0x8000000000000000 && x <= 0x7FFFFFFFFFFFFFFF);\n    return int128 (x << 64);\n  }\n\n  /**\n   * Convert signed 64.64 fixed point number into signed 64-bit integer number\n   * rounding down.\n   *\n   * @param x signed 64.64-bit fixed point number\n   * @return signed 64-bit integer number\n   */\n  function toInt (int128 x) internal pure returns (int64) {\n    return int64 (x >> 64);\n  }\n\n  /**\n   * Convert unsigned 256-bit integer number into signed 64.64-bit fixed point\n   * number.  Revert on overflow.\n   *\n   * @param x unsigned 256-bit integer number\n   * @return signed 64.64-bit fixed point number\n   */\n  function fromUInt (uint256 x) internal pure returns (int128) {\n    require (x <= 0x7FFFFFFFFFFFFFFF);\n    return int128 (x << 64);\n  }\n\n  /**\n   * Convert signed 64.64 fixed point number into unsigned 64-bit integer\n   * number rounding down.  Revert on underflow.\n   *\n   * @param x signed 64.64-bit fixed point number\n   * @return unsigned 64-bit integer number\n   */\n  function toUInt (int128 x) internal pure returns (uint64) {\n    require (x >= 0);\n    return uint64 (x >> 64);\n  }\n\n  /**\n   * Convert signed 128.128 fixed point number into signed 64.64-bit fixed point\n   * number rounding down.  Revert on overflow.\n   *\n   * @param x signed 128.128-bin fixed point number\n   * @return signed 64.64-bit fixed point number\n   */\n  function from128x128 (int256 x) internal pure returns (int128) {\n    int256 result = x >> 64;\n    require (result >= MIN_64x64 && result <= MAX_64x64);\n    return int128 (result);\n  }\n\n  /**\n   * Convert signed 64.64 fixed point number into signed 128.128 fixed point\n   * number.\n   *\n   * @param x signed 64.64-bit fixed point number\n   * @return signed 128.128 fixed point number\n   */\n  function to128x128 (int128 x) internal pure returns (int256) {\n    return int256 (x) << 64;\n  }\n\n  /**\n   * Calculate x + y.  Revert on overflow.\n   *\n   * @param x signed 64.64-bit fixed point number\n   * @param y signed 64.64-bit fixed point number\n   * @return signed 64.64-bit fixed point number\n   */\n  function add (int128 x, int128 y) internal pure returns (int128) {\n    int256 result = int256(x) + y;\n    require (result >= MIN_64x64 && result <= MAX_64x64);\n    return int128 (result);\n  }\n\n  /**\n   * Calculate x - y.  Revert on overflow.\n   *\n   * @param x signed 64.64-bit fixed point number\n   * @param y signed 64.64-bit fixed point number\n   * @return signed 64.64-bit fixed point number\n   */\n  function sub (int128 x, int128 y) internal pure returns (int128) {\n    int256 result = int256(x) - y;\n    require (result >= MIN_64x64 && result <= MAX_64x64);\n    return int128 (result);\n  }\n\n  /**\n   * Calculate x * y rounding down.  Revert on overflow.\n   *\n   * @param x signed 64.64-bit fixed point number\n   * @param y signed 64.64-bit fixed point number\n   * @return signed 64.64-bit fixed point number\n   */\n  function mul (int128 x, int128 y) internal pure returns (int128) {\n    int256 result = int256(x) * y >> 64;\n    require (result >= MIN_64x64 && result <= MAX_64x64);\n    return int128 (result);\n  }\n\n  /**\n   * Calculate x * y rounding towards zero, where x is signed 64.64 fixed point\n   * number and y is signed 256-bit integer number.  Revert on overflow.\n   *\n   * @param x signed 64.64 fixed point number\n   * @param y signed 256-bit integer number\n   * @return signed 256-bit integer number\n   */\n  function muli (int128 x, int256 y) internal pure returns (int256) {\n    if (x == MIN_64x64) {\n      require (y >= -0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF &&\n        y <= 0x1000000000000000000000000000000000000000000000000);\n      return -y << 63;\n    } else {\n      bool negativeResult = false;\n      if (x < 0) {\n        x = -x;\n        negativeResult = true;\n      }\n      if (y < 0) {\n        y = -y; // We rely on overflow behavior here\n        negativeResult = !negativeResult;\n      }\n      uint256 absoluteResult = mulu (x, uint256 (y));\n      if (negativeResult) {\n        require (absoluteResult <=\n          0x8000000000000000000000000000000000000000000000000000000000000000);\n        return -int256 (absoluteResult); // We rely on overflow behavior here\n      } else {\n        require (absoluteResult <=\n          0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF);\n        return int256 (absoluteResult);\n      }\n    }\n  }\n\n  /**\n   * Calculate x * y rounding down, where x is signed 64.64 fixed point number\n   * and y is unsigned 256-bit integer number.  Revert on overflow.\n   *\n   * @param x signed 64.64 fixed point number\n   * @param y unsigned 256-bit integer number\n   * @return unsigned 256-bit integer number\n   */\n  function mulu (int128 x, uint256 y) internal pure returns (uint256) {\n    if (y == 0) return 0;\n\n    require (x >= 0);\n\n    uint256 lo = (uint256 (x) * (y & 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF)) >> 64;\n    uint256 hi = uint256 (x) * (y >> 128);\n\n    require (hi <= 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF);\n    hi <<= 64;\n\n    require (hi <=\n      0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF - lo);\n    return hi + lo;\n  }\n\n  /**\n   * Calculate x / y rounding towards zero.  Revert on overflow or when y is\n   * zero.\n   *\n   * @param x signed 64.64-bit fixed point number\n   * @param y signed 64.64-bit fixed point number\n   * @return signed 64.64-bit fixed point number\n   */\n  function div (int128 x, int128 y) internal pure returns (int128) {\n    require (y != 0);\n    int256 result = (int256 (x) << 64) / y;\n    require (result >= MIN_64x64 && result <= MAX_64x64);\n    return int128 (result);\n  }\n\n  /**\n   * Calculate x / y rounding towards zero, where x and y are signed 256-bit\n   * integer numbers.  Revert on overflow or when y is zero.\n   *\n   * @param x signed 256-bit integer number\n   * @param y signed 256-bit integer number\n   * @return signed 64.64-bit fixed point number\n   */\n  function divi (int256 x, int256 y) internal pure returns (int128) {\n    require (y != 0);\n\n    bool negativeResult = false;\n    if (x < 0) {\n      x = -x; // We rely on overflow behavior here\n      negativeResult = true;\n    }\n    if (y < 0) {\n      y = -y; // We rely on overflow behavior here\n      negativeResult = !negativeResult;\n    }\n    uint128 absoluteResult = divuu (uint256 (x), uint256 (y));\n    if (negativeResult) {\n      require (absoluteResult <= 0x80000000000000000000000000000000);\n      return -int128 (absoluteResult); // We rely on overflow behavior here\n    } else {\n      require (absoluteResult <= 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF);\n      return int128 (absoluteResult); // We rely on overflow behavior here\n    }\n  }\n\n  /**\n   * Calculate x / y rounding towards zero, where x and y are unsigned 256-bit\n   * integer numbers.  Revert on overflow or when y is zero.\n   *\n   * @param x unsigned 256-bit integer number\n   * @param y unsigned 256-bit integer number\n   * @return signed 64.64-bit fixed point number\n   */\n  function divu (uint256 x, uint256 y) internal pure returns (int128) {\n    require (y != 0);\n    uint128 result = divuu (x, y);\n    require (result <= uint128 (MAX_64x64));\n    return int128 (result);\n  }\n\n  /**\n   * Calculate -x.  Revert on overflow.\n   *\n   * @param x signed 64.64-bit fixed point number\n   * @return signed 64.64-bit fixed point number\n   */\n  function neg (int128 x) internal pure returns (int128) {\n    require (x != MIN_64x64);\n    return -x;\n  }\n\n  /**\n   * Calculate |x|.  Revert on overflow.\n   *\n   * @param x signed 64.64-bit fixed point number\n   * @return signed 64.64-bit fixed point number\n   */\n  function abs (int128 x) internal pure returns (int128) {\n    require (x != MIN_64x64);\n    return x < 0 ? -x : x;\n  }\n\n  /**\n   * Calculate 1 / x rounding towards zero.  Revert on overflow or when x is\n   * zero.\n   *\n   * @param x signed 64.64-bit fixed point number\n   * @return signed 64.64-bit fixed point number\n   */\n  function inv (int128 x) internal pure returns (int128) {\n    require (x != 0);\n    int256 result = int256 (0x100000000000000000000000000000000) / x;\n    require (result >= MIN_64x64 && result <= MAX_64x64);\n    return int128 (result);\n  }\n\n  /**\n   * Calculate arithmetics average of x and y, i.e. (x + y) / 2 rounding down.\n   *\n   * @param x signed 64.64-bit fixed point number\n   * @param y signed 64.64-bit fixed point number\n   * @return signed 64.64-bit fixed point number\n   */\n  function avg (int128 x, int128 y) internal pure returns (int128) {\n    return int128 ((int256 (x) + int256 (y)) >> 1);\n  }\n\n  /**\n   * Calculate geometric average of x and y, i.e. sqrt (x * y) rounding down.\n   * Revert on overflow or in case x * y is negative.\n   *\n   * @param x signed 64.64-bit fixed point number\n   * @param y signed 64.64-bit fixed point number\n   * @return signed 64.64-bit fixed point number\n   */\n  function gavg (int128 x, int128 y) internal pure returns (int128) {\n    int256 m = int256 (x) * int256 (y);\n    require (m >= 0);\n    require (m <\n        0x4000000000000000000000000000000000000000000000000000000000000000);\n    return int128 (sqrtu (uint256 (m)));\n  }\n\n  /**\n   * Calculate x^y assuming 0^0 is 1, where x is signed 64.64 fixed point number\n   * and y is unsigned 256-bit integer number.  Revert on overflow.\n   *\n   * @param x signed 64.64-bit fixed point number\n   * @param y uint256 value\n   * @return signed 64.64-bit fixed point number\n   */\n  function pow (int128 x, uint256 y) internal pure returns (int128) {\n    uint256 absoluteResult;\n    bool negativeResult = false;\n    if (x >= 0) {\n      absoluteResult = powu (uint256 (x) << 63, y);\n    } else {\n      // We rely on overflow behavior here\n      absoluteResult = powu (uint256 (uint128 (-x)) << 63, y);\n      negativeResult = y & 1 > 0;\n    }\n\n    absoluteResult >>= 63;\n\n    if (negativeResult) {\n      require (absoluteResult <= 0x80000000000000000000000000000000);\n      return -int128 (absoluteResult); // We rely on overflow behavior here\n    } else {\n      require (absoluteResult <= 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF);\n      return int128 (absoluteResult); // We rely on overflow behavior here\n    }\n  }\n\n  /**\n   * Calculate sqrt (x) rounding down.  Revert if x < 0.\n   *\n   * @param x signed 64.64-bit fixed point number\n   * @return signed 64.64-bit fixed point number\n   */\n  function sqrt (int128 x) internal pure returns (int128) {\n    require (x >= 0);\n    return int128 (sqrtu (uint256 (x) << 64));\n  }\n\n  /**\n   * Calculate binary logarithm of x.  Revert if x <= 0.\n   *\n   * @param x signed 64.64-bit fixed point number\n   * @return signed 64.64-bit fixed point number\n   */\n  function log_2 (int128 x) internal pure returns (int128) {\n    require (x > 0);\n\n    int256 msb = 0;\n    int256 xc = x;\n    if (xc >= 0x10000000000000000) { xc >>= 64; msb += 64; }\n    if (xc >= 0x100000000) { xc >>= 32; msb += 32; }\n    if (xc >= 0x10000) { xc >>= 16; msb += 16; }\n    if (xc >= 0x100) { xc >>= 8; msb += 8; }\n    if (xc >= 0x10) { xc >>= 4; msb += 4; }\n    if (xc >= 0x4) { xc >>= 2; msb += 2; }\n    if (xc >= 0x2) msb += 1;  // No need to shift xc anymore\n\n    int256 result = msb - 64 << 64;\n    uint256 ux = uint256 (x) << uint256 (127 - msb);\n    for (int256 bit = 0x8000000000000000; bit > 0; bit >>= 1) {\n      ux *= ux;\n      uint256 b = ux >> 255;\n      ux >>= 127 + b;\n      result += bit * int256 (b);\n    }\n\n    return int128 (result);\n  }\n\n  /**\n   * Calculate natural logarithm of x.  Revert if x <= 0.\n   *\n   * @param x signed 64.64-bit fixed point number\n   * @return signed 64.64-bit fixed point number\n   */\n  function ln (int128 x) internal pure returns (int128) {\n    require (x > 0);\n\n    return int128 (\n        uint256 (log_2 (x)) * 0xB17217F7D1CF79ABC9E3B39803F2F6AF >> 128);\n  }\n\n  /**\n   * Calculate binary exponent of x.  Revert on overflow.\n   *\n   * @param x signed 64.64-bit fixed point number\n   * @return signed 64.64-bit fixed point number\n   */\n  function exp_2 (int128 x) internal pure returns (int128) {\n    require (x < 0x400000000000000000); // Overflow\n\n    if (x < -0x400000000000000000) return 0; // Underflow\n\n    uint256 result = 0x80000000000000000000000000000000;\n\n    if (x & 0x8000000000000000 > 0)\n      result = result * 0x16A09E667F3BCC908B2FB1366EA957D3E >> 128;\n    if (x & 0x4000000000000000 > 0)\n      result = result * 0x1306FE0A31B7152DE8D5A46305C85EDEC >> 128;\n    if (x & 0x2000000000000000 > 0)\n      result = result * 0x1172B83C7D517ADCDF7C8C50EB14A791F >> 128;\n    if (x & 0x1000000000000000 > 0)\n      result = result * 0x10B5586CF9890F6298B92B71842A98363 >> 128;\n    if (x & 0x800000000000000 > 0)\n      result = result * 0x1059B0D31585743AE7C548EB68CA417FD >> 128;\n    if (x & 0x400000000000000 > 0)\n      result = result * 0x102C9A3E778060EE6F7CACA4F7A29BDE8 >> 128;\n    if (x & 0x200000000000000 > 0)\n      result = result * 0x10163DA9FB33356D84A66AE336DCDFA3F >> 128;\n    if (x & 0x100000000000000 > 0)\n      result = result * 0x100B1AFA5ABCBED6129AB13EC11DC9543 >> 128;\n    if (x & 0x80000000000000 > 0)\n      result = result * 0x10058C86DA1C09EA1FF19D294CF2F679B >> 128;\n    if (x & 0x40000000000000 > 0)\n      result = result * 0x1002C605E2E8CEC506D21BFC89A23A00F >> 128;\n    if (x & 0x20000000000000 > 0)\n      result = result * 0x100162F3904051FA128BCA9C55C31E5DF >> 128;\n    if (x & 0x10000000000000 > 0)\n      result = result * 0x1000B175EFFDC76BA38E31671CA939725 >> 128;\n    if (x & 0x8000000000000 > 0)\n      result = result * 0x100058BA01FB9F96D6CACD4B180917C3D >> 128;\n    if (x & 0x4000000000000 > 0)\n      result = result * 0x10002C5CC37DA9491D0985C348C68E7B3 >> 128;\n    if (x & 0x2000000000000 > 0)\n      result = result * 0x1000162E525EE054754457D5995292026 >> 128;\n    if (x & 0x1000000000000 > 0)\n      result = result * 0x10000B17255775C040618BF4A4ADE83FC >> 128;\n    if (x & 0x800000000000 > 0)\n      result = result * 0x1000058B91B5BC9AE2EED81E9B7D4CFAB >> 128;\n    if (x & 0x400000000000 > 0)\n      result = result * 0x100002C5C89D5EC6CA4D7C8ACC017B7C9 >> 128;\n    if (x & 0x200000000000 > 0)\n      result = result * 0x10000162E43F4F831060E02D839A9D16D >> 128;\n    if (x & 0x100000000000 > 0)\n      result = result * 0x100000B1721BCFC99D9F890EA06911763 >> 128;\n    if (x & 0x80000000000 > 0)\n      result = result * 0x10000058B90CF1E6D97F9CA14DBCC1628 >> 128;\n    if (x & 0x40000000000 > 0)\n      result = result * 0x1000002C5C863B73F016468F6BAC5CA2B >> 128;\n    if (x & 0x20000000000 > 0)\n      result = result * 0x100000162E430E5A18F6119E3C02282A5 >> 128;\n    if (x & 0x10000000000 > 0)\n      result = result * 0x1000000B1721835514B86E6D96EFD1BFE >> 128;\n    if (x & 0x8000000000 > 0)\n      result = result * 0x100000058B90C0B48C6BE5DF846C5B2EF >> 128;\n    if (x & 0x4000000000 > 0)\n      result = result * 0x10000002C5C8601CC6B9E94213C72737A >> 128;\n    if (x & 0x2000000000 > 0)\n      result = result * 0x1000000162E42FFF037DF38AA2B219F06 >> 128;\n    if (x & 0x1000000000 > 0)\n      result = result * 0x10000000B17217FBA9C739AA5819F44F9 >> 128;\n    if (x & 0x800000000 > 0)\n      result = result * 0x1000000058B90BFCDEE5ACD3C1CEDC823 >> 128;\n    if (x & 0x400000000 > 0)\n      result = result * 0x100000002C5C85FE31F35A6A30DA1BE50 >> 128;\n    if (x & 0x200000000 > 0)\n      result = result * 0x10000000162E42FF0999CE3541B9FFFCF >> 128;\n    if (x & 0x100000000 > 0)\n      result = result * 0x100000000B17217F80F4EF5AADDA45554 >> 128;\n    if (x & 0x80000000 > 0)\n      result = result * 0x10000000058B90BFBF8479BD5A81B51AD >> 128;\n    if (x & 0x40000000 > 0)\n      result = result * 0x1000000002C5C85FDF84BD62AE30A74CC >> 128;\n    if (x & 0x20000000 > 0)\n      result = result * 0x100000000162E42FEFB2FED257559BDAA >> 128;\n    if (x & 0x10000000 > 0)\n      result = result * 0x1000000000B17217F7D5A7716BBA4A9AE >> 128;\n    if (x & 0x8000000 > 0)\n      result = result * 0x100000000058B90BFBE9DDBAC5E109CCE >> 128;\n    if (x & 0x4000000 > 0)\n      result = result * 0x10000000002C5C85FDF4B15DE6F17EB0D >> 128;\n    if (x & 0x2000000 > 0)\n      result = result * 0x1000000000162E42FEFA494F1478FDE05 >> 128;\n    if (x & 0x1000000 > 0)\n      result = result * 0x10000000000B17217F7D20CF927C8E94C >> 128;\n    if (x & 0x800000 > 0)\n      result = result * 0x1000000000058B90BFBE8F71CB4E4B33D >> 128;\n    if (x & 0x400000 > 0)\n      result = result * 0x100000000002C5C85FDF477B662B26945 >> 128;\n    if (x & 0x200000 > 0)\n      result = result * 0x10000000000162E42FEFA3AE53369388C >> 128;\n    if (x & 0x100000 > 0)\n      result = result * 0x100000000000B17217F7D1D351A389D40 >> 128;\n    if (x & 0x80000 > 0)\n      result = result * 0x10000000000058B90BFBE8E8B2D3D4EDE >> 128;\n    if (x & 0x40000 > 0)\n      result = result * 0x1000000000002C5C85FDF4741BEA6E77E >> 128;\n    if (x & 0x20000 > 0)\n      result = result * 0x100000000000162E42FEFA39FE95583C2 >> 128;\n    if (x & 0x10000 > 0)\n      result = result * 0x1000000000000B17217F7D1CFB72B45E1 >> 128;\n    if (x & 0x8000 > 0)\n      result = result * 0x100000000000058B90BFBE8E7CC35C3F0 >> 128;\n    if (x & 0x4000 > 0)\n      result = result * 0x10000000000002C5C85FDF473E242EA38 >> 128;\n    if (x & 0x2000 > 0)\n      result = result * 0x1000000000000162E42FEFA39F02B772C >> 128;\n    if (x & 0x1000 > 0)\n      result = result * 0x10000000000000B17217F7D1CF7D83C1A >> 128;\n    if (x & 0x800 > 0)\n      result = result * 0x1000000000000058B90BFBE8E7BDCBE2E >> 128;\n    if (x & 0x400 > 0)\n      result = result * 0x100000000000002C5C85FDF473DEA871F >> 128;\n    if (x & 0x200 > 0)\n      result = result * 0x10000000000000162E42FEFA39EF44D91 >> 128;\n    if (x & 0x100 > 0)\n      result = result * 0x100000000000000B17217F7D1CF79E949 >> 128;\n    if (x & 0x80 > 0)\n      result = result * 0x10000000000000058B90BFBE8E7BCE544 >> 128;\n    if (x & 0x40 > 0)\n      result = result * 0x1000000000000002C5C85FDF473DE6ECA >> 128;\n    if (x & 0x20 > 0)\n      result = result * 0x100000000000000162E42FEFA39EF366F >> 128;\n    if (x & 0x10 > 0)\n      result = result * 0x1000000000000000B17217F7D1CF79AFA >> 128;\n    if (x & 0x8 > 0)\n      result = result * 0x100000000000000058B90BFBE8E7BCD6D >> 128;\n    if (x & 0x4 > 0)\n      result = result * 0x10000000000000002C5C85FDF473DE6B2 >> 128;\n    if (x & 0x2 > 0)\n      result = result * 0x1000000000000000162E42FEFA39EF358 >> 128;\n    if (x & 0x1 > 0)\n      result = result * 0x10000000000000000B17217F7D1CF79AB >> 128;\n\n    result >>= uint256 (63 - (x >> 64));\n    require (result <= uint256 (MAX_64x64));\n\n    return int128 (result);\n  }\n\n  /**\n   * Calculate natural exponent of x.  Revert on overflow.\n   *\n   * @param x signed 64.64-bit fixed point number\n   * @return signed 64.64-bit fixed point number\n   */\n  function exp (int128 x) internal pure returns (int128) {\n    require (x < 0x400000000000000000); // Overflow\n\n    if (x < -0x400000000000000000) return 0; // Underflow\n\n    return exp_2 (\n        int128 (int256 (x) * 0x171547652B82FE1777D0FFDA0D23A7D12 >> 128));\n  }\n\n  /**\n   * Calculate x / y rounding towards zero, where x and y are unsigned 256-bit\n   * integer numbers.  Revert on overflow or when y is zero.\n   *\n   * @param x unsigned 256-bit integer number\n   * @param y unsigned 256-bit integer number\n   * @return unsigned 64.64-bit fixed point number\n   */\n  function divuu (uint256 x, uint256 y) private pure returns (uint128) {\n    require (y != 0);\n\n    uint256 result;\n\n    if (x <= 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF)\n      result = (x << 64) / y;\n    else {\n      uint256 msb = 192;\n      uint256 xc = x >> 192;\n      if (xc >= 0x100000000) { xc >>= 32; msb += 32; }\n      if (xc >= 0x10000) { xc >>= 16; msb += 16; }\n      if (xc >= 0x100) { xc >>= 8; msb += 8; }\n      if (xc >= 0x10) { xc >>= 4; msb += 4; }\n      if (xc >= 0x4) { xc >>= 2; msb += 2; }\n      if (xc >= 0x2) msb += 1;  // No need to shift xc anymore\n\n      result = (x << 255 - msb) / ((y - 1 >> msb - 191) + 1);\n      require (result <= 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF);\n\n      uint256 hi = result * (y >> 128);\n      uint256 lo = result * (y & 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF);\n\n      uint256 xh = x >> 192;\n      uint256 xl = x << 64;\n\n      if (xl < lo) xh -= 1;\n      xl -= lo; // We rely on overflow behavior here\n      lo = hi << 128;\n      if (xl < lo) xh -= 1;\n      xl -= lo; // We rely on overflow behavior here\n\n      assert (xh == hi >> 128);\n\n      result += xl / y;\n    }\n\n    require (result <= 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF);\n    return uint128 (result);\n  }\n\n  /**\n   * Calculate x^y assuming 0^0 is 1, where x is unsigned 129.127 fixed point\n   * number and y is unsigned 256-bit integer number.  Revert on overflow.\n   *\n   * @param x unsigned 129.127-bit fixed point number\n   * @param y uint256 value\n   * @return unsigned 129.127-bit fixed point number\n   */\n  function powu (uint256 x, uint256 y) private pure returns (uint256) {\n    if (y == 0) return 0x80000000000000000000000000000000;\n    else if (x == 0) return 0;\n    else {\n      int256 msb = 0;\n      uint256 xc = x;\n      if (xc >= 0x100000000000000000000000000000000) { xc >>= 128; msb += 128; }\n      if (xc >= 0x10000000000000000) { xc >>= 64; msb += 64; }\n      if (xc >= 0x100000000) { xc >>= 32; msb += 32; }\n      if (xc >= 0x10000) { xc >>= 16; msb += 16; }\n      if (xc >= 0x100) { xc >>= 8; msb += 8; }\n      if (xc >= 0x10) { xc >>= 4; msb += 4; }\n      if (xc >= 0x4) { xc >>= 2; msb += 2; }\n      if (xc >= 0x2) msb += 1;  // No need to shift xc anymore\n\n      int256 xe = msb - 127;\n      if (xe > 0) x >>= uint256 (xe);\n      else x <<= uint256 (-xe);\n\n      uint256 result = 0x80000000000000000000000000000000;\n      int256 re = 0;\n\n      while (y > 0) {\n        if (y & 1 > 0) {\n          result = result * x;\n          y -= 1;\n          re += xe;\n          if (result >=\n            0x8000000000000000000000000000000000000000000000000000000000000000) {\n            result >>= 128;\n            re += 1;\n          } else result >>= 127;\n          if (re < -127) return 0; // Underflow\n          require (re < 128); // Overflow\n        } else {\n          x = x * x;\n          y >>= 1;\n          xe <<= 1;\n          if (x >=\n            0x8000000000000000000000000000000000000000000000000000000000000000) {\n            x >>= 128;\n            xe += 1;\n          } else x >>= 127;\n          if (xe < -127) return 0; // Underflow\n          require (xe < 128); // Overflow\n        }\n      }\n\n      if (re > 0) result <<= uint256 (re);\n      else if (re < 0) result >>= uint256 (-re);\n\n      return result;\n    }\n  }\n\n  /**\n   * Calculate sqrt (x) rounding down, where x is unsigned 256-bit integer\n   * number.\n   *\n   * @param x unsigned 256-bit integer number\n   * @return unsigned 128-bit integer number\n   */\n  function sqrtu (uint256 x) private pure returns (uint128) {\n    if (x == 0) return 0;\n    else {\n      uint256 xx = x;\n      uint256 r = 1;\n      if (xx >= 0x100000000000000000000000000000000) { xx >>= 128; r <<= 64; }\n      if (xx >= 0x10000000000000000) { xx >>= 64; r <<= 32; }\n      if (xx >= 0x100000000) { xx >>= 32; r <<= 16; }\n      if (xx >= 0x10000) { xx >>= 16; r <<= 8; }\n      if (xx >= 0x100) { xx >>= 8; r <<= 4; }\n      if (xx >= 0x10) { xx >>= 4; r <<= 2; }\n      if (xx >= 0x8) { r <<= 1; }\n      r = (r + x / r) >> 1;\n      r = (r + x / r) >> 1;\n      r = (r + x / r) >> 1;\n      r = (r + x / r) >> 1;\n      r = (r + x / r) >> 1;\n      r = (r + x / r) >> 1;\n      r = (r + x / r) >> 1; // Seven iterations should be enough\n      uint256 r1 = x / r;\n      return uint128 (r < r1 ? r : r1);\n    }\n  }\n}\n",
  "sourcePath": "abdk-libraries-solidity/ABDKMath64x64.sol",
  "ast": {
    "absolutePath": "abdk-libraries-solidity/ABDKMath64x64.sol",
    "exportedSymbols": {
      "ABDKMath64x64": [
        10621
      ]
    },
    "id": 10622,
    "license": "BSD-4-Clause",
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 7845,
        "literals": [
          "solidity",
          "^",
          "0.5",
          ".0",
          "||",
          "^",
          "0.6",
          ".0",
          "||",
          "^",
          "0.7",
          ".0"
        ],
        "nodeType": "PragmaDirective",
        "src": "191:43:38"
      },
      {
        "abstract": false,
        "baseContracts": [],
        "contractDependencies": [],
        "contractKind": "library",
        "documentation": {
          "id": 7846,
          "nodeType": "StructuredDocumentation",
          "src": "236:449:38",
          "text": " Smart contract library of mathematical functions operating with signed\n 64.64-bit fixed point numbers.  Signed 64.64-bit fixed point number is\n basically a simple fraction whose numerator is signed 128-bit integer and\n denominator is 2^64.  As long as denominator is always the same, there is no\n need to store it, thus in Solidity signed 64.64-bit fixed point numbers are\n represented by int128 type holding only the numerator."
        },
        "fullyImplemented": true,
        "id": 10621,
        "linearizedBaseContracts": [
          10621
        ],
        "name": "ABDKMath64x64",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "constant": true,
            "id": 7850,
            "mutability": "constant",
            "name": "MIN_64x64",
            "nodeType": "VariableDeclaration",
            "scope": 10621,
            "src": "789:71:38",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_int128",
              "typeString": "int128"
            },
            "typeName": {
              "id": 7847,
              "name": "int128",
              "nodeType": "ElementaryTypeName",
              "src": "789:6:38",
              "typeDescriptions": {
                "typeIdentifier": "t_int128",
                "typeString": "int128"
              }
            },
            "value": {
              "id": 7849,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "lValueRequested": false,
              "nodeType": "UnaryOperation",
              "operator": "-",
              "prefix": true,
              "src": "825:35:38",
              "subExpression": {
                "hexValue": "30783830303030303030303030303030303030303030303030303030303030303030",
                "id": 7848,
                "isConstant": false,
                "isLValue": false,
                "isPure": true,
                "kind": "number",
                "lValueRequested": false,
                "nodeType": "Literal",
                "src": "826:34:38",
                "typeDescriptions": {
                  "typeIdentifier": "t_rational_170141183460469231731687303715884105728_by_1",
                  "typeString": "int_const 1701...(31 digits omitted)...5728"
                },
                "value": "0x80000000000000000000000000000000"
              },
              "typeDescriptions": {
                "typeIdentifier": "t_rational_minus_170141183460469231731687303715884105728_by_1",
                "typeString": "int_const -170...(32 digits omitted)...5728"
              }
            },
            "visibility": "private"
          },
          {
            "constant": true,
            "id": 7853,
            "mutability": "constant",
            "name": "MAX_64x64",
            "nodeType": "VariableDeclaration",
            "scope": 10621,
            "src": "942:70:38",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_int128",
              "typeString": "int128"
            },
            "typeName": {
              "id": 7851,
              "name": "int128",
              "nodeType": "ElementaryTypeName",
              "src": "942:6:38",
              "typeDescriptions": {
                "typeIdentifier": "t_int128",
                "typeString": "int128"
              }
            },
            "value": {
              "hexValue": "30783746464646464646464646464646464646464646464646464646464646464646",
              "id": 7852,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "978:34:38",
              "typeDescriptions": {
                "typeIdentifier": "t_rational_170141183460469231731687303715884105727_by_1",
                "typeString": "int_const 1701...(31 digits omitted)...5727"
              },
              "value": "0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
            },
            "visibility": "private"
          },
          {
            "body": {
              "id": 7879,
              "nodeType": "Block",
              "src": "1297:101:38",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 7869,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "commonType": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          },
                          "id": 7865,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 7862,
                            "name": "x",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 7856,
                            "src": "1312:1:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_int256",
                              "typeString": "int256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": ">=",
                          "rightExpression": {
                            "id": 7864,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "UnaryOperation",
                            "operator": "-",
                            "prefix": true,
                            "src": "1317:19:38",
                            "subExpression": {
                              "hexValue": "307838303030303030303030303030303030",
                              "id": 7863,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "1318:18:38",
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_9223372036854775808_by_1",
                                "typeString": "int_const 9223372036854775808"
                              },
                              "value": "0x8000000000000000"
                            },
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_minus_9223372036854775808_by_1",
                              "typeString": "int_const -9223372036854775808"
                            }
                          },
                          "src": "1312:24:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "&&",
                        "rightExpression": {
                          "commonType": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          },
                          "id": 7868,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 7866,
                            "name": "x",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 7856,
                            "src": "1340:1:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_int256",
                              "typeString": "int256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "<=",
                          "rightExpression": {
                            "hexValue": "307837464646464646464646464646464646",
                            "id": 7867,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "1345:18:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_9223372036854775807_by_1",
                              "typeString": "int_const 9223372036854775807"
                            },
                            "value": "0x7FFFFFFFFFFFFFFF"
                          },
                          "src": "1340:23:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "1312:51:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 7861,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        4294967278,
                        4294967278
                      ],
                      "referencedDeclaration": 4294967278,
                      "src": "1303:7:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 7870,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1303:61:38",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 7871,
                  "nodeType": "ExpressionStatement",
                  "src": "1303:61:38"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        },
                        "id": 7876,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "id": 7874,
                          "name": "x",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 7856,
                          "src": "1385:1:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "<<",
                        "rightExpression": {
                          "hexValue": "3634",
                          "id": 7875,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "1390:2:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_64_by_1",
                            "typeString": "int_const 64"
                          },
                          "value": "64"
                        },
                        "src": "1385:7:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        }
                      ],
                      "id": 7873,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "ElementaryTypeNameExpression",
                      "src": "1377:6:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_int128_$",
                        "typeString": "type(int128)"
                      },
                      "typeName": {
                        "id": 7872,
                        "name": "int128",
                        "nodeType": "ElementaryTypeName",
                        "src": "1377:6:38",
                        "typeDescriptions": {}
                      }
                    },
                    "id": 7877,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "typeConversion",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1377:16:38",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_int128",
                      "typeString": "int128"
                    }
                  },
                  "functionReturnParameters": 7860,
                  "id": 7878,
                  "nodeType": "Return",
                  "src": "1370:23:38"
                }
              ]
            },
            "documentation": {
              "id": 7854,
              "nodeType": "StructuredDocumentation",
              "src": "1017:218:38",
              "text": " Convert signed 256-bit integer number into signed 64.64-bit fixed point\n number.  Revert on overflow.\n @param x signed 256-bit integer number\n @return signed 64.64-bit fixed point number"
            },
            "id": 7880,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "fromInt",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 7857,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7856,
                  "mutability": "mutable",
                  "name": "x",
                  "nodeType": "VariableDeclaration",
                  "scope": 7880,
                  "src": "1256:8:38",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_int256",
                    "typeString": "int256"
                  },
                  "typeName": {
                    "id": 7855,
                    "name": "int256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1256:6:38",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int256",
                      "typeString": "int256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1255:10:38"
            },
            "returnParameters": {
              "id": 7860,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7859,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 7880,
                  "src": "1289:6:38",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_int128",
                    "typeString": "int128"
                  },
                  "typeName": {
                    "id": 7858,
                    "name": "int128",
                    "nodeType": "ElementaryTypeName",
                    "src": "1289:6:38",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int128",
                      "typeString": "int128"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1288:8:38"
            },
            "scope": 10621,
            "src": "1238:160:38",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 7895,
              "nodeType": "Block",
              "src": "1666:33:38",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_int128",
                          "typeString": "int128"
                        },
                        "id": 7892,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "id": 7890,
                          "name": "x",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 7883,
                          "src": "1686:1:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int128",
                            "typeString": "int128"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">>",
                        "rightExpression": {
                          "hexValue": "3634",
                          "id": 7891,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "1691:2:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_64_by_1",
                            "typeString": "int_const 64"
                          },
                          "value": "64"
                        },
                        "src": "1686:7:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int128",
                          "typeString": "int128"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_int128",
                          "typeString": "int128"
                        }
                      ],
                      "id": 7889,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "ElementaryTypeNameExpression",
                      "src": "1679:5:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_int64_$",
                        "typeString": "type(int64)"
                      },
                      "typeName": {
                        "id": 7888,
                        "name": "int64",
                        "nodeType": "ElementaryTypeName",
                        "src": "1679:5:38",
                        "typeDescriptions": {}
                      }
                    },
                    "id": 7893,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "typeConversion",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1679:15:38",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_int64",
                      "typeString": "int64"
                    }
                  },
                  "functionReturnParameters": 7887,
                  "id": 7894,
                  "nodeType": "Return",
                  "src": "1672:22:38"
                }
              ]
            },
            "documentation": {
              "id": 7881,
              "nodeType": "StructuredDocumentation",
              "src": "1402:205:38",
              "text": " Convert signed 64.64 fixed point number into signed 64-bit integer number\n rounding down.\n @param x signed 64.64-bit fixed point number\n @return signed 64-bit integer number"
            },
            "id": 7896,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "toInt",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 7884,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7883,
                  "mutability": "mutable",
                  "name": "x",
                  "nodeType": "VariableDeclaration",
                  "scope": 7896,
                  "src": "1626:8:38",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_int128",
                    "typeString": "int128"
                  },
                  "typeName": {
                    "id": 7882,
                    "name": "int128",
                    "nodeType": "ElementaryTypeName",
                    "src": "1626:6:38",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int128",
                      "typeString": "int128"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1625:10:38"
            },
            "returnParameters": {
              "id": 7887,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7886,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 7896,
                  "src": "1659:5:38",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_int64",
                    "typeString": "int64"
                  },
                  "typeName": {
                    "id": 7885,
                    "name": "int64",
                    "nodeType": "ElementaryTypeName",
                    "src": "1659:5:38",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int64",
                      "typeString": "int64"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1658:7:38"
            },
            "scope": 10621,
            "src": "1610:89:38",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 7917,
              "nodeType": "Block",
              "src": "1989:73:38",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 7907,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "id": 7905,
                          "name": "x",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 7899,
                          "src": "2004:1:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "<=",
                        "rightExpression": {
                          "hexValue": "307837464646464646464646464646464646",
                          "id": 7906,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "2009:18:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_9223372036854775807_by_1",
                            "typeString": "int_const 9223372036854775807"
                          },
                          "value": "0x7FFFFFFFFFFFFFFF"
                        },
                        "src": "2004:23:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 7904,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        4294967278,
                        4294967278
                      ],
                      "referencedDeclaration": 4294967278,
                      "src": "1995:7:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 7908,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1995:33:38",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 7909,
                  "nodeType": "ExpressionStatement",
                  "src": "1995:33:38"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 7914,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "id": 7912,
                          "name": "x",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 7899,
                          "src": "2049:1:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "<<",
                        "rightExpression": {
                          "hexValue": "3634",
                          "id": 7913,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "2054:2:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_64_by_1",
                            "typeString": "int_const 64"
                          },
                          "value": "64"
                        },
                        "src": "2049:7:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 7911,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "ElementaryTypeNameExpression",
                      "src": "2041:6:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_int128_$",
                        "typeString": "type(int128)"
                      },
                      "typeName": {
                        "id": 7910,
                        "name": "int128",
                        "nodeType": "ElementaryTypeName",
                        "src": "2041:6:38",
                        "typeDescriptions": {}
                      }
                    },
                    "id": 7915,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "typeConversion",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2041:16:38",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_int128",
                      "typeString": "int128"
                    }
                  },
                  "functionReturnParameters": 7903,
                  "id": 7916,
                  "nodeType": "Return",
                  "src": "2034:23:38"
                }
              ]
            },
            "documentation": {
              "id": 7897,
              "nodeType": "StructuredDocumentation",
              "src": "1703:222:38",
              "text": " Convert unsigned 256-bit integer number into signed 64.64-bit fixed point\n number.  Revert on overflow.\n @param x unsigned 256-bit integer number\n @return signed 64.64-bit fixed point number"
            },
            "id": 7918,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "fromUInt",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 7900,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7899,
                  "mutability": "mutable",
                  "name": "x",
                  "nodeType": "VariableDeclaration",
                  "scope": 7918,
                  "src": "1947:9:38",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 7898,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1947:7:38",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1946:11:38"
            },
            "returnParameters": {
              "id": 7903,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7902,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 7918,
                  "src": "1981:6:38",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_int128",
                    "typeString": "int128"
                  },
                  "typeName": {
                    "id": 7901,
                    "name": "int128",
                    "nodeType": "ElementaryTypeName",
                    "src": "1981:6:38",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int128",
                      "typeString": "int128"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1980:8:38"
            },
            "scope": 10621,
            "src": "1928:134:38",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 7939,
              "nodeType": "Block",
              "src": "2358:56:38",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_int128",
                          "typeString": "int128"
                        },
                        "id": 7929,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "id": 7927,
                          "name": "x",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 7921,
                          "src": "2373:1:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int128",
                            "typeString": "int128"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">=",
                        "rightExpression": {
                          "hexValue": "30",
                          "id": 7928,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "2378:1:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "2373:6:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 7926,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        4294967278,
                        4294967278
                      ],
                      "referencedDeclaration": 4294967278,
                      "src": "2364:7:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 7930,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2364:16:38",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 7931,
                  "nodeType": "ExpressionStatement",
                  "src": "2364:16:38"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_int128",
                          "typeString": "int128"
                        },
                        "id": 7936,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "id": 7934,
                          "name": "x",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 7921,
                          "src": "2401:1:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int128",
                            "typeString": "int128"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">>",
                        "rightExpression": {
                          "hexValue": "3634",
                          "id": 7935,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "2406:2:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_64_by_1",
                            "typeString": "int_const 64"
                          },
                          "value": "64"
                        },
                        "src": "2401:7:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int128",
                          "typeString": "int128"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_int128",
                          "typeString": "int128"
                        }
                      ],
                      "id": 7933,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "ElementaryTypeNameExpression",
                      "src": "2393:6:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_uint64_$",
                        "typeString": "type(uint64)"
                      },
                      "typeName": {
                        "id": 7932,
                        "name": "uint64",
                        "nodeType": "ElementaryTypeName",
                        "src": "2393:6:38",
                        "typeDescriptions": {}
                      }
                    },
                    "id": 7937,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "typeConversion",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2393:16:38",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint64",
                      "typeString": "uint64"
                    }
                  },
                  "functionReturnParameters": 7925,
                  "id": 7938,
                  "nodeType": "Return",
                  "src": "2386:23:38"
                }
              ]
            },
            "documentation": {
              "id": 7919,
              "nodeType": "StructuredDocumentation",
              "src": "2066:231:38",
              "text": " Convert signed 64.64 fixed point number into unsigned 64-bit integer\n number rounding down.  Revert on underflow.\n @param x signed 64.64-bit fixed point number\n @return unsigned 64-bit integer number"
            },
            "id": 7940,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "toUInt",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 7922,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7921,
                  "mutability": "mutable",
                  "name": "x",
                  "nodeType": "VariableDeclaration",
                  "scope": 7940,
                  "src": "2317:8:38",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_int128",
                    "typeString": "int128"
                  },
                  "typeName": {
                    "id": 7920,
                    "name": "int128",
                    "nodeType": "ElementaryTypeName",
                    "src": "2317:6:38",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int128",
                      "typeString": "int128"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2316:10:38"
            },
            "returnParameters": {
              "id": 7925,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7924,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 7940,
                  "src": "2350:6:38",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint64",
                    "typeString": "uint64"
                  },
                  "typeName": {
                    "id": 7923,
                    "name": "uint64",
                    "nodeType": "ElementaryTypeName",
                    "src": "2350:6:38",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint64",
                      "typeString": "uint64"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2349:8:38"
            },
            "scope": 10621,
            "src": "2300:114:38",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 7969,
              "nodeType": "Block",
              "src": "2728:120:38",
              "statements": [
                {
                  "assignments": [
                    7949
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 7949,
                      "mutability": "mutable",
                      "name": "result",
                      "nodeType": "VariableDeclaration",
                      "scope": 7969,
                      "src": "2734:13:38",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int256",
                        "typeString": "int256"
                      },
                      "typeName": {
                        "id": 7948,
                        "name": "int256",
                        "nodeType": "ElementaryTypeName",
                        "src": "2734:6:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 7953,
                  "initialValue": {
                    "commonType": {
                      "typeIdentifier": "t_int256",
                      "typeString": "int256"
                    },
                    "id": 7952,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 7950,
                      "name": "x",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7943,
                      "src": "2750:1:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int256",
                        "typeString": "int256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">>",
                    "rightExpression": {
                      "hexValue": "3634",
                      "id": 7951,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "2755:2:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_64_by_1",
                        "typeString": "int_const 64"
                      },
                      "value": "64"
                    },
                    "src": "2750:7:38",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int256",
                      "typeString": "int256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "2734:23:38"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 7961,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "commonType": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          },
                          "id": 7957,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 7955,
                            "name": "result",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 7949,
                            "src": "2772:6:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_int256",
                              "typeString": "int256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": ">=",
                          "rightExpression": {
                            "id": 7956,
                            "name": "MIN_64x64",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 7850,
                            "src": "2782:9:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_int128",
                              "typeString": "int128"
                            }
                          },
                          "src": "2772:19:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "&&",
                        "rightExpression": {
                          "commonType": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          },
                          "id": 7960,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 7958,
                            "name": "result",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 7949,
                            "src": "2795:6:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_int256",
                              "typeString": "int256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "<=",
                          "rightExpression": {
                            "id": 7959,
                            "name": "MAX_64x64",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 7853,
                            "src": "2805:9:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_int128",
                              "typeString": "int128"
                            }
                          },
                          "src": "2795:19:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "2772:42:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 7954,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        4294967278,
                        4294967278
                      ],
                      "referencedDeclaration": 4294967278,
                      "src": "2763:7:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 7962,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2763:52:38",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 7963,
                  "nodeType": "ExpressionStatement",
                  "src": "2763:52:38"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 7966,
                        "name": "result",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7949,
                        "src": "2836:6:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        }
                      ],
                      "id": 7965,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "ElementaryTypeNameExpression",
                      "src": "2828:6:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_int128_$",
                        "typeString": "type(int128)"
                      },
                      "typeName": {
                        "id": 7964,
                        "name": "int128",
                        "nodeType": "ElementaryTypeName",
                        "src": "2828:6:38",
                        "typeDescriptions": {}
                      }
                    },
                    "id": 7967,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "typeConversion",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2828:15:38",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_int128",
                      "typeString": "int128"
                    }
                  },
                  "functionReturnParameters": 7947,
                  "id": 7968,
                  "nodeType": "Return",
                  "src": "2821:22:38"
                }
              ]
            },
            "documentation": {
              "id": 7941,
              "nodeType": "StructuredDocumentation",
              "src": "2418:244:38",
              "text": " Convert signed 128.128 fixed point number into signed 64.64-bit fixed point\n number rounding down.  Revert on overflow.\n @param x signed 128.128-bin fixed point number\n @return signed 64.64-bit fixed point number"
            },
            "id": 7970,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "from128x128",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 7944,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7943,
                  "mutability": "mutable",
                  "name": "x",
                  "nodeType": "VariableDeclaration",
                  "scope": 7970,
                  "src": "2687:8:38",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_int256",
                    "typeString": "int256"
                  },
                  "typeName": {
                    "id": 7942,
                    "name": "int256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2687:6:38",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int256",
                      "typeString": "int256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2686:10:38"
            },
            "returnParameters": {
              "id": 7947,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7946,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 7970,
                  "src": "2720:6:38",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_int128",
                    "typeString": "int128"
                  },
                  "typeName": {
                    "id": 7945,
                    "name": "int128",
                    "nodeType": "ElementaryTypeName",
                    "src": "2720:6:38",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int128",
                      "typeString": "int128"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2719:8:38"
            },
            "scope": 10621,
            "src": "2665:183:38",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 7985,
              "nodeType": "Block",
              "src": "3117:34:38",
              "statements": [
                {
                  "expression": {
                    "commonType": {
                      "typeIdentifier": "t_int256",
                      "typeString": "int256"
                    },
                    "id": 7983,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "arguments": [
                        {
                          "id": 7980,
                          "name": "x",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 7973,
                          "src": "3138:1:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int128",
                            "typeString": "int128"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_int128",
                            "typeString": "int128"
                          }
                        ],
                        "id": 7979,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "3130:6:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_int256_$",
                          "typeString": "type(int256)"
                        },
                        "typeName": {
                          "id": 7978,
                          "name": "int256",
                          "nodeType": "ElementaryTypeName",
                          "src": "3130:6:38",
                          "typeDescriptions": {}
                        }
                      },
                      "id": 7981,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "3130:10:38",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_int256",
                        "typeString": "int256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<<",
                    "rightExpression": {
                      "hexValue": "3634",
                      "id": 7982,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "3144:2:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_64_by_1",
                        "typeString": "int_const 64"
                      },
                      "value": "64"
                    },
                    "src": "3130:16:38",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int256",
                      "typeString": "int256"
                    }
                  },
                  "functionReturnParameters": 7977,
                  "id": 7984,
                  "nodeType": "Return",
                  "src": "3123:23:38"
                }
              ]
            },
            "documentation": {
              "id": 7971,
              "nodeType": "StructuredDocumentation",
              "src": "2852:201:38",
              "text": " Convert signed 64.64 fixed point number into signed 128.128 fixed point\n number.\n @param x signed 64.64-bit fixed point number\n @return signed 128.128 fixed point number"
            },
            "id": 7986,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "to128x128",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 7974,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7973,
                  "mutability": "mutable",
                  "name": "x",
                  "nodeType": "VariableDeclaration",
                  "scope": 7986,
                  "src": "3076:8:38",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_int128",
                    "typeString": "int128"
                  },
                  "typeName": {
                    "id": 7972,
                    "name": "int128",
                    "nodeType": "ElementaryTypeName",
                    "src": "3076:6:38",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int128",
                      "typeString": "int128"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3075:10:38"
            },
            "returnParameters": {
              "id": 7977,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7976,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 7986,
                  "src": "3109:6:38",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_int256",
                    "typeString": "int256"
                  },
                  "typeName": {
                    "id": 7975,
                    "name": "int256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3109:6:38",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int256",
                      "typeString": "int256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3108:8:38"
            },
            "scope": 10621,
            "src": "3056:95:38",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 8020,
              "nodeType": "Block",
              "src": "3429:126:38",
              "statements": [
                {
                  "assignments": [
                    7997
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 7997,
                      "mutability": "mutable",
                      "name": "result",
                      "nodeType": "VariableDeclaration",
                      "scope": 8020,
                      "src": "3435:13:38",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int256",
                        "typeString": "int256"
                      },
                      "typeName": {
                        "id": 7996,
                        "name": "int256",
                        "nodeType": "ElementaryTypeName",
                        "src": "3435:6:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 8004,
                  "initialValue": {
                    "commonType": {
                      "typeIdentifier": "t_int256",
                      "typeString": "int256"
                    },
                    "id": 8003,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "arguments": [
                        {
                          "id": 8000,
                          "name": "x",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 7989,
                          "src": "3458:1:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int128",
                            "typeString": "int128"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_int128",
                            "typeString": "int128"
                          }
                        ],
                        "id": 7999,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "3451:6:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_int256_$",
                          "typeString": "type(int256)"
                        },
                        "typeName": {
                          "id": 7998,
                          "name": "int256",
                          "nodeType": "ElementaryTypeName",
                          "src": "3451:6:38",
                          "typeDescriptions": {}
                        }
                      },
                      "id": 8001,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "3451:9:38",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_int256",
                        "typeString": "int256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "+",
                    "rightExpression": {
                      "id": 8002,
                      "name": "y",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7991,
                      "src": "3463:1:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int128",
                        "typeString": "int128"
                      }
                    },
                    "src": "3451:13:38",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int256",
                      "typeString": "int256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "3435:29:38"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 8012,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "commonType": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          },
                          "id": 8008,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 8006,
                            "name": "result",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 7997,
                            "src": "3479:6:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_int256",
                              "typeString": "int256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": ">=",
                          "rightExpression": {
                            "id": 8007,
                            "name": "MIN_64x64",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 7850,
                            "src": "3489:9:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_int128",
                              "typeString": "int128"
                            }
                          },
                          "src": "3479:19:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "&&",
                        "rightExpression": {
                          "commonType": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          },
                          "id": 8011,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 8009,
                            "name": "result",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 7997,
                            "src": "3502:6:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_int256",
                              "typeString": "int256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "<=",
                          "rightExpression": {
                            "id": 8010,
                            "name": "MAX_64x64",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 7853,
                            "src": "3512:9:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_int128",
                              "typeString": "int128"
                            }
                          },
                          "src": "3502:19:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "3479:42:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 8005,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        4294967278,
                        4294967278
                      ],
                      "referencedDeclaration": 4294967278,
                      "src": "3470:7:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 8013,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3470:52:38",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 8014,
                  "nodeType": "ExpressionStatement",
                  "src": "3470:52:38"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 8017,
                        "name": "result",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7997,
                        "src": "3543:6:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        }
                      ],
                      "id": 8016,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "ElementaryTypeNameExpression",
                      "src": "3535:6:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_int128_$",
                        "typeString": "type(int128)"
                      },
                      "typeName": {
                        "id": 8015,
                        "name": "int128",
                        "nodeType": "ElementaryTypeName",
                        "src": "3535:6:38",
                        "typeDescriptions": {}
                      }
                    },
                    "id": 8018,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "typeConversion",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3535:15:38",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_int128",
                      "typeString": "int128"
                    }
                  },
                  "functionReturnParameters": 7995,
                  "id": 8019,
                  "nodeType": "Return",
                  "src": "3528:22:38"
                }
              ]
            },
            "documentation": {
              "id": 7987,
              "nodeType": "StructuredDocumentation",
              "src": "3155:206:38",
              "text": " Calculate x + y.  Revert on overflow.\n @param x signed 64.64-bit fixed point number\n @param y signed 64.64-bit fixed point number\n @return signed 64.64-bit fixed point number"
            },
            "id": 8021,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "add",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 7992,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7989,
                  "mutability": "mutable",
                  "name": "x",
                  "nodeType": "VariableDeclaration",
                  "scope": 8021,
                  "src": "3378:8:38",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_int128",
                    "typeString": "int128"
                  },
                  "typeName": {
                    "id": 7988,
                    "name": "int128",
                    "nodeType": "ElementaryTypeName",
                    "src": "3378:6:38",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int128",
                      "typeString": "int128"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 7991,
                  "mutability": "mutable",
                  "name": "y",
                  "nodeType": "VariableDeclaration",
                  "scope": 8021,
                  "src": "3388:8:38",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_int128",
                    "typeString": "int128"
                  },
                  "typeName": {
                    "id": 7990,
                    "name": "int128",
                    "nodeType": "ElementaryTypeName",
                    "src": "3388:6:38",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int128",
                      "typeString": "int128"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3377:20:38"
            },
            "returnParameters": {
              "id": 7995,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7994,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 8021,
                  "src": "3421:6:38",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_int128",
                    "typeString": "int128"
                  },
                  "typeName": {
                    "id": 7993,
                    "name": "int128",
                    "nodeType": "ElementaryTypeName",
                    "src": "3421:6:38",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int128",
                      "typeString": "int128"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3420:8:38"
            },
            "scope": 10621,
            "src": "3364:191:38",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 8055,
              "nodeType": "Block",
              "src": "3833:126:38",
              "statements": [
                {
                  "assignments": [
                    8032
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 8032,
                      "mutability": "mutable",
                      "name": "result",
                      "nodeType": "VariableDeclaration",
                      "scope": 8055,
                      "src": "3839:13:38",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int256",
                        "typeString": "int256"
                      },
                      "typeName": {
                        "id": 8031,
                        "name": "int256",
                        "nodeType": "ElementaryTypeName",
                        "src": "3839:6:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 8039,
                  "initialValue": {
                    "commonType": {
                      "typeIdentifier": "t_int256",
                      "typeString": "int256"
                    },
                    "id": 8038,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "arguments": [
                        {
                          "id": 8035,
                          "name": "x",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 8024,
                          "src": "3862:1:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int128",
                            "typeString": "int128"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_int128",
                            "typeString": "int128"
                          }
                        ],
                        "id": 8034,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "3855:6:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_int256_$",
                          "typeString": "type(int256)"
                        },
                        "typeName": {
                          "id": 8033,
                          "name": "int256",
                          "nodeType": "ElementaryTypeName",
                          "src": "3855:6:38",
                          "typeDescriptions": {}
                        }
                      },
                      "id": 8036,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "3855:9:38",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_int256",
                        "typeString": "int256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "-",
                    "rightExpression": {
                      "id": 8037,
                      "name": "y",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 8026,
                      "src": "3867:1:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int128",
                        "typeString": "int128"
                      }
                    },
                    "src": "3855:13:38",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int256",
                      "typeString": "int256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "3839:29:38"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 8047,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "commonType": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          },
                          "id": 8043,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 8041,
                            "name": "result",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8032,
                            "src": "3883:6:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_int256",
                              "typeString": "int256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": ">=",
                          "rightExpression": {
                            "id": 8042,
                            "name": "MIN_64x64",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 7850,
                            "src": "3893:9:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_int128",
                              "typeString": "int128"
                            }
                          },
                          "src": "3883:19:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "&&",
                        "rightExpression": {
                          "commonType": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          },
                          "id": 8046,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 8044,
                            "name": "result",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8032,
                            "src": "3906:6:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_int256",
                              "typeString": "int256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "<=",
                          "rightExpression": {
                            "id": 8045,
                            "name": "MAX_64x64",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 7853,
                            "src": "3916:9:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_int128",
                              "typeString": "int128"
                            }
                          },
                          "src": "3906:19:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "3883:42:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 8040,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        4294967278,
                        4294967278
                      ],
                      "referencedDeclaration": 4294967278,
                      "src": "3874:7:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 8048,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3874:52:38",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 8049,
                  "nodeType": "ExpressionStatement",
                  "src": "3874:52:38"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 8052,
                        "name": "result",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8032,
                        "src": "3947:6:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        }
                      ],
                      "id": 8051,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "ElementaryTypeNameExpression",
                      "src": "3939:6:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_int128_$",
                        "typeString": "type(int128)"
                      },
                      "typeName": {
                        "id": 8050,
                        "name": "int128",
                        "nodeType": "ElementaryTypeName",
                        "src": "3939:6:38",
                        "typeDescriptions": {}
                      }
                    },
                    "id": 8053,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "typeConversion",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3939:15:38",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_int128",
                      "typeString": "int128"
                    }
                  },
                  "functionReturnParameters": 8030,
                  "id": 8054,
                  "nodeType": "Return",
                  "src": "3932:22:38"
                }
              ]
            },
            "documentation": {
              "id": 8022,
              "nodeType": "StructuredDocumentation",
              "src": "3559:206:38",
              "text": " Calculate x - y.  Revert on overflow.\n @param x signed 64.64-bit fixed point number\n @param y signed 64.64-bit fixed point number\n @return signed 64.64-bit fixed point number"
            },
            "id": 8056,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "sub",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 8027,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 8024,
                  "mutability": "mutable",
                  "name": "x",
                  "nodeType": "VariableDeclaration",
                  "scope": 8056,
                  "src": "3782:8:38",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_int128",
                    "typeString": "int128"
                  },
                  "typeName": {
                    "id": 8023,
                    "name": "int128",
                    "nodeType": "ElementaryTypeName",
                    "src": "3782:6:38",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int128",
                      "typeString": "int128"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 8026,
                  "mutability": "mutable",
                  "name": "y",
                  "nodeType": "VariableDeclaration",
                  "scope": 8056,
                  "src": "3792:8:38",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_int128",
                    "typeString": "int128"
                  },
                  "typeName": {
                    "id": 8025,
                    "name": "int128",
                    "nodeType": "ElementaryTypeName",
                    "src": "3792:6:38",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int128",
                      "typeString": "int128"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3781:20:38"
            },
            "returnParameters": {
              "id": 8030,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 8029,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 8056,
                  "src": "3825:6:38",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_int128",
                    "typeString": "int128"
                  },
                  "typeName": {
                    "id": 8028,
                    "name": "int128",
                    "nodeType": "ElementaryTypeName",
                    "src": "3825:6:38",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int128",
                      "typeString": "int128"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3824:8:38"
            },
            "scope": 10621,
            "src": "3768:191:38",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 8092,
              "nodeType": "Block",
              "src": "4251:132:38",
              "statements": [
                {
                  "assignments": [
                    8067
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 8067,
                      "mutability": "mutable",
                      "name": "result",
                      "nodeType": "VariableDeclaration",
                      "scope": 8092,
                      "src": "4257:13:38",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int256",
                        "typeString": "int256"
                      },
                      "typeName": {
                        "id": 8066,
                        "name": "int256",
                        "nodeType": "ElementaryTypeName",
                        "src": "4257:6:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 8076,
                  "initialValue": {
                    "commonType": {
                      "typeIdentifier": "t_int256",
                      "typeString": "int256"
                    },
                    "id": 8075,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "commonType": {
                        "typeIdentifier": "t_int256",
                        "typeString": "int256"
                      },
                      "id": 8073,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "arguments": [
                          {
                            "id": 8070,
                            "name": "x",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8059,
                            "src": "4280:1:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_int128",
                              "typeString": "int128"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_int128",
                              "typeString": "int128"
                            }
                          ],
                          "id": 8069,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "4273:6:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_int256_$",
                            "typeString": "type(int256)"
                          },
                          "typeName": {
                            "id": 8068,
                            "name": "int256",
                            "nodeType": "ElementaryTypeName",
                            "src": "4273:6:38",
                            "typeDescriptions": {}
                          }
                        },
                        "id": 8071,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "4273:9:38",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "*",
                      "rightExpression": {
                        "id": 8072,
                        "name": "y",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8061,
                        "src": "4285:1:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int128",
                          "typeString": "int128"
                        }
                      },
                      "src": "4273:13:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int256",
                        "typeString": "int256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">>",
                    "rightExpression": {
                      "hexValue": "3634",
                      "id": 8074,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "4290:2:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_64_by_1",
                        "typeString": "int_const 64"
                      },
                      "value": "64"
                    },
                    "src": "4273:19:38",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int256",
                      "typeString": "int256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "4257:35:38"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 8084,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "commonType": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          },
                          "id": 8080,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 8078,
                            "name": "result",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8067,
                            "src": "4307:6:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_int256",
                              "typeString": "int256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": ">=",
                          "rightExpression": {
                            "id": 8079,
                            "name": "MIN_64x64",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 7850,
                            "src": "4317:9:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_int128",
                              "typeString": "int128"
                            }
                          },
                          "src": "4307:19:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "&&",
                        "rightExpression": {
                          "commonType": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          },
                          "id": 8083,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 8081,
                            "name": "result",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8067,
                            "src": "4330:6:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_int256",
                              "typeString": "int256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "<=",
                          "rightExpression": {
                            "id": 8082,
                            "name": "MAX_64x64",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 7853,
                            "src": "4340:9:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_int128",
                              "typeString": "int128"
                            }
                          },
                          "src": "4330:19:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "4307:42:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 8077,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        4294967278,
                        4294967278
                      ],
                      "referencedDeclaration": 4294967278,
                      "src": "4298:7:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 8085,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4298:52:38",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 8086,
                  "nodeType": "ExpressionStatement",
                  "src": "4298:52:38"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 8089,
                        "name": "result",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8067,
                        "src": "4371:6:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        }
                      ],
                      "id": 8088,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "ElementaryTypeNameExpression",
                      "src": "4363:6:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_int128_$",
                        "typeString": "type(int128)"
                      },
                      "typeName": {
                        "id": 8087,
                        "name": "int128",
                        "nodeType": "ElementaryTypeName",
                        "src": "4363:6:38",
                        "typeDescriptions": {}
                      }
                    },
                    "id": 8090,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "typeConversion",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4363:15:38",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_int128",
                      "typeString": "int128"
                    }
                  },
                  "functionReturnParameters": 8065,
                  "id": 8091,
                  "nodeType": "Return",
                  "src": "4356:22:38"
                }
              ]
            },
            "documentation": {
              "id": 8057,
              "nodeType": "StructuredDocumentation",
              "src": "3963:220:38",
              "text": " Calculate x * y rounding down.  Revert on overflow.\n @param x signed 64.64-bit fixed point number\n @param y signed 64.64-bit fixed point number\n @return signed 64.64-bit fixed point number"
            },
            "id": 8093,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "mul",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 8062,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 8059,
                  "mutability": "mutable",
                  "name": "x",
                  "nodeType": "VariableDeclaration",
                  "scope": 8093,
                  "src": "4200:8:38",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_int128",
                    "typeString": "int128"
                  },
                  "typeName": {
                    "id": 8058,
                    "name": "int128",
                    "nodeType": "ElementaryTypeName",
                    "src": "4200:6:38",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int128",
                      "typeString": "int128"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 8061,
                  "mutability": "mutable",
                  "name": "y",
                  "nodeType": "VariableDeclaration",
                  "scope": 8093,
                  "src": "4210:8:38",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_int128",
                    "typeString": "int128"
                  },
                  "typeName": {
                    "id": 8060,
                    "name": "int128",
                    "nodeType": "ElementaryTypeName",
                    "src": "4210:6:38",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int128",
                      "typeString": "int128"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4199:20:38"
            },
            "returnParameters": {
              "id": 8065,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 8064,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 8093,
                  "src": "4243:6:38",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_int128",
                    "typeString": "int128"
                  },
                  "typeName": {
                    "id": 8063,
                    "name": "int128",
                    "nodeType": "ElementaryTypeName",
                    "src": "4243:6:38",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int128",
                      "typeString": "int128"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4242:8:38"
            },
            "scope": 10621,
            "src": "4186:197:38",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 8195,
              "nodeType": "Block",
              "src": "4756:897:38",
              "statements": [
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_int128",
                      "typeString": "int128"
                    },
                    "id": 8105,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 8103,
                      "name": "x",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 8096,
                      "src": "4766:1:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int128",
                        "typeString": "int128"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "id": 8104,
                      "name": "MIN_64x64",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7850,
                      "src": "4771:9:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int128",
                        "typeString": "int128"
                      }
                    },
                    "src": "4766:14:38",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "id": 8193,
                    "nodeType": "Block",
                    "src": "4960:689:38",
                    "statements": [
                      {
                        "assignments": [
                          8124
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 8124,
                            "mutability": "mutable",
                            "name": "negativeResult",
                            "nodeType": "VariableDeclaration",
                            "scope": 8193,
                            "src": "4968:19:38",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            },
                            "typeName": {
                              "id": 8123,
                              "name": "bool",
                              "nodeType": "ElementaryTypeName",
                              "src": "4968:4:38",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            "visibility": "internal"
                          }
                        ],
                        "id": 8126,
                        "initialValue": {
                          "hexValue": "66616c7365",
                          "id": 8125,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "bool",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "4990:5:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          },
                          "value": "false"
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "4968:27:38"
                      },
                      {
                        "condition": {
                          "commonType": {
                            "typeIdentifier": "t_int128",
                            "typeString": "int128"
                          },
                          "id": 8129,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 8127,
                            "name": "x",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8096,
                            "src": "5007:1:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_int128",
                              "typeString": "int128"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "<",
                          "rightExpression": {
                            "hexValue": "30",
                            "id": 8128,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "5011:1:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0"
                          },
                          "src": "5007:5:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "id": 8140,
                        "nodeType": "IfStatement",
                        "src": "5003:67:38",
                        "trueBody": {
                          "id": 8139,
                          "nodeType": "Block",
                          "src": "5014:56:38",
                          "statements": [
                            {
                              "expression": {
                                "id": 8133,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "id": 8130,
                                  "name": "x",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 8096,
                                  "src": "5024:1:38",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_int128",
                                    "typeString": "int128"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "=",
                                "rightHandSide": {
                                  "id": 8132,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "UnaryOperation",
                                  "operator": "-",
                                  "prefix": true,
                                  "src": "5028:2:38",
                                  "subExpression": {
                                    "id": 8131,
                                    "name": "x",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 8096,
                                    "src": "5029:1:38",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_int128",
                                      "typeString": "int128"
                                    }
                                  },
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_int128",
                                    "typeString": "int128"
                                  }
                                },
                                "src": "5024:6:38",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_int128",
                                  "typeString": "int128"
                                }
                              },
                              "id": 8134,
                              "nodeType": "ExpressionStatement",
                              "src": "5024:6:38"
                            },
                            {
                              "expression": {
                                "id": 8137,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "id": 8135,
                                  "name": "negativeResult",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 8124,
                                  "src": "5040:14:38",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bool",
                                    "typeString": "bool"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "=",
                                "rightHandSide": {
                                  "hexValue": "74727565",
                                  "id": 8136,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "bool",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "5057:4:38",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bool",
                                    "typeString": "bool"
                                  },
                                  "value": "true"
                                },
                                "src": "5040:21:38",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              },
                              "id": 8138,
                              "nodeType": "ExpressionStatement",
                              "src": "5040:21:38"
                            }
                          ]
                        }
                      },
                      {
                        "condition": {
                          "commonType": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          },
                          "id": 8143,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 8141,
                            "name": "y",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8098,
                            "src": "5081:1:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_int256",
                              "typeString": "int256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "<",
                          "rightExpression": {
                            "hexValue": "30",
                            "id": 8142,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "5085:1:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0"
                          },
                          "src": "5081:5:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "id": 8155,
                        "nodeType": "IfStatement",
                        "src": "5077:115:38",
                        "trueBody": {
                          "id": 8154,
                          "nodeType": "Block",
                          "src": "5088:104:38",
                          "statements": [
                            {
                              "expression": {
                                "id": 8147,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "id": 8144,
                                  "name": "y",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 8098,
                                  "src": "5098:1:38",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_int256",
                                    "typeString": "int256"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "=",
                                "rightHandSide": {
                                  "id": 8146,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "UnaryOperation",
                                  "operator": "-",
                                  "prefix": true,
                                  "src": "5102:2:38",
                                  "subExpression": {
                                    "id": 8145,
                                    "name": "y",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 8098,
                                    "src": "5103:1:38",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_int256",
                                      "typeString": "int256"
                                    }
                                  },
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_int256",
                                    "typeString": "int256"
                                  }
                                },
                                "src": "5098:6:38",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_int256",
                                  "typeString": "int256"
                                }
                              },
                              "id": 8148,
                              "nodeType": "ExpressionStatement",
                              "src": "5098:6:38"
                            },
                            {
                              "expression": {
                                "id": 8152,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "id": 8149,
                                  "name": "negativeResult",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 8124,
                                  "src": "5151:14:38",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bool",
                                    "typeString": "bool"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "=",
                                "rightHandSide": {
                                  "id": 8151,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "UnaryOperation",
                                  "operator": "!",
                                  "prefix": true,
                                  "src": "5168:15:38",
                                  "subExpression": {
                                    "id": 8150,
                                    "name": "negativeResult",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 8124,
                                    "src": "5169:14:38",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bool",
                                      "typeString": "bool"
                                    }
                                  },
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bool",
                                    "typeString": "bool"
                                  }
                                },
                                "src": "5151:32:38",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              },
                              "id": 8153,
                              "nodeType": "ExpressionStatement",
                              "src": "5151:32:38"
                            }
                          ]
                        }
                      },
                      {
                        "assignments": [
                          8157
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 8157,
                            "mutability": "mutable",
                            "name": "absoluteResult",
                            "nodeType": "VariableDeclaration",
                            "scope": 8193,
                            "src": "5199:22:38",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "typeName": {
                              "id": 8156,
                              "name": "uint256",
                              "nodeType": "ElementaryTypeName",
                              "src": "5199:7:38",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "visibility": "internal"
                          }
                        ],
                        "id": 8165,
                        "initialValue": {
                          "arguments": [
                            {
                              "id": 8159,
                              "name": "x",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 8096,
                              "src": "5230:1:38",
                              "typeDescriptions": {
                                "typeIdentifier": "t_int128",
                                "typeString": "int128"
                              }
                            },
                            {
                              "arguments": [
                                {
                                  "id": 8162,
                                  "name": "y",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 8098,
                                  "src": "5242:1:38",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_int256",
                                    "typeString": "int256"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_int256",
                                    "typeString": "int256"
                                  }
                                ],
                                "id": 8161,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "ElementaryTypeNameExpression",
                                "src": "5233:7:38",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_uint256_$",
                                  "typeString": "type(uint256)"
                                },
                                "typeName": {
                                  "id": 8160,
                                  "name": "uint256",
                                  "nodeType": "ElementaryTypeName",
                                  "src": "5233:7:38",
                                  "typeDescriptions": {}
                                }
                              },
                              "id": 8163,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "5233:11:38",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_int128",
                                "typeString": "int128"
                              },
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "id": 8158,
                            "name": "mulu",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8268,
                            "src": "5224:4:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$_t_int128_$_t_uint256_$returns$_t_uint256_$",
                              "typeString": "function (int128,uint256) pure returns (uint256)"
                            }
                          },
                          "id": 8164,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "5224:21:38",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "5199:46:38"
                      },
                      {
                        "condition": {
                          "id": 8166,
                          "name": "negativeResult",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 8124,
                          "src": "5257:14:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "falseBody": {
                          "id": 8191,
                          "nodeType": "Block",
                          "src": "5480:163:38",
                          "statements": [
                            {
                              "expression": {
                                "arguments": [
                                  {
                                    "commonType": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    },
                                    "id": 8183,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "leftExpression": {
                                      "id": 8181,
                                      "name": "absoluteResult",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 8157,
                                      "src": "5499:14:38",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "nodeType": "BinaryOperation",
                                    "operator": "<=",
                                    "rightExpression": {
                                      "hexValue": "307837464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646",
                                      "id": 8182,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "number",
                                      "lValueRequested": false,
                                      "nodeType": "Literal",
                                      "src": "5527:66:38",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_rational_57896044618658097711785492504343953926634992332820282019728792003956564819967_by_1",
                                        "typeString": "int_const 5789...(69 digits omitted)...9967"
                                      },
                                      "value": "0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
                                    },
                                    "src": "5499:94:38",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bool",
                                      "typeString": "bool"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_bool",
                                      "typeString": "bool"
                                    }
                                  ],
                                  "id": 8180,
                                  "name": "require",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [
                                    4294967278,
                                    4294967278
                                  ],
                                  "referencedDeclaration": 4294967278,
                                  "src": "5490:7:38",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                                    "typeString": "function (bool) pure"
                                  }
                                },
                                "id": 8184,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "5490:104:38",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_tuple$__$",
                                  "typeString": "tuple()"
                                }
                              },
                              "id": 8185,
                              "nodeType": "ExpressionStatement",
                              "src": "5490:104:38"
                            },
                            {
                              "expression": {
                                "arguments": [
                                  {
                                    "id": 8188,
                                    "name": "absoluteResult",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 8157,
                                    "src": "5619:14:38",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  ],
                                  "id": 8187,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "5611:6:38",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_int256_$",
                                    "typeString": "type(int256)"
                                  },
                                  "typeName": {
                                    "id": 8186,
                                    "name": "int256",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "5611:6:38",
                                    "typeDescriptions": {}
                                  }
                                },
                                "id": 8189,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "5611:23:38",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_int256",
                                  "typeString": "int256"
                                }
                              },
                              "functionReturnParameters": 8102,
                              "id": 8190,
                              "nodeType": "Return",
                              "src": "5604:30:38"
                            }
                          ]
                        },
                        "id": 8192,
                        "nodeType": "IfStatement",
                        "src": "5253:390:38",
                        "trueBody": {
                          "id": 8179,
                          "nodeType": "Block",
                          "src": "5273:201:38",
                          "statements": [
                            {
                              "expression": {
                                "arguments": [
                                  {
                                    "commonType": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    },
                                    "id": 8170,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "leftExpression": {
                                      "id": 8168,
                                      "name": "absoluteResult",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 8157,
                                      "src": "5292:14:38",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "nodeType": "BinaryOperation",
                                    "operator": "<=",
                                    "rightExpression": {
                                      "hexValue": "307838303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030",
                                      "id": 8169,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "number",
                                      "lValueRequested": false,
                                      "nodeType": "Literal",
                                      "src": "5320:66:38",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_rational_57896044618658097711785492504343953926634992332820282019728792003956564819968_by_1",
                                        "typeString": "int_const 5789...(69 digits omitted)...9968"
                                      },
                                      "value": "0x8000000000000000000000000000000000000000000000000000000000000000"
                                    },
                                    "src": "5292:94:38",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bool",
                                      "typeString": "bool"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_bool",
                                      "typeString": "bool"
                                    }
                                  ],
                                  "id": 8167,
                                  "name": "require",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [
                                    4294967278,
                                    4294967278
                                  ],
                                  "referencedDeclaration": 4294967278,
                                  "src": "5283:7:38",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                                    "typeString": "function (bool) pure"
                                  }
                                },
                                "id": 8171,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "5283:104:38",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_tuple$__$",
                                  "typeString": "tuple()"
                                }
                              },
                              "id": 8172,
                              "nodeType": "ExpressionStatement",
                              "src": "5283:104:38"
                            },
                            {
                              "expression": {
                                "id": 8177,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "UnaryOperation",
                                "operator": "-",
                                "prefix": true,
                                "src": "5404:24:38",
                                "subExpression": {
                                  "arguments": [
                                    {
                                      "id": 8175,
                                      "name": "absoluteResult",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 8157,
                                      "src": "5413:14:38",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    ],
                                    "id": 8174,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "lValueRequested": false,
                                    "nodeType": "ElementaryTypeNameExpression",
                                    "src": "5405:6:38",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_int256_$",
                                      "typeString": "type(int256)"
                                    },
                                    "typeName": {
                                      "id": 8173,
                                      "name": "int256",
                                      "nodeType": "ElementaryTypeName",
                                      "src": "5405:6:38",
                                      "typeDescriptions": {}
                                    }
                                  },
                                  "id": 8176,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "typeConversion",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "5405:23:38",
                                  "tryCall": false,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_int256",
                                    "typeString": "int256"
                                  }
                                },
                                "typeDescriptions": {
                                  "typeIdentifier": "t_int256",
                                  "typeString": "int256"
                                }
                              },
                              "functionReturnParameters": 8102,
                              "id": 8178,
                              "nodeType": "Return",
                              "src": "5397:31:38"
                            }
                          ]
                        }
                      }
                    ]
                  },
                  "id": 8194,
                  "nodeType": "IfStatement",
                  "src": "4762:887:38",
                  "trueBody": {
                    "id": 8122,
                    "nodeType": "Block",
                    "src": "4782:172:38",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "commonType": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              },
                              "id": 8114,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "commonType": {
                                  "typeIdentifier": "t_int256",
                                  "typeString": "int256"
                                },
                                "id": 8110,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "id": 8107,
                                  "name": "y",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 8098,
                                  "src": "4799:1:38",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_int256",
                                    "typeString": "int256"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": ">=",
                                "rightExpression": {
                                  "id": 8109,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "UnaryOperation",
                                  "operator": "-",
                                  "prefix": true,
                                  "src": "4804:51:38",
                                  "subExpression": {
                                    "hexValue": "3078464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646",
                                    "id": 8108,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "number",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "4805:50:38",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_rational_6277101735386680763835789423207666416102355444464034512895_by_1",
                                      "typeString": "int_const 6277...(50 digits omitted)...2895"
                                    },
                                    "value": "0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
                                  },
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_minus_6277101735386680763835789423207666416102355444464034512895_by_1",
                                    "typeString": "int_const -627...(51 digits omitted)...2895"
                                  }
                                },
                                "src": "4799:56:38",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "&&",
                              "rightExpression": {
                                "commonType": {
                                  "typeIdentifier": "t_int256",
                                  "typeString": "int256"
                                },
                                "id": 8113,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "id": 8111,
                                  "name": "y",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 8098,
                                  "src": "4867:1:38",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_int256",
                                    "typeString": "int256"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "<=",
                                "rightExpression": {
                                  "hexValue": "307831303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030",
                                  "id": 8112,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "4872:51:38",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_6277101735386680763835789423207666416102355444464034512896_by_1",
                                    "typeString": "int_const 6277...(50 digits omitted)...2896"
                                  },
                                  "value": "0x1000000000000000000000000000000000000000000000000"
                                },
                                "src": "4867:56:38",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              },
                              "src": "4799:124:38",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            ],
                            "id": 8106,
                            "name": "require",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [
                              4294967278,
                              4294967278
                            ],
                            "referencedDeclaration": 4294967278,
                            "src": "4790:7:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                              "typeString": "function (bool) pure"
                            }
                          },
                          "id": 8115,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "4790:134:38",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 8116,
                        "nodeType": "ExpressionStatement",
                        "src": "4790:134:38"
                      },
                      {
                        "expression": {
                          "commonType": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          },
                          "id": 8120,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 8118,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "UnaryOperation",
                            "operator": "-",
                            "prefix": true,
                            "src": "4939:2:38",
                            "subExpression": {
                              "id": 8117,
                              "name": "y",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 8098,
                              "src": "4940:1:38",
                              "typeDescriptions": {
                                "typeIdentifier": "t_int256",
                                "typeString": "int256"
                              }
                            },
                            "typeDescriptions": {
                              "typeIdentifier": "t_int256",
                              "typeString": "int256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "<<",
                          "rightExpression": {
                            "hexValue": "3633",
                            "id": 8119,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "4945:2:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_63_by_1",
                              "typeString": "int_const 63"
                            },
                            "value": "63"
                          },
                          "src": "4939:8:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          }
                        },
                        "functionReturnParameters": 8102,
                        "id": 8121,
                        "nodeType": "Return",
                        "src": "4932:15:38"
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": {
              "id": 8094,
              "nodeType": "StructuredDocumentation",
              "src": "4387:300:38",
              "text": " Calculate x * y rounding towards zero, where x is signed 64.64 fixed point\n number and y is signed 256-bit integer number.  Revert on overflow.\n @param x signed 64.64 fixed point number\n @param y signed 256-bit integer number\n @return signed 256-bit integer number"
            },
            "id": 8196,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "muli",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 8099,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 8096,
                  "mutability": "mutable",
                  "name": "x",
                  "nodeType": "VariableDeclaration",
                  "scope": 8196,
                  "src": "4705:8:38",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_int128",
                    "typeString": "int128"
                  },
                  "typeName": {
                    "id": 8095,
                    "name": "int128",
                    "nodeType": "ElementaryTypeName",
                    "src": "4705:6:38",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int128",
                      "typeString": "int128"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 8098,
                  "mutability": "mutable",
                  "name": "y",
                  "nodeType": "VariableDeclaration",
                  "scope": 8196,
                  "src": "4715:8:38",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_int256",
                    "typeString": "int256"
                  },
                  "typeName": {
                    "id": 8097,
                    "name": "int256",
                    "nodeType": "ElementaryTypeName",
                    "src": "4715:6:38",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int256",
                      "typeString": "int256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4704:20:38"
            },
            "returnParameters": {
              "id": 8102,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 8101,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 8196,
                  "src": "4748:6:38",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_int256",
                    "typeString": "int256"
                  },
                  "typeName": {
                    "id": 8100,
                    "name": "int256",
                    "nodeType": "ElementaryTypeName",
                    "src": "4748:6:38",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int256",
                      "typeString": "int256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4747:8:38"
            },
            "scope": 10621,
            "src": "4690:963:38",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 8267,
              "nodeType": "Block",
              "src": "6026:387:38",
              "statements": [
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 8208,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 8206,
                      "name": "y",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 8201,
                      "src": "6036:1:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "hexValue": "30",
                      "id": 8207,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "6041:1:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "6036:6:38",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 8211,
                  "nodeType": "IfStatement",
                  "src": "6032:20:38",
                  "trueBody": {
                    "expression": {
                      "hexValue": "30",
                      "id": 8209,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "6051:1:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "functionReturnParameters": 8205,
                    "id": 8210,
                    "nodeType": "Return",
                    "src": "6044:8:38"
                  }
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_int128",
                          "typeString": "int128"
                        },
                        "id": 8215,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "id": 8213,
                          "name": "x",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 8199,
                          "src": "6068:1:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int128",
                            "typeString": "int128"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">=",
                        "rightExpression": {
                          "hexValue": "30",
                          "id": 8214,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "6073:1:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "6068:6:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 8212,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        4294967278,
                        4294967278
                      ],
                      "referencedDeclaration": 4294967278,
                      "src": "6059:7:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 8216,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6059:16:38",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 8217,
                  "nodeType": "ExpressionStatement",
                  "src": "6059:16:38"
                },
                {
                  "assignments": [
                    8219
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 8219,
                      "mutability": "mutable",
                      "name": "lo",
                      "nodeType": "VariableDeclaration",
                      "scope": 8267,
                      "src": "6082:10:38",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 8218,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "6082:7:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 8232,
                  "initialValue": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 8231,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "components": [
                        {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 8228,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "arguments": [
                              {
                                "id": 8222,
                                "name": "x",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 8199,
                                "src": "6105:1:38",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_int128",
                                  "typeString": "int128"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_int128",
                                  "typeString": "int128"
                                }
                              ],
                              "id": 8221,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "6096:7:38",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_uint256_$",
                                "typeString": "type(uint256)"
                              },
                              "typeName": {
                                "id": 8220,
                                "name": "uint256",
                                "nodeType": "ElementaryTypeName",
                                "src": "6096:7:38",
                                "typeDescriptions": {}
                              }
                            },
                            "id": 8223,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "6096:11:38",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "*",
                          "rightExpression": {
                            "components": [
                              {
                                "commonType": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                "id": 8226,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "id": 8224,
                                  "name": "y",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 8201,
                                  "src": "6111:1:38",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "&",
                                "rightExpression": {
                                  "hexValue": "30784646464646464646464646464646464646464646464646464646464646464646",
                                  "id": 8225,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "6115:34:38",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_340282366920938463463374607431768211455_by_1",
                                    "typeString": "int_const 3402...(31 digits omitted)...1455"
                                  },
                                  "value": "0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
                                },
                                "src": "6111:38:38",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "id": 8227,
                            "isConstant": false,
                            "isInlineArray": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "TupleExpression",
                            "src": "6110:40:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "6096:54:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "id": 8229,
                      "isConstant": false,
                      "isInlineArray": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "TupleExpression",
                      "src": "6095:56:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">>",
                    "rightExpression": {
                      "hexValue": "3634",
                      "id": 8230,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "6155:2:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_64_by_1",
                        "typeString": "int_const 64"
                      },
                      "value": "64"
                    },
                    "src": "6095:62:38",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "6082:75:38"
                },
                {
                  "assignments": [
                    8234
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 8234,
                      "mutability": "mutable",
                      "name": "hi",
                      "nodeType": "VariableDeclaration",
                      "scope": 8267,
                      "src": "6163:10:38",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 8233,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "6163:7:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 8244,
                  "initialValue": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 8243,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "arguments": [
                        {
                          "id": 8237,
                          "name": "x",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 8199,
                          "src": "6185:1:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int128",
                            "typeString": "int128"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_int128",
                            "typeString": "int128"
                          }
                        ],
                        "id": 8236,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "6176:7:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_uint256_$",
                          "typeString": "type(uint256)"
                        },
                        "typeName": {
                          "id": 8235,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "6176:7:38",
                          "typeDescriptions": {}
                        }
                      },
                      "id": 8238,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "6176:11:38",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "*",
                    "rightExpression": {
                      "components": [
                        {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 8241,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 8239,
                            "name": "y",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8201,
                            "src": "6191:1:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": ">>",
                          "rightExpression": {
                            "hexValue": "313238",
                            "id": 8240,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "6196:3:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_128_by_1",
                              "typeString": "int_const 128"
                            },
                            "value": "128"
                          },
                          "src": "6191:8:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "id": 8242,
                      "isConstant": false,
                      "isInlineArray": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "TupleExpression",
                      "src": "6190:10:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "6176:24:38",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "6163:37:38"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 8248,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "id": 8246,
                          "name": "hi",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 8234,
                          "src": "6216:2:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "<=",
                        "rightExpression": {
                          "hexValue": "3078464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646",
                          "id": 8247,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "6222:50:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_6277101735386680763835789423207666416102355444464034512895_by_1",
                            "typeString": "int_const 6277...(50 digits omitted)...2895"
                          },
                          "value": "0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
                        },
                        "src": "6216:56:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 8245,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        4294967278,
                        4294967278
                      ],
                      "referencedDeclaration": 4294967278,
                      "src": "6207:7:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 8249,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6207:66:38",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 8250,
                  "nodeType": "ExpressionStatement",
                  "src": "6207:66:38"
                },
                {
                  "expression": {
                    "id": 8253,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 8251,
                      "name": "hi",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 8234,
                      "src": "6279:2:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "<<=",
                    "rightHandSide": {
                      "hexValue": "3634",
                      "id": 8252,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "6286:2:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_64_by_1",
                        "typeString": "int_const 64"
                      },
                      "value": "64"
                    },
                    "src": "6279:9:38",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 8254,
                  "nodeType": "ExpressionStatement",
                  "src": "6279:9:38"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 8260,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "id": 8256,
                          "name": "hi",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 8234,
                          "src": "6304:2:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "<=",
                        "rightExpression": {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 8259,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "hexValue": "307846464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646",
                            "id": 8257,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "6316:66:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_115792089237316195423570985008687907853269984665640564039457584007913129639935_by_1",
                              "typeString": "int_const 1157...(70 digits omitted)...9935"
                            },
                            "value": "0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "-",
                          "rightExpression": {
                            "id": 8258,
                            "name": "lo",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8219,
                            "src": "6385:2:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "6316:71:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "6304:83:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 8255,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        4294967278,
                        4294967278
                      ],
                      "referencedDeclaration": 4294967278,
                      "src": "6295:7:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 8261,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6295:93:38",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 8262,
                  "nodeType": "ExpressionStatement",
                  "src": "6295:93:38"
                },
                {
                  "expression": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 8265,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 8263,
                      "name": "hi",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 8234,
                      "src": "6401:2:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "+",
                    "rightExpression": {
                      "id": 8264,
                      "name": "lo",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 8219,
                      "src": "6406:2:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "6401:7:38",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 8205,
                  "id": 8266,
                  "nodeType": "Return",
                  "src": "6394:14:38"
                }
              ]
            },
            "documentation": {
              "id": 8197,
              "nodeType": "StructuredDocumentation",
              "src": "5657:298:38",
              "text": " Calculate x * y rounding down, where x is signed 64.64 fixed point number\n and y is unsigned 256-bit integer number.  Revert on overflow.\n @param x signed 64.64 fixed point number\n @param y unsigned 256-bit integer number\n @return unsigned 256-bit integer number"
            },
            "id": 8268,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "mulu",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 8202,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 8199,
                  "mutability": "mutable",
                  "name": "x",
                  "nodeType": "VariableDeclaration",
                  "scope": 8268,
                  "src": "5973:8:38",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_int128",
                    "typeString": "int128"
                  },
                  "typeName": {
                    "id": 8198,
                    "name": "int128",
                    "nodeType": "ElementaryTypeName",
                    "src": "5973:6:38",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int128",
                      "typeString": "int128"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 8201,
                  "mutability": "mutable",
                  "name": "y",
                  "nodeType": "VariableDeclaration",
                  "scope": 8268,
                  "src": "5983:9:38",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 8200,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "5983:7:38",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "5972:21:38"
            },
            "returnParameters": {
              "id": 8205,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 8204,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 8268,
                  "src": "6017:7:38",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 8203,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "6017:7:38",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "6016:9:38"
            },
            "scope": 10621,
            "src": "5958:455:38",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 8311,
              "nodeType": "Block",
              "src": "6736:157:38",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_int128",
                          "typeString": "int128"
                        },
                        "id": 8281,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "id": 8279,
                          "name": "y",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 8273,
                          "src": "6751:1:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int128",
                            "typeString": "int128"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "!=",
                        "rightExpression": {
                          "hexValue": "30",
                          "id": 8280,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "6756:1:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "6751:6:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 8278,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        4294967278,
                        4294967278
                      ],
                      "referencedDeclaration": 4294967278,
                      "src": "6742:7:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 8282,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6742:16:38",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 8283,
                  "nodeType": "ExpressionStatement",
                  "src": "6742:16:38"
                },
                {
                  "assignments": [
                    8285
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 8285,
                      "mutability": "mutable",
                      "name": "result",
                      "nodeType": "VariableDeclaration",
                      "scope": 8311,
                      "src": "6764:13:38",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int256",
                        "typeString": "int256"
                      },
                      "typeName": {
                        "id": 8284,
                        "name": "int256",
                        "nodeType": "ElementaryTypeName",
                        "src": "6764:6:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 8295,
                  "initialValue": {
                    "commonType": {
                      "typeIdentifier": "t_int256",
                      "typeString": "int256"
                    },
                    "id": 8294,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "components": [
                        {
                          "commonType": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          },
                          "id": 8291,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "arguments": [
                              {
                                "id": 8288,
                                "name": "x",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 8271,
                                "src": "6789:1:38",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_int128",
                                  "typeString": "int128"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_int128",
                                  "typeString": "int128"
                                }
                              ],
                              "id": 8287,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "6781:6:38",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_int256_$",
                                "typeString": "type(int256)"
                              },
                              "typeName": {
                                "id": 8286,
                                "name": "int256",
                                "nodeType": "ElementaryTypeName",
                                "src": "6781:6:38",
                                "typeDescriptions": {}
                              }
                            },
                            "id": 8289,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "6781:10:38",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_int256",
                              "typeString": "int256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "<<",
                          "rightExpression": {
                            "hexValue": "3634",
                            "id": 8290,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "6795:2:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_64_by_1",
                              "typeString": "int_const 64"
                            },
                            "value": "64"
                          },
                          "src": "6781:16:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          }
                        }
                      ],
                      "id": 8292,
                      "isConstant": false,
                      "isInlineArray": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "TupleExpression",
                      "src": "6780:18:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int256",
                        "typeString": "int256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "/",
                    "rightExpression": {
                      "id": 8293,
                      "name": "y",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 8273,
                      "src": "6801:1:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int128",
                        "typeString": "int128"
                      }
                    },
                    "src": "6780:22:38",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int256",
                      "typeString": "int256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "6764:38:38"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 8303,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "commonType": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          },
                          "id": 8299,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 8297,
                            "name": "result",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8285,
                            "src": "6817:6:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_int256",
                              "typeString": "int256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": ">=",
                          "rightExpression": {
                            "id": 8298,
                            "name": "MIN_64x64",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 7850,
                            "src": "6827:9:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_int128",
                              "typeString": "int128"
                            }
                          },
                          "src": "6817:19:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "&&",
                        "rightExpression": {
                          "commonType": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          },
                          "id": 8302,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 8300,
                            "name": "result",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8285,
                            "src": "6840:6:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_int256",
                              "typeString": "int256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "<=",
                          "rightExpression": {
                            "id": 8301,
                            "name": "MAX_64x64",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 7853,
                            "src": "6850:9:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_int128",
                              "typeString": "int128"
                            }
                          },
                          "src": "6840:19:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "6817:42:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 8296,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        4294967278,
                        4294967278
                      ],
                      "referencedDeclaration": 4294967278,
                      "src": "6808:7:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 8304,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6808:52:38",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 8305,
                  "nodeType": "ExpressionStatement",
                  "src": "6808:52:38"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 8308,
                        "name": "result",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8285,
                        "src": "6881:6:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        }
                      ],
                      "id": 8307,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "ElementaryTypeNameExpression",
                      "src": "6873:6:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_int128_$",
                        "typeString": "type(int128)"
                      },
                      "typeName": {
                        "id": 8306,
                        "name": "int128",
                        "nodeType": "ElementaryTypeName",
                        "src": "6873:6:38",
                        "typeDescriptions": {}
                      }
                    },
                    "id": 8309,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "typeConversion",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6873:15:38",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_int128",
                      "typeString": "int128"
                    }
                  },
                  "functionReturnParameters": 8277,
                  "id": 8310,
                  "nodeType": "Return",
                  "src": "6866:22:38"
                }
              ]
            },
            "documentation": {
              "id": 8269,
              "nodeType": "StructuredDocumentation",
              "src": "6417:251:38",
              "text": " Calculate x / y rounding towards zero.  Revert on overflow or when y is\n zero.\n @param x signed 64.64-bit fixed point number\n @param y signed 64.64-bit fixed point number\n @return signed 64.64-bit fixed point number"
            },
            "id": 8312,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "div",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 8274,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 8271,
                  "mutability": "mutable",
                  "name": "x",
                  "nodeType": "VariableDeclaration",
                  "scope": 8312,
                  "src": "6685:8:38",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_int128",
                    "typeString": "int128"
                  },
                  "typeName": {
                    "id": 8270,
                    "name": "int128",
                    "nodeType": "ElementaryTypeName",
                    "src": "6685:6:38",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int128",
                      "typeString": "int128"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 8273,
                  "mutability": "mutable",
                  "name": "y",
                  "nodeType": "VariableDeclaration",
                  "scope": 8312,
                  "src": "6695:8:38",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_int128",
                    "typeString": "int128"
                  },
                  "typeName": {
                    "id": 8272,
                    "name": "int128",
                    "nodeType": "ElementaryTypeName",
                    "src": "6695:6:38",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int128",
                      "typeString": "int128"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "6684:20:38"
            },
            "returnParameters": {
              "id": 8277,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 8276,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 8312,
                  "src": "6728:6:38",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_int128",
                    "typeString": "int128"
                  },
                  "typeName": {
                    "id": 8275,
                    "name": "int128",
                    "nodeType": "ElementaryTypeName",
                    "src": "6728:6:38",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int128",
                      "typeString": "int128"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "6727:8:38"
            },
            "scope": 10621,
            "src": "6671:222:38",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 8401,
              "nodeType": "Block",
              "src": "7255:677:38",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        },
                        "id": 8325,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "id": 8323,
                          "name": "y",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 8317,
                          "src": "7270:1:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "!=",
                        "rightExpression": {
                          "hexValue": "30",
                          "id": 8324,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "7275:1:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "7270:6:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 8322,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        4294967278,
                        4294967278
                      ],
                      "referencedDeclaration": 4294967278,
                      "src": "7261:7:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 8326,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7261:16:38",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 8327,
                  "nodeType": "ExpressionStatement",
                  "src": "7261:16:38"
                },
                {
                  "assignments": [
                    8329
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 8329,
                      "mutability": "mutable",
                      "name": "negativeResult",
                      "nodeType": "VariableDeclaration",
                      "scope": 8401,
                      "src": "7284:19:38",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      },
                      "typeName": {
                        "id": 8328,
                        "name": "bool",
                        "nodeType": "ElementaryTypeName",
                        "src": "7284:4:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 8331,
                  "initialValue": {
                    "hexValue": "66616c7365",
                    "id": 8330,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "bool",
                    "lValueRequested": false,
                    "nodeType": "Literal",
                    "src": "7306:5:38",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    },
                    "value": "false"
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "7284:27:38"
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_int256",
                      "typeString": "int256"
                    },
                    "id": 8334,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 8332,
                      "name": "x",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 8315,
                      "src": "7321:1:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int256",
                        "typeString": "int256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "hexValue": "30",
                      "id": 8333,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "7325:1:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "7321:5:38",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 8345,
                  "nodeType": "IfStatement",
                  "src": "7317:98:38",
                  "trueBody": {
                    "id": 8344,
                    "nodeType": "Block",
                    "src": "7328:87:38",
                    "statements": [
                      {
                        "expression": {
                          "id": 8338,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "id": 8335,
                            "name": "x",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8315,
                            "src": "7336:1:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_int256",
                              "typeString": "int256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "id": 8337,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "UnaryOperation",
                            "operator": "-",
                            "prefix": true,
                            "src": "7340:2:38",
                            "subExpression": {
                              "id": 8336,
                              "name": "x",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 8315,
                              "src": "7341:1:38",
                              "typeDescriptions": {
                                "typeIdentifier": "t_int256",
                                "typeString": "int256"
                              }
                            },
                            "typeDescriptions": {
                              "typeIdentifier": "t_int256",
                              "typeString": "int256"
                            }
                          },
                          "src": "7336:6:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          }
                        },
                        "id": 8339,
                        "nodeType": "ExpressionStatement",
                        "src": "7336:6:38"
                      },
                      {
                        "expression": {
                          "id": 8342,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "id": 8340,
                            "name": "negativeResult",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8329,
                            "src": "7387:14:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "hexValue": "74727565",
                            "id": 8341,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "bool",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "7404:4:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            },
                            "value": "true"
                          },
                          "src": "7387:21:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "id": 8343,
                        "nodeType": "ExpressionStatement",
                        "src": "7387:21:38"
                      }
                    ]
                  }
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_int256",
                      "typeString": "int256"
                    },
                    "id": 8348,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 8346,
                      "name": "y",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 8317,
                      "src": "7424:1:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int256",
                        "typeString": "int256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "hexValue": "30",
                      "id": 8347,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "7428:1:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "7424:5:38",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 8360,
                  "nodeType": "IfStatement",
                  "src": "7420:109:38",
                  "trueBody": {
                    "id": 8359,
                    "nodeType": "Block",
                    "src": "7431:98:38",
                    "statements": [
                      {
                        "expression": {
                          "id": 8352,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "id": 8349,
                            "name": "y",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8317,
                            "src": "7439:1:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_int256",
                              "typeString": "int256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "id": 8351,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "UnaryOperation",
                            "operator": "-",
                            "prefix": true,
                            "src": "7443:2:38",
                            "subExpression": {
                              "id": 8350,
                              "name": "y",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 8317,
                              "src": "7444:1:38",
                              "typeDescriptions": {
                                "typeIdentifier": "t_int256",
                                "typeString": "int256"
                              }
                            },
                            "typeDescriptions": {
                              "typeIdentifier": "t_int256",
                              "typeString": "int256"
                            }
                          },
                          "src": "7439:6:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          }
                        },
                        "id": 8353,
                        "nodeType": "ExpressionStatement",
                        "src": "7439:6:38"
                      },
                      {
                        "expression": {
                          "id": 8357,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "id": 8354,
                            "name": "negativeResult",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8329,
                            "src": "7490:14:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "id": 8356,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "UnaryOperation",
                            "operator": "!",
                            "prefix": true,
                            "src": "7507:15:38",
                            "subExpression": {
                              "id": 8355,
                              "name": "negativeResult",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 8329,
                              "src": "7508:14:38",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "src": "7490:32:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "id": 8358,
                        "nodeType": "ExpressionStatement",
                        "src": "7490:32:38"
                      }
                    ]
                  }
                },
                {
                  "assignments": [
                    8362
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 8362,
                      "mutability": "mutable",
                      "name": "absoluteResult",
                      "nodeType": "VariableDeclaration",
                      "scope": 8401,
                      "src": "7534:22:38",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint128",
                        "typeString": "uint128"
                      },
                      "typeName": {
                        "id": 8361,
                        "name": "uint128",
                        "nodeType": "ElementaryTypeName",
                        "src": "7534:7:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint128",
                          "typeString": "uint128"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 8373,
                  "initialValue": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "id": 8366,
                            "name": "x",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8315,
                            "src": "7575:1:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_int256",
                              "typeString": "int256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_int256",
                              "typeString": "int256"
                            }
                          ],
                          "id": 8365,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "7566:7:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_uint256_$",
                            "typeString": "type(uint256)"
                          },
                          "typeName": {
                            "id": 8364,
                            "name": "uint256",
                            "nodeType": "ElementaryTypeName",
                            "src": "7566:7:38",
                            "typeDescriptions": {}
                          }
                        },
                        "id": 8367,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "7566:11:38",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "arguments": [
                          {
                            "id": 8370,
                            "name": "y",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8317,
                            "src": "7588:1:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_int256",
                              "typeString": "int256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_int256",
                              "typeString": "int256"
                            }
                          ],
                          "id": 8369,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "7579:7:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_uint256_$",
                            "typeString": "type(uint256)"
                          },
                          "typeName": {
                            "id": 8368,
                            "name": "uint256",
                            "nodeType": "ElementaryTypeName",
                            "src": "7579:7:38",
                            "typeDescriptions": {}
                          }
                        },
                        "id": 8371,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "7579:11:38",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 8363,
                      "name": "divuu",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 10126,
                      "src": "7559:5:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint128_$",
                        "typeString": "function (uint256,uint256) pure returns (uint128)"
                      }
                    },
                    "id": 8372,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7559:32:38",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint128",
                      "typeString": "uint128"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "7534:57:38"
                },
                {
                  "condition": {
                    "id": 8374,
                    "name": "negativeResult",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 8329,
                    "src": "7601:14:38",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "id": 8399,
                    "nodeType": "Block",
                    "src": "7776:152:38",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "commonType": {
                                "typeIdentifier": "t_uint128",
                                "typeString": "uint128"
                              },
                              "id": 8391,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "id": 8389,
                                "name": "absoluteResult",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 8362,
                                "src": "7793:14:38",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint128",
                                  "typeString": "uint128"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "<=",
                              "rightExpression": {
                                "hexValue": "30783746464646464646464646464646464646464646464646464646464646464646",
                                "id": 8390,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "7811:34:38",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_170141183460469231731687303715884105727_by_1",
                                  "typeString": "int_const 1701...(31 digits omitted)...5727"
                                },
                                "value": "0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
                              },
                              "src": "7793:52:38",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            ],
                            "id": 8388,
                            "name": "require",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [
                              4294967278,
                              4294967278
                            ],
                            "referencedDeclaration": 4294967278,
                            "src": "7784:7:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                              "typeString": "function (bool) pure"
                            }
                          },
                          "id": 8392,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "7784:62:38",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 8393,
                        "nodeType": "ExpressionStatement",
                        "src": "7784:62:38"
                      },
                      {
                        "expression": {
                          "arguments": [
                            {
                              "id": 8396,
                              "name": "absoluteResult",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 8362,
                              "src": "7869:14:38",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint128",
                                "typeString": "uint128"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint128",
                                "typeString": "uint128"
                              }
                            ],
                            "id": 8395,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "7861:6:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_int128_$",
                              "typeString": "type(int128)"
                            },
                            "typeName": {
                              "id": 8394,
                              "name": "int128",
                              "nodeType": "ElementaryTypeName",
                              "src": "7861:6:38",
                              "typeDescriptions": {}
                            }
                          },
                          "id": 8397,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "7861:23:38",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_int128",
                            "typeString": "int128"
                          }
                        },
                        "functionReturnParameters": 8321,
                        "id": 8398,
                        "nodeType": "Return",
                        "src": "7854:30:38"
                      }
                    ]
                  },
                  "id": 8400,
                  "nodeType": "IfStatement",
                  "src": "7597:331:38",
                  "trueBody": {
                    "id": 8387,
                    "nodeType": "Block",
                    "src": "7617:153:38",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "commonType": {
                                "typeIdentifier": "t_uint128",
                                "typeString": "uint128"
                              },
                              "id": 8378,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "id": 8376,
                                "name": "absoluteResult",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 8362,
                                "src": "7634:14:38",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint128",
                                  "typeString": "uint128"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "<=",
                              "rightExpression": {
                                "hexValue": "30783830303030303030303030303030303030303030303030303030303030303030",
                                "id": 8377,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "7652:34:38",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_170141183460469231731687303715884105728_by_1",
                                  "typeString": "int_const 1701...(31 digits omitted)...5728"
                                },
                                "value": "0x80000000000000000000000000000000"
                              },
                              "src": "7634:52:38",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            ],
                            "id": 8375,
                            "name": "require",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [
                              4294967278,
                              4294967278
                            ],
                            "referencedDeclaration": 4294967278,
                            "src": "7625:7:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                              "typeString": "function (bool) pure"
                            }
                          },
                          "id": 8379,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "7625:62:38",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 8380,
                        "nodeType": "ExpressionStatement",
                        "src": "7625:62:38"
                      },
                      {
                        "expression": {
                          "id": 8385,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "UnaryOperation",
                          "operator": "-",
                          "prefix": true,
                          "src": "7702:24:38",
                          "subExpression": {
                            "arguments": [
                              {
                                "id": 8383,
                                "name": "absoluteResult",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 8362,
                                "src": "7711:14:38",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint128",
                                  "typeString": "uint128"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint128",
                                  "typeString": "uint128"
                                }
                              ],
                              "id": 8382,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "7703:6:38",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_int128_$",
                                "typeString": "type(int128)"
                              },
                              "typeName": {
                                "id": 8381,
                                "name": "int128",
                                "nodeType": "ElementaryTypeName",
                                "src": "7703:6:38",
                                "typeDescriptions": {}
                              }
                            },
                            "id": 8384,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "7703:23:38",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_int128",
                              "typeString": "int128"
                            }
                          },
                          "typeDescriptions": {
                            "typeIdentifier": "t_int128",
                            "typeString": "int128"
                          }
                        },
                        "functionReturnParameters": 8321,
                        "id": 8386,
                        "nodeType": "Return",
                        "src": "7695:31:38"
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": {
              "id": 8313,
              "nodeType": "StructuredDocumentation",
              "src": "6897:289:38",
              "text": " Calculate x / y rounding towards zero, where x and y are signed 256-bit\n integer numbers.  Revert on overflow or when y is zero.\n @param x signed 256-bit integer number\n @param y signed 256-bit integer number\n @return signed 64.64-bit fixed point number"
            },
            "id": 8402,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "divi",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 8318,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 8315,
                  "mutability": "mutable",
                  "name": "x",
                  "nodeType": "VariableDeclaration",
                  "scope": 8402,
                  "src": "7204:8:38",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_int256",
                    "typeString": "int256"
                  },
                  "typeName": {
                    "id": 8314,
                    "name": "int256",
                    "nodeType": "ElementaryTypeName",
                    "src": "7204:6:38",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int256",
                      "typeString": "int256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 8317,
                  "mutability": "mutable",
                  "name": "y",
                  "nodeType": "VariableDeclaration",
                  "scope": 8402,
                  "src": "7214:8:38",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_int256",
                    "typeString": "int256"
                  },
                  "typeName": {
                    "id": 8316,
                    "name": "int256",
                    "nodeType": "ElementaryTypeName",
                    "src": "7214:6:38",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int256",
                      "typeString": "int256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "7203:20:38"
            },
            "returnParameters": {
              "id": 8321,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 8320,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 8402,
                  "src": "7247:6:38",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_int128",
                    "typeString": "int128"
                  },
                  "typeName": {
                    "id": 8319,
                    "name": "int128",
                    "nodeType": "ElementaryTypeName",
                    "src": "7247:6:38",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int128",
                      "typeString": "int128"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "7246:8:38"
            },
            "scope": 10621,
            "src": "7189:743:38",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 8439,
              "nodeType": "Block",
              "src": "8302:135:38",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 8415,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "id": 8413,
                          "name": "y",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 8407,
                          "src": "8317:1:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "!=",
                        "rightExpression": {
                          "hexValue": "30",
                          "id": 8414,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "8322:1:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "8317:6:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 8412,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        4294967278,
                        4294967278
                      ],
                      "referencedDeclaration": 4294967278,
                      "src": "8308:7:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 8416,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8308:16:38",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 8417,
                  "nodeType": "ExpressionStatement",
                  "src": "8308:16:38"
                },
                {
                  "assignments": [
                    8419
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 8419,
                      "mutability": "mutable",
                      "name": "result",
                      "nodeType": "VariableDeclaration",
                      "scope": 8439,
                      "src": "8330:14:38",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint128",
                        "typeString": "uint128"
                      },
                      "typeName": {
                        "id": 8418,
                        "name": "uint128",
                        "nodeType": "ElementaryTypeName",
                        "src": "8330:7:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint128",
                          "typeString": "uint128"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 8424,
                  "initialValue": {
                    "arguments": [
                      {
                        "id": 8421,
                        "name": "x",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8405,
                        "src": "8354:1:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "id": 8422,
                        "name": "y",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8407,
                        "src": "8357:1:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 8420,
                      "name": "divuu",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 10126,
                      "src": "8347:5:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint128_$",
                        "typeString": "function (uint256,uint256) pure returns (uint128)"
                      }
                    },
                    "id": 8423,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8347:12:38",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint128",
                      "typeString": "uint128"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "8330:29:38"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_uint128",
                          "typeString": "uint128"
                        },
                        "id": 8431,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "id": 8426,
                          "name": "result",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 8419,
                          "src": "8374:6:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint128",
                            "typeString": "uint128"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "<=",
                        "rightExpression": {
                          "arguments": [
                            {
                              "id": 8429,
                              "name": "MAX_64x64",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 7853,
                              "src": "8393:9:38",
                              "typeDescriptions": {
                                "typeIdentifier": "t_int128",
                                "typeString": "int128"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_int128",
                                "typeString": "int128"
                              }
                            ],
                            "id": 8428,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "8384:7:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_uint128_$",
                              "typeString": "type(uint128)"
                            },
                            "typeName": {
                              "id": 8427,
                              "name": "uint128",
                              "nodeType": "ElementaryTypeName",
                              "src": "8384:7:38",
                              "typeDescriptions": {}
                            }
                          },
                          "id": 8430,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "8384:19:38",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint128",
                            "typeString": "uint128"
                          }
                        },
                        "src": "8374:29:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 8425,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        4294967278,
                        4294967278
                      ],
                      "referencedDeclaration": 4294967278,
                      "src": "8365:7:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 8432,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8365:39:38",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 8433,
                  "nodeType": "ExpressionStatement",
                  "src": "8365:39:38"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 8436,
                        "name": "result",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8419,
                        "src": "8425:6:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint128",
                          "typeString": "uint128"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint128",
                          "typeString": "uint128"
                        }
                      ],
                      "id": 8435,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "ElementaryTypeNameExpression",
                      "src": "8417:6:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_int128_$",
                        "typeString": "type(int128)"
                      },
                      "typeName": {
                        "id": 8434,
                        "name": "int128",
                        "nodeType": "ElementaryTypeName",
                        "src": "8417:6:38",
                        "typeDescriptions": {}
                      }
                    },
                    "id": 8437,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "typeConversion",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8417:15:38",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_int128",
                      "typeString": "int128"
                    }
                  },
                  "functionReturnParameters": 8411,
                  "id": 8438,
                  "nodeType": "Return",
                  "src": "8410:22:38"
                }
              ]
            },
            "documentation": {
              "id": 8403,
              "nodeType": "StructuredDocumentation",
              "src": "7936:295:38",
              "text": " Calculate x / y rounding towards zero, where x and y are unsigned 256-bit\n integer numbers.  Revert on overflow or when y is zero.\n @param x unsigned 256-bit integer number\n @param y unsigned 256-bit integer number\n @return signed 64.64-bit fixed point number"
            },
            "id": 8440,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "divu",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 8408,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 8405,
                  "mutability": "mutable",
                  "name": "x",
                  "nodeType": "VariableDeclaration",
                  "scope": 8440,
                  "src": "8249:9:38",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 8404,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "8249:7:38",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 8407,
                  "mutability": "mutable",
                  "name": "y",
                  "nodeType": "VariableDeclaration",
                  "scope": 8440,
                  "src": "8260:9:38",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 8406,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "8260:7:38",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "8248:22:38"
            },
            "returnParameters": {
              "id": 8411,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 8410,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 8440,
                  "src": "8294:6:38",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_int128",
                    "typeString": "int128"
                  },
                  "typeName": {
                    "id": 8409,
                    "name": "int128",
                    "nodeType": "ElementaryTypeName",
                    "src": "8294:6:38",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int128",
                      "typeString": "int128"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "8293:8:38"
            },
            "scope": 10621,
            "src": "8234:203:38",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 8457,
              "nodeType": "Block",
              "src": "8652:50:38",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_int128",
                          "typeString": "int128"
                        },
                        "id": 8451,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "id": 8449,
                          "name": "x",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 8443,
                          "src": "8667:1:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int128",
                            "typeString": "int128"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "!=",
                        "rightExpression": {
                          "id": 8450,
                          "name": "MIN_64x64",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 7850,
                          "src": "8672:9:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int128",
                            "typeString": "int128"
                          }
                        },
                        "src": "8667:14:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 8448,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        4294967278,
                        4294967278
                      ],
                      "referencedDeclaration": 4294967278,
                      "src": "8658:7:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 8452,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8658:24:38",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 8453,
                  "nodeType": "ExpressionStatement",
                  "src": "8658:24:38"
                },
                {
                  "expression": {
                    "id": 8455,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "UnaryOperation",
                    "operator": "-",
                    "prefix": true,
                    "src": "8695:2:38",
                    "subExpression": {
                      "id": 8454,
                      "name": "x",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 8443,
                      "src": "8696:1:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int128",
                        "typeString": "int128"
                      }
                    },
                    "typeDescriptions": {
                      "typeIdentifier": "t_int128",
                      "typeString": "int128"
                    }
                  },
                  "functionReturnParameters": 8447,
                  "id": 8456,
                  "nodeType": "Return",
                  "src": "8688:9:38"
                }
              ]
            },
            "documentation": {
              "id": 8441,
              "nodeType": "StructuredDocumentation",
              "src": "8441:153:38",
              "text": " Calculate -x.  Revert on overflow.\n @param x signed 64.64-bit fixed point number\n @return signed 64.64-bit fixed point number"
            },
            "id": 8458,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "neg",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 8444,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 8443,
                  "mutability": "mutable",
                  "name": "x",
                  "nodeType": "VariableDeclaration",
                  "scope": 8458,
                  "src": "8611:8:38",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_int128",
                    "typeString": "int128"
                  },
                  "typeName": {
                    "id": 8442,
                    "name": "int128",
                    "nodeType": "ElementaryTypeName",
                    "src": "8611:6:38",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int128",
                      "typeString": "int128"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "8610:10:38"
            },
            "returnParameters": {
              "id": 8447,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 8446,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 8458,
                  "src": "8644:6:38",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_int128",
                    "typeString": "int128"
                  },
                  "typeName": {
                    "id": 8445,
                    "name": "int128",
                    "nodeType": "ElementaryTypeName",
                    "src": "8644:6:38",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int128",
                      "typeString": "int128"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "8643:8:38"
            },
            "scope": 10621,
            "src": "8597:105:38",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 8480,
              "nodeType": "Block",
              "src": "8918:62:38",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_int128",
                          "typeString": "int128"
                        },
                        "id": 8469,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "id": 8467,
                          "name": "x",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 8461,
                          "src": "8933:1:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int128",
                            "typeString": "int128"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "!=",
                        "rightExpression": {
                          "id": 8468,
                          "name": "MIN_64x64",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 7850,
                          "src": "8938:9:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int128",
                            "typeString": "int128"
                          }
                        },
                        "src": "8933:14:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 8466,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        4294967278,
                        4294967278
                      ],
                      "referencedDeclaration": 4294967278,
                      "src": "8924:7:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 8470,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8924:24:38",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 8471,
                  "nodeType": "ExpressionStatement",
                  "src": "8924:24:38"
                },
                {
                  "expression": {
                    "condition": {
                      "commonType": {
                        "typeIdentifier": "t_int128",
                        "typeString": "int128"
                      },
                      "id": 8474,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "id": 8472,
                        "name": "x",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8461,
                        "src": "8961:1:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int128",
                          "typeString": "int128"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "<",
                      "rightExpression": {
                        "hexValue": "30",
                        "id": 8473,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "8965:1:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      },
                      "src": "8961:5:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "falseExpression": {
                      "id": 8477,
                      "name": "x",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 8461,
                      "src": "8974:1:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int128",
                        "typeString": "int128"
                      }
                    },
                    "id": 8478,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "Conditional",
                    "src": "8961:14:38",
                    "trueExpression": {
                      "id": 8476,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "-",
                      "prefix": true,
                      "src": "8969:2:38",
                      "subExpression": {
                        "id": 8475,
                        "name": "x",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8461,
                        "src": "8970:1:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int128",
                          "typeString": "int128"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_int128",
                        "typeString": "int128"
                      }
                    },
                    "typeDescriptions": {
                      "typeIdentifier": "t_int128",
                      "typeString": "int128"
                    }
                  },
                  "functionReturnParameters": 8465,
                  "id": 8479,
                  "nodeType": "Return",
                  "src": "8954:21:38"
                }
              ]
            },
            "documentation": {
              "id": 8459,
              "nodeType": "StructuredDocumentation",
              "src": "8706:154:38",
              "text": " Calculate |x|.  Revert on overflow.\n @param x signed 64.64-bit fixed point number\n @return signed 64.64-bit fixed point number"
            },
            "id": 8481,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "abs",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 8462,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 8461,
                  "mutability": "mutable",
                  "name": "x",
                  "nodeType": "VariableDeclaration",
                  "scope": 8481,
                  "src": "8877:8:38",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_int128",
                    "typeString": "int128"
                  },
                  "typeName": {
                    "id": 8460,
                    "name": "int128",
                    "nodeType": "ElementaryTypeName",
                    "src": "8877:6:38",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int128",
                      "typeString": "int128"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "8876:10:38"
            },
            "returnParameters": {
              "id": 8465,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 8464,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 8481,
                  "src": "8910:6:38",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_int128",
                    "typeString": "int128"
                  },
                  "typeName": {
                    "id": 8463,
                    "name": "int128",
                    "nodeType": "ElementaryTypeName",
                    "src": "8910:6:38",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int128",
                      "typeString": "int128"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "8909:8:38"
            },
            "scope": 10621,
            "src": "8863:117:38",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 8519,
              "nodeType": "Block",
              "src": "9243:183:38",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_int128",
                          "typeString": "int128"
                        },
                        "id": 8492,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "id": 8490,
                          "name": "x",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 8484,
                          "src": "9258:1:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int128",
                            "typeString": "int128"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "!=",
                        "rightExpression": {
                          "hexValue": "30",
                          "id": 8491,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "9263:1:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "9258:6:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 8489,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        4294967278,
                        4294967278
                      ],
                      "referencedDeclaration": 4294967278,
                      "src": "9249:7:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 8493,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "9249:16:38",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 8494,
                  "nodeType": "ExpressionStatement",
                  "src": "9249:16:38"
                },
                {
                  "assignments": [
                    8496
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 8496,
                      "mutability": "mutable",
                      "name": "result",
                      "nodeType": "VariableDeclaration",
                      "scope": 8519,
                      "src": "9271:13:38",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int256",
                        "typeString": "int256"
                      },
                      "typeName": {
                        "id": 8495,
                        "name": "int256",
                        "nodeType": "ElementaryTypeName",
                        "src": "9271:6:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 8503,
                  "initialValue": {
                    "commonType": {
                      "typeIdentifier": "t_int256",
                      "typeString": "int256"
                    },
                    "id": 8502,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "arguments": [
                        {
                          "hexValue": "3078313030303030303030303030303030303030303030303030303030303030303030",
                          "id": 8499,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "9295:35:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_340282366920938463463374607431768211456_by_1",
                            "typeString": "int_const 3402...(31 digits omitted)...1456"
                          },
                          "value": "0x100000000000000000000000000000000"
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_rational_340282366920938463463374607431768211456_by_1",
                            "typeString": "int_const 3402...(31 digits omitted)...1456"
                          }
                        ],
                        "id": 8498,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "9287:6:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_int256_$",
                          "typeString": "type(int256)"
                        },
                        "typeName": {
                          "id": 8497,
                          "name": "int256",
                          "nodeType": "ElementaryTypeName",
                          "src": "9287:6:38",
                          "typeDescriptions": {}
                        }
                      },
                      "id": 8500,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "9287:44:38",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_int256",
                        "typeString": "int256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "/",
                    "rightExpression": {
                      "id": 8501,
                      "name": "x",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 8484,
                      "src": "9334:1:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int128",
                        "typeString": "int128"
                      }
                    },
                    "src": "9287:48:38",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int256",
                      "typeString": "int256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "9271:64:38"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 8511,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "commonType": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          },
                          "id": 8507,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 8505,
                            "name": "result",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8496,
                            "src": "9350:6:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_int256",
                              "typeString": "int256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": ">=",
                          "rightExpression": {
                            "id": 8506,
                            "name": "MIN_64x64",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 7850,
                            "src": "9360:9:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_int128",
                              "typeString": "int128"
                            }
                          },
                          "src": "9350:19:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "&&",
                        "rightExpression": {
                          "commonType": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          },
                          "id": 8510,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 8508,
                            "name": "result",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8496,
                            "src": "9373:6:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_int256",
                              "typeString": "int256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "<=",
                          "rightExpression": {
                            "id": 8509,
                            "name": "MAX_64x64",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 7853,
                            "src": "9383:9:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_int128",
                              "typeString": "int128"
                            }
                          },
                          "src": "9373:19:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "9350:42:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 8504,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        4294967278,
                        4294967278
                      ],
                      "referencedDeclaration": 4294967278,
                      "src": "9341:7:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 8512,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "9341:52:38",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 8513,
                  "nodeType": "ExpressionStatement",
                  "src": "9341:52:38"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 8516,
                        "name": "result",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8496,
                        "src": "9414:6:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        }
                      ],
                      "id": 8515,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "ElementaryTypeNameExpression",
                      "src": "9406:6:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_int128_$",
                        "typeString": "type(int128)"
                      },
                      "typeName": {
                        "id": 8514,
                        "name": "int128",
                        "nodeType": "ElementaryTypeName",
                        "src": "9406:6:38",
                        "typeDescriptions": {}
                      }
                    },
                    "id": 8517,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "typeConversion",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "9406:15:38",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_int128",
                      "typeString": "int128"
                    }
                  },
                  "functionReturnParameters": 8488,
                  "id": 8518,
                  "nodeType": "Return",
                  "src": "9399:22:38"
                }
              ]
            },
            "documentation": {
              "id": 8482,
              "nodeType": "StructuredDocumentation",
              "src": "8984:201:38",
              "text": " Calculate 1 / x rounding towards zero.  Revert on overflow or when x is\n zero.\n @param x signed 64.64-bit fixed point number\n @return signed 64.64-bit fixed point number"
            },
            "id": 8520,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "inv",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 8485,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 8484,
                  "mutability": "mutable",
                  "name": "x",
                  "nodeType": "VariableDeclaration",
                  "scope": 8520,
                  "src": "9202:8:38",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_int128",
                    "typeString": "int128"
                  },
                  "typeName": {
                    "id": 8483,
                    "name": "int128",
                    "nodeType": "ElementaryTypeName",
                    "src": "9202:6:38",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int128",
                      "typeString": "int128"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "9201:10:38"
            },
            "returnParameters": {
              "id": 8488,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 8487,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 8520,
                  "src": "9235:6:38",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_int128",
                    "typeString": "int128"
                  },
                  "typeName": {
                    "id": 8486,
                    "name": "int128",
                    "nodeType": "ElementaryTypeName",
                    "src": "9235:6:38",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int128",
                      "typeString": "int128"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "9234:8:38"
            },
            "scope": 10621,
            "src": "9188:238:38",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 8546,
              "nodeType": "Block",
              "src": "9740:57:38",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        },
                        "id": 8543,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "components": [
                            {
                              "commonType": {
                                "typeIdentifier": "t_int256",
                                "typeString": "int256"
                              },
                              "id": 8540,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "arguments": [
                                  {
                                    "id": 8534,
                                    "name": "x",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 8523,
                                    "src": "9770:1:38",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_int128",
                                      "typeString": "int128"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_int128",
                                      "typeString": "int128"
                                    }
                                  ],
                                  "id": 8533,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "9762:6:38",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_int256_$",
                                    "typeString": "type(int256)"
                                  },
                                  "typeName": {
                                    "id": 8532,
                                    "name": "int256",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "9762:6:38",
                                    "typeDescriptions": {}
                                  }
                                },
                                "id": 8535,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "9762:10:38",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_int256",
                                  "typeString": "int256"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "+",
                              "rightExpression": {
                                "arguments": [
                                  {
                                    "id": 8538,
                                    "name": "y",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 8525,
                                    "src": "9783:1:38",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_int128",
                                      "typeString": "int128"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_int128",
                                      "typeString": "int128"
                                    }
                                  ],
                                  "id": 8537,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "9775:6:38",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_int256_$",
                                    "typeString": "type(int256)"
                                  },
                                  "typeName": {
                                    "id": 8536,
                                    "name": "int256",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "9775:6:38",
                                    "typeDescriptions": {}
                                  }
                                },
                                "id": 8539,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "9775:10:38",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_int256",
                                  "typeString": "int256"
                                }
                              },
                              "src": "9762:23:38",
                              "typeDescriptions": {
                                "typeIdentifier": "t_int256",
                                "typeString": "int256"
                              }
                            }
                          ],
                          "id": 8541,
                          "isConstant": false,
                          "isInlineArray": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "TupleExpression",
                          "src": "9761:25:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">>",
                        "rightExpression": {
                          "hexValue": "31",
                          "id": 8542,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "9790:1:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_1_by_1",
                            "typeString": "int_const 1"
                          },
                          "value": "1"
                        },
                        "src": "9761:30:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        }
                      ],
                      "id": 8531,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "ElementaryTypeNameExpression",
                      "src": "9753:6:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_int128_$",
                        "typeString": "type(int128)"
                      },
                      "typeName": {
                        "id": 8530,
                        "name": "int128",
                        "nodeType": "ElementaryTypeName",
                        "src": "9753:6:38",
                        "typeDescriptions": {}
                      }
                    },
                    "id": 8544,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "typeConversion",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "9753:39:38",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_int128",
                      "typeString": "int128"
                    }
                  },
                  "functionReturnParameters": 8529,
                  "id": 8545,
                  "nodeType": "Return",
                  "src": "9746:46:38"
                }
              ]
            },
            "documentation": {
              "id": 8521,
              "nodeType": "StructuredDocumentation",
              "src": "9430:242:38",
              "text": " Calculate arithmetics average of x and y, i.e. (x + y) / 2 rounding down.\n @param x signed 64.64-bit fixed point number\n @param y signed 64.64-bit fixed point number\n @return signed 64.64-bit fixed point number"
            },
            "id": 8547,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "avg",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 8526,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 8523,
                  "mutability": "mutable",
                  "name": "x",
                  "nodeType": "VariableDeclaration",
                  "scope": 8547,
                  "src": "9689:8:38",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_int128",
                    "typeString": "int128"
                  },
                  "typeName": {
                    "id": 8522,
                    "name": "int128",
                    "nodeType": "ElementaryTypeName",
                    "src": "9689:6:38",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int128",
                      "typeString": "int128"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 8525,
                  "mutability": "mutable",
                  "name": "y",
                  "nodeType": "VariableDeclaration",
                  "scope": 8547,
                  "src": "9699:8:38",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_int128",
                    "typeString": "int128"
                  },
                  "typeName": {
                    "id": 8524,
                    "name": "int128",
                    "nodeType": "ElementaryTypeName",
                    "src": "9699:6:38",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int128",
                      "typeString": "int128"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "9688:20:38"
            },
            "returnParameters": {
              "id": 8529,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 8528,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 8547,
                  "src": "9732:6:38",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_int128",
                    "typeString": "int128"
                  },
                  "typeName": {
                    "id": 8527,
                    "name": "int128",
                    "nodeType": "ElementaryTypeName",
                    "src": "9732:6:38",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int128",
                      "typeString": "int128"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "9731:8:38"
            },
            "scope": 10621,
            "src": "9675:122:38",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 8591,
              "nodeType": "Block",
              "src": "10165:202:38",
              "statements": [
                {
                  "assignments": [
                    8558
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 8558,
                      "mutability": "mutable",
                      "name": "m",
                      "nodeType": "VariableDeclaration",
                      "scope": 8591,
                      "src": "10171:8:38",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int256",
                        "typeString": "int256"
                      },
                      "typeName": {
                        "id": 8557,
                        "name": "int256",
                        "nodeType": "ElementaryTypeName",
                        "src": "10171:6:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 8568,
                  "initialValue": {
                    "commonType": {
                      "typeIdentifier": "t_int256",
                      "typeString": "int256"
                    },
                    "id": 8567,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "arguments": [
                        {
                          "id": 8561,
                          "name": "x",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 8550,
                          "src": "10190:1:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int128",
                            "typeString": "int128"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_int128",
                            "typeString": "int128"
                          }
                        ],
                        "id": 8560,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "10182:6:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_int256_$",
                          "typeString": "type(int256)"
                        },
                        "typeName": {
                          "id": 8559,
                          "name": "int256",
                          "nodeType": "ElementaryTypeName",
                          "src": "10182:6:38",
                          "typeDescriptions": {}
                        }
                      },
                      "id": 8562,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "10182:10:38",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_int256",
                        "typeString": "int256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "*",
                    "rightExpression": {
                      "arguments": [
                        {
                          "id": 8565,
                          "name": "y",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 8552,
                          "src": "10203:1:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int128",
                            "typeString": "int128"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_int128",
                            "typeString": "int128"
                          }
                        ],
                        "id": 8564,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "10195:6:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_int256_$",
                          "typeString": "type(int256)"
                        },
                        "typeName": {
                          "id": 8563,
                          "name": "int256",
                          "nodeType": "ElementaryTypeName",
                          "src": "10195:6:38",
                          "typeDescriptions": {}
                        }
                      },
                      "id": 8566,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "10195:10:38",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_int256",
                        "typeString": "int256"
                      }
                    },
                    "src": "10182:23:38",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int256",
                      "typeString": "int256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "10171:34:38"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        },
                        "id": 8572,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "id": 8570,
                          "name": "m",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 8558,
                          "src": "10220:1:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">=",
                        "rightExpression": {
                          "hexValue": "30",
                          "id": 8571,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "10225:1:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "10220:6:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 8569,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        4294967278,
                        4294967278
                      ],
                      "referencedDeclaration": 4294967278,
                      "src": "10211:7:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 8573,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "10211:16:38",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 8574,
                  "nodeType": "ExpressionStatement",
                  "src": "10211:16:38"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        },
                        "id": 8578,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "id": 8576,
                          "name": "m",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 8558,
                          "src": "10242:1:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "<",
                        "rightExpression": {
                          "hexValue": "307834303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030",
                          "id": 8577,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "10254:66:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_28948022309329048855892746252171976963317496166410141009864396001978282409984_by_1",
                            "typeString": "int_const 2894...(69 digits omitted)...9984"
                          },
                          "value": "0x4000000000000000000000000000000000000000000000000000000000000000"
                        },
                        "src": "10242:78:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 8575,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        4294967278,
                        4294967278
                      ],
                      "referencedDeclaration": 4294967278,
                      "src": "10233:7:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 8579,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "10233:88:38",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 8580,
                  "nodeType": "ExpressionStatement",
                  "src": "10233:88:38"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "id": 8586,
                                "name": "m",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 8558,
                                "src": "10358:1:38",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_int256",
                                  "typeString": "int256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_int256",
                                  "typeString": "int256"
                                }
                              ],
                              "id": 8585,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "10349:7:38",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_uint256_$",
                                "typeString": "type(uint256)"
                              },
                              "typeName": {
                                "id": 8584,
                                "name": "uint256",
                                "nodeType": "ElementaryTypeName",
                                "src": "10349:7:38",
                                "typeDescriptions": {}
                              }
                            },
                            "id": 8587,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "10349:11:38",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "id": 8583,
                          "name": "sqrtu",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 10620,
                          "src": "10342:5:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint128_$",
                            "typeString": "function (uint256) pure returns (uint128)"
                          }
                        },
                        "id": 8588,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "10342:19:38",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint128",
                          "typeString": "uint128"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint128",
                          "typeString": "uint128"
                        }
                      ],
                      "id": 8582,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "ElementaryTypeNameExpression",
                      "src": "10334:6:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_int128_$",
                        "typeString": "type(int128)"
                      },
                      "typeName": {
                        "id": 8581,
                        "name": "int128",
                        "nodeType": "ElementaryTypeName",
                        "src": "10334:6:38",
                        "typeDescriptions": {}
                      }
                    },
                    "id": 8589,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "typeConversion",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "10334:28:38",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_int128",
                      "typeString": "int128"
                    }
                  },
                  "functionReturnParameters": 8556,
                  "id": 8590,
                  "nodeType": "Return",
                  "src": "10327:35:38"
                }
              ]
            },
            "documentation": {
              "id": 8548,
              "nodeType": "StructuredDocumentation",
              "src": "9801:295:38",
              "text": " Calculate geometric average of x and y, i.e. sqrt (x * y) rounding down.\n Revert on overflow or in case x * y is negative.\n @param x signed 64.64-bit fixed point number\n @param y signed 64.64-bit fixed point number\n @return signed 64.64-bit fixed point number"
            },
            "id": 8592,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "gavg",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 8553,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 8550,
                  "mutability": "mutable",
                  "name": "x",
                  "nodeType": "VariableDeclaration",
                  "scope": 8592,
                  "src": "10114:8:38",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_int128",
                    "typeString": "int128"
                  },
                  "typeName": {
                    "id": 8549,
                    "name": "int128",
                    "nodeType": "ElementaryTypeName",
                    "src": "10114:6:38",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int128",
                      "typeString": "int128"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 8552,
                  "mutability": "mutable",
                  "name": "y",
                  "nodeType": "VariableDeclaration",
                  "scope": 8592,
                  "src": "10124:8:38",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_int128",
                    "typeString": "int128"
                  },
                  "typeName": {
                    "id": 8551,
                    "name": "int128",
                    "nodeType": "ElementaryTypeName",
                    "src": "10124:6:38",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int128",
                      "typeString": "int128"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "10113:20:38"
            },
            "returnParameters": {
              "id": 8556,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 8555,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 8592,
                  "src": "10157:6:38",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_int128",
                    "typeString": "int128"
                  },
                  "typeName": {
                    "id": 8554,
                    "name": "int128",
                    "nodeType": "ElementaryTypeName",
                    "src": "10157:6:38",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int128",
                      "typeString": "int128"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "10156:8:38"
            },
            "scope": 10621,
            "src": "10099:268:38",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 8682,
              "nodeType": "Block",
              "src": "10730:660:38",
              "statements": [
                {
                  "assignments": [
                    8603
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 8603,
                      "mutability": "mutable",
                      "name": "absoluteResult",
                      "nodeType": "VariableDeclaration",
                      "scope": 8682,
                      "src": "10736:22:38",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 8602,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "10736:7:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 8604,
                  "nodeType": "VariableDeclarationStatement",
                  "src": "10736:22:38"
                },
                {
                  "assignments": [
                    8606
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 8606,
                      "mutability": "mutable",
                      "name": "negativeResult",
                      "nodeType": "VariableDeclaration",
                      "scope": 8682,
                      "src": "10764:19:38",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      },
                      "typeName": {
                        "id": 8605,
                        "name": "bool",
                        "nodeType": "ElementaryTypeName",
                        "src": "10764:4:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 8608,
                  "initialValue": {
                    "hexValue": "66616c7365",
                    "id": 8607,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "bool",
                    "lValueRequested": false,
                    "nodeType": "Literal",
                    "src": "10786:5:38",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    },
                    "value": "false"
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "10764:27:38"
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_int128",
                      "typeString": "int128"
                    },
                    "id": 8611,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 8609,
                      "name": "x",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 8595,
                      "src": "10801:1:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int128",
                        "typeString": "int128"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">=",
                    "rightExpression": {
                      "hexValue": "30",
                      "id": 8610,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "10806:1:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "10801:6:38",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "id": 8649,
                    "nodeType": "Block",
                    "src": "10874:147:38",
                    "statements": [
                      {
                        "expression": {
                          "id": 8639,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "id": 8625,
                            "name": "absoluteResult",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8603,
                            "src": "10925:14:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "arguments": [
                              {
                                "commonType": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                "id": 8636,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "arguments": [
                                    {
                                      "arguments": [
                                        {
                                          "id": 8632,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "nodeType": "UnaryOperation",
                                          "operator": "-",
                                          "prefix": true,
                                          "src": "10966:2:38",
                                          "subExpression": {
                                            "id": 8631,
                                            "name": "x",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 8595,
                                            "src": "10967:1:38",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_int128",
                                              "typeString": "int128"
                                            }
                                          },
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_int128",
                                            "typeString": "int128"
                                          }
                                        }
                                      ],
                                      "expression": {
                                        "argumentTypes": [
                                          {
                                            "typeIdentifier": "t_int128",
                                            "typeString": "int128"
                                          }
                                        ],
                                        "id": 8630,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "lValueRequested": false,
                                        "nodeType": "ElementaryTypeNameExpression",
                                        "src": "10957:7:38",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_type$_t_uint128_$",
                                          "typeString": "type(uint128)"
                                        },
                                        "typeName": {
                                          "id": 8629,
                                          "name": "uint128",
                                          "nodeType": "ElementaryTypeName",
                                          "src": "10957:7:38",
                                          "typeDescriptions": {}
                                        }
                                      },
                                      "id": 8633,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "kind": "typeConversion",
                                      "lValueRequested": false,
                                      "names": [],
                                      "nodeType": "FunctionCall",
                                      "src": "10957:12:38",
                                      "tryCall": false,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint128",
                                        "typeString": "uint128"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_uint128",
                                        "typeString": "uint128"
                                      }
                                    ],
                                    "id": 8628,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "lValueRequested": false,
                                    "nodeType": "ElementaryTypeNameExpression",
                                    "src": "10948:7:38",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_uint256_$",
                                      "typeString": "type(uint256)"
                                    },
                                    "typeName": {
                                      "id": 8627,
                                      "name": "uint256",
                                      "nodeType": "ElementaryTypeName",
                                      "src": "10948:7:38",
                                      "typeDescriptions": {}
                                    }
                                  },
                                  "id": 8634,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "typeConversion",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "10948:22:38",
                                  "tryCall": false,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "<<",
                                "rightExpression": {
                                  "hexValue": "3633",
                                  "id": 8635,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "10974:2:38",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_63_by_1",
                                    "typeString": "int_const 63"
                                  },
                                  "value": "63"
                                },
                                "src": "10948:28:38",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              {
                                "id": 8637,
                                "name": "y",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 8597,
                                "src": "10978:1:38",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "id": 8626,
                              "name": "powu",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 10416,
                              "src": "10942:4:38",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                                "typeString": "function (uint256,uint256) pure returns (uint256)"
                              }
                            },
                            "id": 8638,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "10942:38:38",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "10925:55:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 8640,
                        "nodeType": "ExpressionStatement",
                        "src": "10925:55:38"
                      },
                      {
                        "expression": {
                          "id": 8647,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "id": 8641,
                            "name": "negativeResult",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8606,
                            "src": "10988:14:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 8646,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "id": 8644,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "id": 8642,
                                "name": "y",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 8597,
                                "src": "11005:1:38",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "&",
                              "rightExpression": {
                                "hexValue": "31",
                                "id": 8643,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "11009:1:38",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_1_by_1",
                                  "typeString": "int_const 1"
                                },
                                "value": "1"
                              },
                              "src": "11005:5:38",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": ">",
                            "rightExpression": {
                              "hexValue": "30",
                              "id": 8645,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "11013:1:38",
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              },
                              "value": "0"
                            },
                            "src": "11005:9:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "src": "10988:26:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "id": 8648,
                        "nodeType": "ExpressionStatement",
                        "src": "10988:26:38"
                      }
                    ]
                  },
                  "id": 8650,
                  "nodeType": "IfStatement",
                  "src": "10797:224:38",
                  "trueBody": {
                    "id": 8624,
                    "nodeType": "Block",
                    "src": "10809:59:38",
                    "statements": [
                      {
                        "expression": {
                          "id": 8622,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "id": 8612,
                            "name": "absoluteResult",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8603,
                            "src": "10817:14:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "arguments": [
                              {
                                "commonType": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                "id": 8619,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "arguments": [
                                    {
                                      "id": 8616,
                                      "name": "x",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 8595,
                                      "src": "10849:1:38",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_int128",
                                        "typeString": "int128"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_int128",
                                        "typeString": "int128"
                                      }
                                    ],
                                    "id": 8615,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "lValueRequested": false,
                                    "nodeType": "ElementaryTypeNameExpression",
                                    "src": "10840:7:38",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_uint256_$",
                                      "typeString": "type(uint256)"
                                    },
                                    "typeName": {
                                      "id": 8614,
                                      "name": "uint256",
                                      "nodeType": "ElementaryTypeName",
                                      "src": "10840:7:38",
                                      "typeDescriptions": {}
                                    }
                                  },
                                  "id": 8617,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "typeConversion",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "10840:11:38",
                                  "tryCall": false,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "<<",
                                "rightExpression": {
                                  "hexValue": "3633",
                                  "id": 8618,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "10855:2:38",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_63_by_1",
                                    "typeString": "int_const 63"
                                  },
                                  "value": "63"
                                },
                                "src": "10840:17:38",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              {
                                "id": 8620,
                                "name": "y",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 8597,
                                "src": "10859:1:38",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "id": 8613,
                              "name": "powu",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 10416,
                              "src": "10834:4:38",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                                "typeString": "function (uint256,uint256) pure returns (uint256)"
                              }
                            },
                            "id": 8621,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "10834:27:38",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "10817:44:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 8623,
                        "nodeType": "ExpressionStatement",
                        "src": "10817:44:38"
                      }
                    ]
                  }
                },
                {
                  "expression": {
                    "id": 8653,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 8651,
                      "name": "absoluteResult",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 8603,
                      "src": "11027:14:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": ">>=",
                    "rightHandSide": {
                      "hexValue": "3633",
                      "id": 8652,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "11046:2:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_63_by_1",
                        "typeString": "int_const 63"
                      },
                      "value": "63"
                    },
                    "src": "11027:21:38",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 8654,
                  "nodeType": "ExpressionStatement",
                  "src": "11027:21:38"
                },
                {
                  "condition": {
                    "id": 8655,
                    "name": "negativeResult",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 8606,
                    "src": "11059:14:38",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "id": 8680,
                    "nodeType": "Block",
                    "src": "11234:152:38",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "id": 8672,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "id": 8670,
                                "name": "absoluteResult",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 8603,
                                "src": "11251:14:38",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "<=",
                              "rightExpression": {
                                "hexValue": "30783746464646464646464646464646464646464646464646464646464646464646",
                                "id": 8671,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "11269:34:38",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_170141183460469231731687303715884105727_by_1",
                                  "typeString": "int_const 1701...(31 digits omitted)...5727"
                                },
                                "value": "0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
                              },
                              "src": "11251:52:38",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            ],
                            "id": 8669,
                            "name": "require",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [
                              4294967278,
                              4294967278
                            ],
                            "referencedDeclaration": 4294967278,
                            "src": "11242:7:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                              "typeString": "function (bool) pure"
                            }
                          },
                          "id": 8673,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "11242:62:38",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 8674,
                        "nodeType": "ExpressionStatement",
                        "src": "11242:62:38"
                      },
                      {
                        "expression": {
                          "arguments": [
                            {
                              "id": 8677,
                              "name": "absoluteResult",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 8603,
                              "src": "11327:14:38",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "id": 8676,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "11319:6:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_int128_$",
                              "typeString": "type(int128)"
                            },
                            "typeName": {
                              "id": 8675,
                              "name": "int128",
                              "nodeType": "ElementaryTypeName",
                              "src": "11319:6:38",
                              "typeDescriptions": {}
                            }
                          },
                          "id": 8678,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "11319:23:38",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_int128",
                            "typeString": "int128"
                          }
                        },
                        "functionReturnParameters": 8601,
                        "id": 8679,
                        "nodeType": "Return",
                        "src": "11312:30:38"
                      }
                    ]
                  },
                  "id": 8681,
                  "nodeType": "IfStatement",
                  "src": "11055:331:38",
                  "trueBody": {
                    "id": 8668,
                    "nodeType": "Block",
                    "src": "11075:153:38",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "id": 8659,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "id": 8657,
                                "name": "absoluteResult",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 8603,
                                "src": "11092:14:38",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "<=",
                              "rightExpression": {
                                "hexValue": "30783830303030303030303030303030303030303030303030303030303030303030",
                                "id": 8658,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "11110:34:38",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_170141183460469231731687303715884105728_by_1",
                                  "typeString": "int_const 1701...(31 digits omitted)...5728"
                                },
                                "value": "0x80000000000000000000000000000000"
                              },
                              "src": "11092:52:38",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            ],
                            "id": 8656,
                            "name": "require",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [
                              4294967278,
                              4294967278
                            ],
                            "referencedDeclaration": 4294967278,
                            "src": "11083:7:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                              "typeString": "function (bool) pure"
                            }
                          },
                          "id": 8660,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "11083:62:38",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 8661,
                        "nodeType": "ExpressionStatement",
                        "src": "11083:62:38"
                      },
                      {
                        "expression": {
                          "id": 8666,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "UnaryOperation",
                          "operator": "-",
                          "prefix": true,
                          "src": "11160:24:38",
                          "subExpression": {
                            "arguments": [
                              {
                                "id": 8664,
                                "name": "absoluteResult",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 8603,
                                "src": "11169:14:38",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "id": 8663,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "11161:6:38",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_int128_$",
                                "typeString": "type(int128)"
                              },
                              "typeName": {
                                "id": 8662,
                                "name": "int128",
                                "nodeType": "ElementaryTypeName",
                                "src": "11161:6:38",
                                "typeDescriptions": {}
                              }
                            },
                            "id": 8665,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "11161:23:38",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_int128",
                              "typeString": "int128"
                            }
                          },
                          "typeDescriptions": {
                            "typeIdentifier": "t_int128",
                            "typeString": "int128"
                          }
                        },
                        "functionReturnParameters": 8601,
                        "id": 8667,
                        "nodeType": "Return",
                        "src": "11153:31:38"
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": {
              "id": 8593,
              "nodeType": "StructuredDocumentation",
              "src": "10371:290:38",
              "text": " Calculate x^y assuming 0^0 is 1, where x is signed 64.64 fixed point number\n and y is unsigned 256-bit integer number.  Revert on overflow.\n @param x signed 64.64-bit fixed point number\n @param y uint256 value\n @return signed 64.64-bit fixed point number"
            },
            "id": 8683,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "pow",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 8598,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 8595,
                  "mutability": "mutable",
                  "name": "x",
                  "nodeType": "VariableDeclaration",
                  "scope": 8683,
                  "src": "10678:8:38",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_int128",
                    "typeString": "int128"
                  },
                  "typeName": {
                    "id": 8594,
                    "name": "int128",
                    "nodeType": "ElementaryTypeName",
                    "src": "10678:6:38",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int128",
                      "typeString": "int128"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 8597,
                  "mutability": "mutable",
                  "name": "y",
                  "nodeType": "VariableDeclaration",
                  "scope": 8683,
                  "src": "10688:9:38",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 8596,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "10688:7:38",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "10677:21:38"
            },
            "returnParameters": {
              "id": 8601,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 8600,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 8683,
                  "src": "10722:6:38",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_int128",
                    "typeString": "int128"
                  },
                  "typeName": {
                    "id": 8599,
                    "name": "int128",
                    "nodeType": "ElementaryTypeName",
                    "src": "10722:6:38",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int128",
                      "typeString": "int128"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "10721:8:38"
            },
            "scope": 10621,
            "src": "10664:726:38",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 8709,
              "nodeType": "Block",
              "src": "11623:74:38",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_int128",
                          "typeString": "int128"
                        },
                        "id": 8694,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "id": 8692,
                          "name": "x",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 8686,
                          "src": "11638:1:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int128",
                            "typeString": "int128"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">=",
                        "rightExpression": {
                          "hexValue": "30",
                          "id": 8693,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "11643:1:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "11638:6:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 8691,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        4294967278,
                        4294967278
                      ],
                      "referencedDeclaration": 4294967278,
                      "src": "11629:7:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 8695,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "11629:16:38",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 8696,
                  "nodeType": "ExpressionStatement",
                  "src": "11629:16:38"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 8705,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "arguments": [
                                {
                                  "id": 8702,
                                  "name": "x",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 8686,
                                  "src": "11682:1:38",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_int128",
                                    "typeString": "int128"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_int128",
                                    "typeString": "int128"
                                  }
                                ],
                                "id": 8701,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "ElementaryTypeNameExpression",
                                "src": "11673:7:38",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_uint256_$",
                                  "typeString": "type(uint256)"
                                },
                                "typeName": {
                                  "id": 8700,
                                  "name": "uint256",
                                  "nodeType": "ElementaryTypeName",
                                  "src": "11673:7:38",
                                  "typeDescriptions": {}
                                }
                              },
                              "id": 8703,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "11673:11:38",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "<<",
                            "rightExpression": {
                              "hexValue": "3634",
                              "id": 8704,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "11688:2:38",
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_64_by_1",
                                "typeString": "int_const 64"
                              },
                              "value": "64"
                            },
                            "src": "11673:17:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "id": 8699,
                          "name": "sqrtu",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 10620,
                          "src": "11666:5:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint128_$",
                            "typeString": "function (uint256) pure returns (uint128)"
                          }
                        },
                        "id": 8706,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "11666:25:38",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint128",
                          "typeString": "uint128"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint128",
                          "typeString": "uint128"
                        }
                      ],
                      "id": 8698,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "ElementaryTypeNameExpression",
                      "src": "11658:6:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_int128_$",
                        "typeString": "type(int128)"
                      },
                      "typeName": {
                        "id": 8697,
                        "name": "int128",
                        "nodeType": "ElementaryTypeName",
                        "src": "11658:6:38",
                        "typeDescriptions": {}
                      }
                    },
                    "id": 8707,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "typeConversion",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "11658:34:38",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_int128",
                      "typeString": "int128"
                    }
                  },
                  "functionReturnParameters": 8690,
                  "id": 8708,
                  "nodeType": "Return",
                  "src": "11651:41:38"
                }
              ]
            },
            "documentation": {
              "id": 8684,
              "nodeType": "StructuredDocumentation",
              "src": "11394:170:38",
              "text": " Calculate sqrt (x) rounding down.  Revert if x < 0.\n @param x signed 64.64-bit fixed point number\n @return signed 64.64-bit fixed point number"
            },
            "id": 8710,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "sqrt",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 8687,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 8686,
                  "mutability": "mutable",
                  "name": "x",
                  "nodeType": "VariableDeclaration",
                  "scope": 8710,
                  "src": "11582:8:38",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_int128",
                    "typeString": "int128"
                  },
                  "typeName": {
                    "id": 8685,
                    "name": "int128",
                    "nodeType": "ElementaryTypeName",
                    "src": "11582:6:38",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int128",
                      "typeString": "int128"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "11581:10:38"
            },
            "returnParameters": {
              "id": 8690,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 8689,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 8710,
                  "src": "11615:6:38",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_int128",
                    "typeString": "int128"
                  },
                  "typeName": {
                    "id": 8688,
                    "name": "int128",
                    "nodeType": "ElementaryTypeName",
                    "src": "11615:6:38",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int128",
                      "typeString": "int128"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "11614:8:38"
            },
            "scope": 10621,
            "src": "11567:130:38",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 8883,
              "nodeType": "Block",
              "src": "11931:712:38",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_int128",
                          "typeString": "int128"
                        },
                        "id": 8721,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "id": 8719,
                          "name": "x",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 8713,
                          "src": "11946:1:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int128",
                            "typeString": "int128"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">",
                        "rightExpression": {
                          "hexValue": "30",
                          "id": 8720,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "11950:1:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "11946:5:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 8718,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        4294967278,
                        4294967278
                      ],
                      "referencedDeclaration": 4294967278,
                      "src": "11937:7:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 8722,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "11937:15:38",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 8723,
                  "nodeType": "ExpressionStatement",
                  "src": "11937:15:38"
                },
                {
                  "assignments": [
                    8725
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 8725,
                      "mutability": "mutable",
                      "name": "msb",
                      "nodeType": "VariableDeclaration",
                      "scope": 8883,
                      "src": "11959:10:38",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int256",
                        "typeString": "int256"
                      },
                      "typeName": {
                        "id": 8724,
                        "name": "int256",
                        "nodeType": "ElementaryTypeName",
                        "src": "11959:6:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 8727,
                  "initialValue": {
                    "hexValue": "30",
                    "id": 8726,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "number",
                    "lValueRequested": false,
                    "nodeType": "Literal",
                    "src": "11972:1:38",
                    "typeDescriptions": {
                      "typeIdentifier": "t_rational_0_by_1",
                      "typeString": "int_const 0"
                    },
                    "value": "0"
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "11959:14:38"
                },
                {
                  "assignments": [
                    8729
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 8729,
                      "mutability": "mutable",
                      "name": "xc",
                      "nodeType": "VariableDeclaration",
                      "scope": 8883,
                      "src": "11979:9:38",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int256",
                        "typeString": "int256"
                      },
                      "typeName": {
                        "id": 8728,
                        "name": "int256",
                        "nodeType": "ElementaryTypeName",
                        "src": "11979:6:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 8731,
                  "initialValue": {
                    "id": 8730,
                    "name": "x",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 8713,
                    "src": "11991:1:38",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int128",
                      "typeString": "int128"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "11979:13:38"
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_int256",
                      "typeString": "int256"
                    },
                    "id": 8734,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 8732,
                      "name": "xc",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 8729,
                      "src": "12002:2:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int256",
                        "typeString": "int256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">=",
                    "rightExpression": {
                      "hexValue": "30783130303030303030303030303030303030",
                      "id": 8733,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "12008:19:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_18446744073709551616_by_1",
                        "typeString": "int_const 18446744073709551616"
                      },
                      "value": "0x10000000000000000"
                    },
                    "src": "12002:25:38",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 8744,
                  "nodeType": "IfStatement",
                  "src": "11998:56:38",
                  "trueBody": {
                    "id": 8743,
                    "nodeType": "Block",
                    "src": "12029:25:38",
                    "statements": [
                      {
                        "expression": {
                          "id": 8737,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "id": 8735,
                            "name": "xc",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8729,
                            "src": "12031:2:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_int256",
                              "typeString": "int256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": ">>=",
                          "rightHandSide": {
                            "hexValue": "3634",
                            "id": 8736,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "12038:2:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_64_by_1",
                              "typeString": "int_const 64"
                            },
                            "value": "64"
                          },
                          "src": "12031:9:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          }
                        },
                        "id": 8738,
                        "nodeType": "ExpressionStatement",
                        "src": "12031:9:38"
                      },
                      {
                        "expression": {
                          "id": 8741,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "id": 8739,
                            "name": "msb",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8725,
                            "src": "12042:3:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_int256",
                              "typeString": "int256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "+=",
                          "rightHandSide": {
                            "hexValue": "3634",
                            "id": 8740,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "12049:2:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_64_by_1",
                              "typeString": "int_const 64"
                            },
                            "value": "64"
                          },
                          "src": "12042:9:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          }
                        },
                        "id": 8742,
                        "nodeType": "ExpressionStatement",
                        "src": "12042:9:38"
                      }
                    ]
                  }
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_int256",
                      "typeString": "int256"
                    },
                    "id": 8747,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 8745,
                      "name": "xc",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 8729,
                      "src": "12063:2:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int256",
                        "typeString": "int256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">=",
                    "rightExpression": {
                      "hexValue": "3078313030303030303030",
                      "id": 8746,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "12069:11:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_4294967296_by_1",
                        "typeString": "int_const 4294967296"
                      },
                      "value": "0x100000000"
                    },
                    "src": "12063:17:38",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 8757,
                  "nodeType": "IfStatement",
                  "src": "12059:48:38",
                  "trueBody": {
                    "id": 8756,
                    "nodeType": "Block",
                    "src": "12082:25:38",
                    "statements": [
                      {
                        "expression": {
                          "id": 8750,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "id": 8748,
                            "name": "xc",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8729,
                            "src": "12084:2:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_int256",
                              "typeString": "int256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": ">>=",
                          "rightHandSide": {
                            "hexValue": "3332",
                            "id": 8749,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "12091:2:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_32_by_1",
                              "typeString": "int_const 32"
                            },
                            "value": "32"
                          },
                          "src": "12084:9:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          }
                        },
                        "id": 8751,
                        "nodeType": "ExpressionStatement",
                        "src": "12084:9:38"
                      },
                      {
                        "expression": {
                          "id": 8754,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "id": 8752,
                            "name": "msb",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8725,
                            "src": "12095:3:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_int256",
                              "typeString": "int256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "+=",
                          "rightHandSide": {
                            "hexValue": "3332",
                            "id": 8753,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "12102:2:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_32_by_1",
                              "typeString": "int_const 32"
                            },
                            "value": "32"
                          },
                          "src": "12095:9:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          }
                        },
                        "id": 8755,
                        "nodeType": "ExpressionStatement",
                        "src": "12095:9:38"
                      }
                    ]
                  }
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_int256",
                      "typeString": "int256"
                    },
                    "id": 8760,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 8758,
                      "name": "xc",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 8729,
                      "src": "12116:2:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int256",
                        "typeString": "int256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">=",
                    "rightExpression": {
                      "hexValue": "30783130303030",
                      "id": 8759,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "12122:7:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_65536_by_1",
                        "typeString": "int_const 65536"
                      },
                      "value": "0x10000"
                    },
                    "src": "12116:13:38",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 8770,
                  "nodeType": "IfStatement",
                  "src": "12112:44:38",
                  "trueBody": {
                    "id": 8769,
                    "nodeType": "Block",
                    "src": "12131:25:38",
                    "statements": [
                      {
                        "expression": {
                          "id": 8763,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "id": 8761,
                            "name": "xc",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8729,
                            "src": "12133:2:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_int256",
                              "typeString": "int256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": ">>=",
                          "rightHandSide": {
                            "hexValue": "3136",
                            "id": 8762,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "12140:2:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_16_by_1",
                              "typeString": "int_const 16"
                            },
                            "value": "16"
                          },
                          "src": "12133:9:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          }
                        },
                        "id": 8764,
                        "nodeType": "ExpressionStatement",
                        "src": "12133:9:38"
                      },
                      {
                        "expression": {
                          "id": 8767,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "id": 8765,
                            "name": "msb",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8725,
                            "src": "12144:3:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_int256",
                              "typeString": "int256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "+=",
                          "rightHandSide": {
                            "hexValue": "3136",
                            "id": 8766,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "12151:2:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_16_by_1",
                              "typeString": "int_const 16"
                            },
                            "value": "16"
                          },
                          "src": "12144:9:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          }
                        },
                        "id": 8768,
                        "nodeType": "ExpressionStatement",
                        "src": "12144:9:38"
                      }
                    ]
                  }
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_int256",
                      "typeString": "int256"
                    },
                    "id": 8773,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 8771,
                      "name": "xc",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 8729,
                      "src": "12165:2:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int256",
                        "typeString": "int256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">=",
                    "rightExpression": {
                      "hexValue": "3078313030",
                      "id": 8772,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "12171:5:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_256_by_1",
                        "typeString": "int_const 256"
                      },
                      "value": "0x100"
                    },
                    "src": "12165:11:38",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 8783,
                  "nodeType": "IfStatement",
                  "src": "12161:40:38",
                  "trueBody": {
                    "id": 8782,
                    "nodeType": "Block",
                    "src": "12178:23:38",
                    "statements": [
                      {
                        "expression": {
                          "id": 8776,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "id": 8774,
                            "name": "xc",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8729,
                            "src": "12180:2:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_int256",
                              "typeString": "int256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": ">>=",
                          "rightHandSide": {
                            "hexValue": "38",
                            "id": 8775,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "12187:1:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_8_by_1",
                              "typeString": "int_const 8"
                            },
                            "value": "8"
                          },
                          "src": "12180:8:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          }
                        },
                        "id": 8777,
                        "nodeType": "ExpressionStatement",
                        "src": "12180:8:38"
                      },
                      {
                        "expression": {
                          "id": 8780,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "id": 8778,
                            "name": "msb",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8725,
                            "src": "12190:3:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_int256",
                              "typeString": "int256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "+=",
                          "rightHandSide": {
                            "hexValue": "38",
                            "id": 8779,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "12197:1:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_8_by_1",
                              "typeString": "int_const 8"
                            },
                            "value": "8"
                          },
                          "src": "12190:8:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          }
                        },
                        "id": 8781,
                        "nodeType": "ExpressionStatement",
                        "src": "12190:8:38"
                      }
                    ]
                  }
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_int256",
                      "typeString": "int256"
                    },
                    "id": 8786,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 8784,
                      "name": "xc",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 8729,
                      "src": "12210:2:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int256",
                        "typeString": "int256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">=",
                    "rightExpression": {
                      "hexValue": "30783130",
                      "id": 8785,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "12216:4:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_16_by_1",
                        "typeString": "int_const 16"
                      },
                      "value": "0x10"
                    },
                    "src": "12210:10:38",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 8796,
                  "nodeType": "IfStatement",
                  "src": "12206:39:38",
                  "trueBody": {
                    "id": 8795,
                    "nodeType": "Block",
                    "src": "12222:23:38",
                    "statements": [
                      {
                        "expression": {
                          "id": 8789,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "id": 8787,
                            "name": "xc",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8729,
                            "src": "12224:2:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_int256",
                              "typeString": "int256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": ">>=",
                          "rightHandSide": {
                            "hexValue": "34",
                            "id": 8788,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "12231:1:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_4_by_1",
                              "typeString": "int_const 4"
                            },
                            "value": "4"
                          },
                          "src": "12224:8:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          }
                        },
                        "id": 8790,
                        "nodeType": "ExpressionStatement",
                        "src": "12224:8:38"
                      },
                      {
                        "expression": {
                          "id": 8793,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "id": 8791,
                            "name": "msb",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8725,
                            "src": "12234:3:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_int256",
                              "typeString": "int256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "+=",
                          "rightHandSide": {
                            "hexValue": "34",
                            "id": 8792,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "12241:1:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_4_by_1",
                              "typeString": "int_const 4"
                            },
                            "value": "4"
                          },
                          "src": "12234:8:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          }
                        },
                        "id": 8794,
                        "nodeType": "ExpressionStatement",
                        "src": "12234:8:38"
                      }
                    ]
                  }
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_int256",
                      "typeString": "int256"
                    },
                    "id": 8799,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 8797,
                      "name": "xc",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 8729,
                      "src": "12254:2:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int256",
                        "typeString": "int256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">=",
                    "rightExpression": {
                      "hexValue": "307834",
                      "id": 8798,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "12260:3:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_4_by_1",
                        "typeString": "int_const 4"
                      },
                      "value": "0x4"
                    },
                    "src": "12254:9:38",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 8809,
                  "nodeType": "IfStatement",
                  "src": "12250:38:38",
                  "trueBody": {
                    "id": 8808,
                    "nodeType": "Block",
                    "src": "12265:23:38",
                    "statements": [
                      {
                        "expression": {
                          "id": 8802,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "id": 8800,
                            "name": "xc",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8729,
                            "src": "12267:2:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_int256",
                              "typeString": "int256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": ">>=",
                          "rightHandSide": {
                            "hexValue": "32",
                            "id": 8801,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "12274:1:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_2_by_1",
                              "typeString": "int_const 2"
                            },
                            "value": "2"
                          },
                          "src": "12267:8:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          }
                        },
                        "id": 8803,
                        "nodeType": "ExpressionStatement",
                        "src": "12267:8:38"
                      },
                      {
                        "expression": {
                          "id": 8806,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "id": 8804,
                            "name": "msb",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8725,
                            "src": "12277:3:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_int256",
                              "typeString": "int256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "+=",
                          "rightHandSide": {
                            "hexValue": "32",
                            "id": 8805,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "12284:1:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_2_by_1",
                              "typeString": "int_const 2"
                            },
                            "value": "2"
                          },
                          "src": "12277:8:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          }
                        },
                        "id": 8807,
                        "nodeType": "ExpressionStatement",
                        "src": "12277:8:38"
                      }
                    ]
                  }
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_int256",
                      "typeString": "int256"
                    },
                    "id": 8812,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 8810,
                      "name": "xc",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 8729,
                      "src": "12297:2:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int256",
                        "typeString": "int256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">=",
                    "rightExpression": {
                      "hexValue": "307832",
                      "id": 8811,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "12303:3:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_2_by_1",
                        "typeString": "int_const 2"
                      },
                      "value": "0x2"
                    },
                    "src": "12297:9:38",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 8817,
                  "nodeType": "IfStatement",
                  "src": "12293:23:38",
                  "trueBody": {
                    "expression": {
                      "id": 8815,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftHandSide": {
                        "id": 8813,
                        "name": "msb",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8725,
                        "src": "12308:3:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        }
                      },
                      "nodeType": "Assignment",
                      "operator": "+=",
                      "rightHandSide": {
                        "hexValue": "31",
                        "id": 8814,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "12315:1:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_1_by_1",
                          "typeString": "int_const 1"
                        },
                        "value": "1"
                      },
                      "src": "12308:8:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int256",
                        "typeString": "int256"
                      }
                    },
                    "id": 8816,
                    "nodeType": "ExpressionStatement",
                    "src": "12308:8:38"
                  }
                },
                {
                  "assignments": [
                    8819
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 8819,
                      "mutability": "mutable",
                      "name": "result",
                      "nodeType": "VariableDeclaration",
                      "scope": 8883,
                      "src": "12355:13:38",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int256",
                        "typeString": "int256"
                      },
                      "typeName": {
                        "id": 8818,
                        "name": "int256",
                        "nodeType": "ElementaryTypeName",
                        "src": "12355:6:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 8825,
                  "initialValue": {
                    "commonType": {
                      "typeIdentifier": "t_int256",
                      "typeString": "int256"
                    },
                    "id": 8824,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "commonType": {
                        "typeIdentifier": "t_int256",
                        "typeString": "int256"
                      },
                      "id": 8822,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "id": 8820,
                        "name": "msb",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8725,
                        "src": "12371:3:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "-",
                      "rightExpression": {
                        "hexValue": "3634",
                        "id": 8821,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "12377:2:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_64_by_1",
                          "typeString": "int_const 64"
                        },
                        "value": "64"
                      },
                      "src": "12371:8:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int256",
                        "typeString": "int256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<<",
                    "rightExpression": {
                      "hexValue": "3634",
                      "id": 8823,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "12383:2:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_64_by_1",
                        "typeString": "int_const 64"
                      },
                      "value": "64"
                    },
                    "src": "12371:14:38",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int256",
                      "typeString": "int256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "12355:30:38"
                },
                {
                  "assignments": [
                    8827
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 8827,
                      "mutability": "mutable",
                      "name": "ux",
                      "nodeType": "VariableDeclaration",
                      "scope": 8883,
                      "src": "12391:10:38",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 8826,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "12391:7:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 8839,
                  "initialValue": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 8838,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "arguments": [
                        {
                          "id": 8830,
                          "name": "x",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 8713,
                          "src": "12413:1:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int128",
                            "typeString": "int128"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_int128",
                            "typeString": "int128"
                          }
                        ],
                        "id": 8829,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "12404:7:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_uint256_$",
                          "typeString": "type(uint256)"
                        },
                        "typeName": {
                          "id": 8828,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "12404:7:38",
                          "typeDescriptions": {}
                        }
                      },
                      "id": 8831,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "12404:11:38",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<<",
                    "rightExpression": {
                      "arguments": [
                        {
                          "commonType": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          },
                          "id": 8836,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "hexValue": "313237",
                            "id": 8834,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "12428:3:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_127_by_1",
                              "typeString": "int_const 127"
                            },
                            "value": "127"
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "-",
                          "rightExpression": {
                            "id": 8835,
                            "name": "msb",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8725,
                            "src": "12434:3:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_int256",
                              "typeString": "int256"
                            }
                          },
                          "src": "12428:9:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          }
                        ],
                        "id": 8833,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "12419:7:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_uint256_$",
                          "typeString": "type(uint256)"
                        },
                        "typeName": {
                          "id": 8832,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "12419:7:38",
                          "typeDescriptions": {}
                        }
                      },
                      "id": 8837,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "12419:19:38",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "12404:34:38",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "12391:47:38"
                },
                {
                  "body": {
                    "id": 8876,
                    "nodeType": "Block",
                    "src": "12502:108:38",
                    "statements": [
                      {
                        "expression": {
                          "id": 8853,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "id": 8851,
                            "name": "ux",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8827,
                            "src": "12510:2:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "*=",
                          "rightHandSide": {
                            "id": 8852,
                            "name": "ux",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8827,
                            "src": "12516:2:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "12510:8:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 8854,
                        "nodeType": "ExpressionStatement",
                        "src": "12510:8:38"
                      },
                      {
                        "assignments": [
                          8856
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 8856,
                            "mutability": "mutable",
                            "name": "b",
                            "nodeType": "VariableDeclaration",
                            "scope": 8876,
                            "src": "12526:9:38",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "typeName": {
                              "id": 8855,
                              "name": "uint256",
                              "nodeType": "ElementaryTypeName",
                              "src": "12526:7:38",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "visibility": "internal"
                          }
                        ],
                        "id": 8860,
                        "initialValue": {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 8859,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 8857,
                            "name": "ux",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8827,
                            "src": "12538:2:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": ">>",
                          "rightExpression": {
                            "hexValue": "323535",
                            "id": 8858,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "12544:3:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_255_by_1",
                              "typeString": "int_const 255"
                            },
                            "value": "255"
                          },
                          "src": "12538:9:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "12526:21:38"
                      },
                      {
                        "expression": {
                          "id": 8865,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "id": 8861,
                            "name": "ux",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8827,
                            "src": "12555:2:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": ">>=",
                          "rightHandSide": {
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 8864,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "hexValue": "313237",
                              "id": 8862,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "12562:3:38",
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_127_by_1",
                                "typeString": "int_const 127"
                              },
                              "value": "127"
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "+",
                            "rightExpression": {
                              "id": 8863,
                              "name": "b",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 8856,
                              "src": "12568:1:38",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "src": "12562:7:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "12555:14:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 8866,
                        "nodeType": "ExpressionStatement",
                        "src": "12555:14:38"
                      },
                      {
                        "expression": {
                          "id": 8874,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "id": 8867,
                            "name": "result",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8819,
                            "src": "12577:6:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_int256",
                              "typeString": "int256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "+=",
                          "rightHandSide": {
                            "commonType": {
                              "typeIdentifier": "t_int256",
                              "typeString": "int256"
                            },
                            "id": 8873,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "id": 8868,
                              "name": "bit",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 8841,
                              "src": "12587:3:38",
                              "typeDescriptions": {
                                "typeIdentifier": "t_int256",
                                "typeString": "int256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "*",
                            "rightExpression": {
                              "arguments": [
                                {
                                  "id": 8871,
                                  "name": "b",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 8856,
                                  "src": "12601:1:38",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                ],
                                "id": 8870,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "ElementaryTypeNameExpression",
                                "src": "12593:6:38",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_int256_$",
                                  "typeString": "type(int256)"
                                },
                                "typeName": {
                                  "id": 8869,
                                  "name": "int256",
                                  "nodeType": "ElementaryTypeName",
                                  "src": "12593:6:38",
                                  "typeDescriptions": {}
                                }
                              },
                              "id": 8872,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "12593:10:38",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_int256",
                                "typeString": "int256"
                              }
                            },
                            "src": "12587:16:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_int256",
                              "typeString": "int256"
                            }
                          },
                          "src": "12577:26:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          }
                        },
                        "id": 8875,
                        "nodeType": "ExpressionStatement",
                        "src": "12577:26:38"
                      }
                    ]
                  },
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_int256",
                      "typeString": "int256"
                    },
                    "id": 8846,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 8844,
                      "name": "bit",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 8841,
                      "src": "12482:3:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int256",
                        "typeString": "int256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">",
                    "rightExpression": {
                      "hexValue": "30",
                      "id": 8845,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "12488:1:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "12482:7:38",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 8877,
                  "initializationExpression": {
                    "assignments": [
                      8841
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 8841,
                        "mutability": "mutable",
                        "name": "bit",
                        "nodeType": "VariableDeclaration",
                        "scope": 8877,
                        "src": "12449:10:38",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        },
                        "typeName": {
                          "id": 8840,
                          "name": "int256",
                          "nodeType": "ElementaryTypeName",
                          "src": "12449:6:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "id": 8843,
                    "initialValue": {
                      "hexValue": "307838303030303030303030303030303030",
                      "id": 8842,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "12462:18:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_9223372036854775808_by_1",
                        "typeString": "int_const 9223372036854775808"
                      },
                      "value": "0x8000000000000000"
                    },
                    "nodeType": "VariableDeclarationStatement",
                    "src": "12449:31:38"
                  },
                  "loopExpression": {
                    "expression": {
                      "id": 8849,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftHandSide": {
                        "id": 8847,
                        "name": "bit",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8841,
                        "src": "12491:3:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        }
                      },
                      "nodeType": "Assignment",
                      "operator": ">>=",
                      "rightHandSide": {
                        "hexValue": "31",
                        "id": 8848,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "12499:1:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_1_by_1",
                          "typeString": "int_const 1"
                        },
                        "value": "1"
                      },
                      "src": "12491:9:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int256",
                        "typeString": "int256"
                      }
                    },
                    "id": 8850,
                    "nodeType": "ExpressionStatement",
                    "src": "12491:9:38"
                  },
                  "nodeType": "ForStatement",
                  "src": "12444:166:38"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 8880,
                        "name": "result",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8819,
                        "src": "12631:6:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        }
                      ],
                      "id": 8879,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "ElementaryTypeNameExpression",
                      "src": "12623:6:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_int128_$",
                        "typeString": "type(int128)"
                      },
                      "typeName": {
                        "id": 8878,
                        "name": "int128",
                        "nodeType": "ElementaryTypeName",
                        "src": "12623:6:38",
                        "typeDescriptions": {}
                      }
                    },
                    "id": 8881,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "typeConversion",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "12623:15:38",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_int128",
                      "typeString": "int128"
                    }
                  },
                  "functionReturnParameters": 8717,
                  "id": 8882,
                  "nodeType": "Return",
                  "src": "12616:22:38"
                }
              ]
            },
            "documentation": {
              "id": 8711,
              "nodeType": "StructuredDocumentation",
              "src": "11701:170:38",
              "text": " Calculate binary logarithm of x.  Revert if x <= 0.\n @param x signed 64.64-bit fixed point number\n @return signed 64.64-bit fixed point number"
            },
            "id": 8884,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "log_2",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 8714,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 8713,
                  "mutability": "mutable",
                  "name": "x",
                  "nodeType": "VariableDeclaration",
                  "scope": 8884,
                  "src": "11890:8:38",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_int128",
                    "typeString": "int128"
                  },
                  "typeName": {
                    "id": 8712,
                    "name": "int128",
                    "nodeType": "ElementaryTypeName",
                    "src": "11890:6:38",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int128",
                      "typeString": "int128"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "11889:10:38"
            },
            "returnParameters": {
              "id": 8717,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 8716,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 8884,
                  "src": "11923:6:38",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_int128",
                    "typeString": "int128"
                  },
                  "typeName": {
                    "id": 8715,
                    "name": "int128",
                    "nodeType": "ElementaryTypeName",
                    "src": "11923:6:38",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int128",
                      "typeString": "int128"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "11922:8:38"
            },
            "scope": 10621,
            "src": "11874:769:38",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 8912,
              "nodeType": "Block",
              "src": "12875:121:38",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_int128",
                          "typeString": "int128"
                        },
                        "id": 8895,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "id": 8893,
                          "name": "x",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 8887,
                          "src": "12890:1:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int128",
                            "typeString": "int128"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">",
                        "rightExpression": {
                          "hexValue": "30",
                          "id": 8894,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "12894:1:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "12890:5:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 8892,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        4294967278,
                        4294967278
                      ],
                      "referencedDeclaration": 4294967278,
                      "src": "12881:7:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 8896,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "12881:15:38",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 8897,
                  "nodeType": "ExpressionStatement",
                  "src": "12881:15:38"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 8909,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 8907,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "arguments": [
                              {
                                "arguments": [
                                  {
                                    "id": 8903,
                                    "name": "x",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 8887,
                                    "src": "12943:1:38",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_int128",
                                      "typeString": "int128"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_int128",
                                      "typeString": "int128"
                                    }
                                  ],
                                  "id": 8902,
                                  "name": "log_2",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 8884,
                                  "src": "12936:5:38",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_internal_pure$_t_int128_$returns$_t_int128_$",
                                    "typeString": "function (int128) pure returns (int128)"
                                  }
                                },
                                "id": 8904,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "12936:9:38",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_int128",
                                  "typeString": "int128"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_int128",
                                  "typeString": "int128"
                                }
                              ],
                              "id": 8901,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "12927:7:38",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_uint256_$",
                                "typeString": "type(uint256)"
                              },
                              "typeName": {
                                "id": 8900,
                                "name": "uint256",
                                "nodeType": "ElementaryTypeName",
                                "src": "12927:7:38",
                                "typeDescriptions": {}
                              }
                            },
                            "id": 8905,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "12927:19:38",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "*",
                          "rightExpression": {
                            "hexValue": "30784231373231374637443143463739414243394533423339383033463246364146",
                            "id": 8906,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "12949:34:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_235865763225513294137944142764154484399_by_1",
                              "typeString": "int_const 2358...(31 digits omitted)...4399"
                            },
                            "value": "0xB17217F7D1CF79ABC9E3B39803F2F6AF"
                          },
                          "src": "12927:56:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">>",
                        "rightExpression": {
                          "hexValue": "313238",
                          "id": 8908,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "12987:3:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_128_by_1",
                            "typeString": "int_const 128"
                          },
                          "value": "128"
                        },
                        "src": "12927:63:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 8899,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "ElementaryTypeNameExpression",
                      "src": "12910:6:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_int128_$",
                        "typeString": "type(int128)"
                      },
                      "typeName": {
                        "id": 8898,
                        "name": "int128",
                        "nodeType": "ElementaryTypeName",
                        "src": "12910:6:38",
                        "typeDescriptions": {}
                      }
                    },
                    "id": 8910,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "typeConversion",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "12910:81:38",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_int128",
                      "typeString": "int128"
                    }
                  },
                  "functionReturnParameters": 8891,
                  "id": 8911,
                  "nodeType": "Return",
                  "src": "12903:88:38"
                }
              ]
            },
            "documentation": {
              "id": 8885,
              "nodeType": "StructuredDocumentation",
              "src": "12647:171:38",
              "text": " Calculate natural logarithm of x.  Revert if x <= 0.\n @param x signed 64.64-bit fixed point number\n @return signed 64.64-bit fixed point number"
            },
            "id": 8913,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "ln",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 8888,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 8887,
                  "mutability": "mutable",
                  "name": "x",
                  "nodeType": "VariableDeclaration",
                  "scope": 8913,
                  "src": "12834:8:38",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_int128",
                    "typeString": "int128"
                  },
                  "typeName": {
                    "id": 8886,
                    "name": "int128",
                    "nodeType": "ElementaryTypeName",
                    "src": "12834:6:38",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int128",
                      "typeString": "int128"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "12833:10:38"
            },
            "returnParameters": {
              "id": 8891,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 8890,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 8913,
                  "src": "12867:6:38",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_int128",
                    "typeString": "int128"
                  },
                  "typeName": {
                    "id": 8889,
                    "name": "int128",
                    "nodeType": "ElementaryTypeName",
                    "src": "12867:6:38",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int128",
                      "typeString": "int128"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "12866:8:38"
            },
            "scope": 10621,
            "src": "12821:175:38",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 9860,
              "nodeType": "Block",
              "src": "13231:6467:38",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_int128",
                          "typeString": "int128"
                        },
                        "id": 8924,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "id": 8922,
                          "name": "x",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 8916,
                          "src": "13246:1:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int128",
                            "typeString": "int128"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "<",
                        "rightExpression": {
                          "hexValue": "3078343030303030303030303030303030303030",
                          "id": 8923,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "13250:20:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_1180591620717411303424_by_1",
                            "typeString": "int_const 1180591620717411303424"
                          },
                          "value": "0x400000000000000000"
                        },
                        "src": "13246:24:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 8921,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        4294967278,
                        4294967278
                      ],
                      "referencedDeclaration": 4294967278,
                      "src": "13237:7:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 8925,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "13237:34:38",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 8926,
                  "nodeType": "ExpressionStatement",
                  "src": "13237:34:38"
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_int128",
                      "typeString": "int128"
                    },
                    "id": 8930,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 8927,
                      "name": "x",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 8916,
                      "src": "13294:1:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int128",
                        "typeString": "int128"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "id": 8929,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "-",
                      "prefix": true,
                      "src": "13298:21:38",
                      "subExpression": {
                        "hexValue": "3078343030303030303030303030303030303030",
                        "id": 8928,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "13299:20:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_1180591620717411303424_by_1",
                          "typeString": "int_const 1180591620717411303424"
                        },
                        "value": "0x400000000000000000"
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_minus_1180591620717411303424_by_1",
                        "typeString": "int_const -1180591620717411303424"
                      }
                    },
                    "src": "13294:25:38",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 8933,
                  "nodeType": "IfStatement",
                  "src": "13290:39:38",
                  "trueBody": {
                    "expression": {
                      "hexValue": "30",
                      "id": 8931,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "13328:1:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "functionReturnParameters": 8920,
                    "id": 8932,
                    "nodeType": "Return",
                    "src": "13321:8:38"
                  }
                },
                {
                  "assignments": [
                    8935
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 8935,
                      "mutability": "mutable",
                      "name": "result",
                      "nodeType": "VariableDeclaration",
                      "scope": 9860,
                      "src": "13349:14:38",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 8934,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "13349:7:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 8937,
                  "initialValue": {
                    "hexValue": "30783830303030303030303030303030303030303030303030303030303030303030",
                    "id": 8936,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "number",
                    "lValueRequested": false,
                    "nodeType": "Literal",
                    "src": "13366:34:38",
                    "typeDescriptions": {
                      "typeIdentifier": "t_rational_170141183460469231731687303715884105728_by_1",
                      "typeString": "int_const 1701...(31 digits omitted)...5728"
                    },
                    "value": "0x80000000000000000000000000000000"
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "13349:51:38"
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_int128",
                      "typeString": "int128"
                    },
                    "id": 8942,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "commonType": {
                        "typeIdentifier": "t_int128",
                        "typeString": "int128"
                      },
                      "id": 8940,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "id": 8938,
                        "name": "x",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8916,
                        "src": "13411:1:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int128",
                          "typeString": "int128"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "&",
                      "rightExpression": {
                        "hexValue": "307838303030303030303030303030303030",
                        "id": 8939,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "13415:18:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_9223372036854775808_by_1",
                          "typeString": "int_const 9223372036854775808"
                        },
                        "value": "0x8000000000000000"
                      },
                      "src": "13411:22:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int128",
                        "typeString": "int128"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">",
                    "rightExpression": {
                      "hexValue": "30",
                      "id": 8941,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "13436:1:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "13411:26:38",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 8951,
                  "nodeType": "IfStatement",
                  "src": "13407:98:38",
                  "trueBody": {
                    "expression": {
                      "id": 8949,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftHandSide": {
                        "id": 8943,
                        "name": "result",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8935,
                        "src": "13445:6:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "Assignment",
                      "operator": "=",
                      "rightHandSide": {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 8948,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 8946,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 8944,
                            "name": "result",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8935,
                            "src": "13454:6:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "*",
                          "rightExpression": {
                            "hexValue": "3078313641303945363637463342434339303842324642313336364541393537443345",
                            "id": 8945,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "13463:35:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_481231938336009023090067544955250113854_by_1",
                              "typeString": "int_const 4812...(31 digits omitted)...3854"
                            },
                            "value": "0x16A09E667F3BCC908B2FB1366EA957D3E"
                          },
                          "src": "13454:44:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">>",
                        "rightExpression": {
                          "hexValue": "313238",
                          "id": 8947,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "13502:3:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_128_by_1",
                            "typeString": "int_const 128"
                          },
                          "value": "128"
                        },
                        "src": "13454:51:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "src": "13445:60:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 8950,
                    "nodeType": "ExpressionStatement",
                    "src": "13445:60:38"
                  }
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_int128",
                      "typeString": "int128"
                    },
                    "id": 8956,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "commonType": {
                        "typeIdentifier": "t_int128",
                        "typeString": "int128"
                      },
                      "id": 8954,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "id": 8952,
                        "name": "x",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8916,
                        "src": "13515:1:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int128",
                          "typeString": "int128"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "&",
                      "rightExpression": {
                        "hexValue": "307834303030303030303030303030303030",
                        "id": 8953,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "13519:18:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_4611686018427387904_by_1",
                          "typeString": "int_const 4611686018427387904"
                        },
                        "value": "0x4000000000000000"
                      },
                      "src": "13515:22:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int128",
                        "typeString": "int128"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">",
                    "rightExpression": {
                      "hexValue": "30",
                      "id": 8955,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "13540:1:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "13515:26:38",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 8965,
                  "nodeType": "IfStatement",
                  "src": "13511:98:38",
                  "trueBody": {
                    "expression": {
                      "id": 8963,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftHandSide": {
                        "id": 8957,
                        "name": "result",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8935,
                        "src": "13549:6:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "Assignment",
                      "operator": "=",
                      "rightHandSide": {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 8962,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 8960,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 8958,
                            "name": "result",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8935,
                            "src": "13558:6:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "*",
                          "rightExpression": {
                            "hexValue": "3078313330364645304133314237313532444538443541343633303543383545444543",
                            "id": 8959,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "13567:35:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_404666211852346594250993303657235475948_by_1",
                              "typeString": "int_const 4046...(31 digits omitted)...5948"
                            },
                            "value": "0x1306FE0A31B7152DE8D5A46305C85EDEC"
                          },
                          "src": "13558:44:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">>",
                        "rightExpression": {
                          "hexValue": "313238",
                          "id": 8961,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "13606:3:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_128_by_1",
                            "typeString": "int_const 128"
                          },
                          "value": "128"
                        },
                        "src": "13558:51:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "src": "13549:60:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 8964,
                    "nodeType": "ExpressionStatement",
                    "src": "13549:60:38"
                  }
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_int128",
                      "typeString": "int128"
                    },
                    "id": 8970,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "commonType": {
                        "typeIdentifier": "t_int128",
                        "typeString": "int128"
                      },
                      "id": 8968,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "id": 8966,
                        "name": "x",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8916,
                        "src": "13619:1:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int128",
                          "typeString": "int128"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "&",
                      "rightExpression": {
                        "hexValue": "307832303030303030303030303030303030",
                        "id": 8967,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "13623:18:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_2305843009213693952_by_1",
                          "typeString": "int_const 2305843009213693952"
                        },
                        "value": "0x2000000000000000"
                      },
                      "src": "13619:22:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int128",
                        "typeString": "int128"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">",
                    "rightExpression": {
                      "hexValue": "30",
                      "id": 8969,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "13644:1:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "13619:26:38",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 8979,
                  "nodeType": "IfStatement",
                  "src": "13615:98:38",
                  "trueBody": {
                    "expression": {
                      "id": 8977,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftHandSide": {
                        "id": 8971,
                        "name": "result",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8935,
                        "src": "13653:6:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "Assignment",
                      "operator": "=",
                      "rightHandSide": {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 8976,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 8974,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 8972,
                            "name": "result",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8935,
                            "src": "13662:6:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "*",
                          "rightExpression": {
                            "hexValue": "3078313137324238334337443531374144434446374338433530454231344137393146",
                            "id": 8973,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "13671:35:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_371080552416919877990254144423618836767_by_1",
                              "typeString": "int_const 3710...(31 digits omitted)...6767"
                            },
                            "value": "0x1172B83C7D517ADCDF7C8C50EB14A791F"
                          },
                          "src": "13662:44:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">>",
                        "rightExpression": {
                          "hexValue": "313238",
                          "id": 8975,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "13710:3:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_128_by_1",
                            "typeString": "int_const 128"
                          },
                          "value": "128"
                        },
                        "src": "13662:51:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "src": "13653:60:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 8978,
                    "nodeType": "ExpressionStatement",
                    "src": "13653:60:38"
                  }
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_int128",
                      "typeString": "int128"
                    },
                    "id": 8984,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "commonType": {
                        "typeIdentifier": "t_int128",
                        "typeString": "int128"
                      },
                      "id": 8982,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "id": 8980,
                        "name": "x",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8916,
                        "src": "13723:1:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int128",
                          "typeString": "int128"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "&",
                      "rightExpression": {
                        "hexValue": "307831303030303030303030303030303030",
                        "id": 8981,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "13727:18:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_1152921504606846976_by_1",
                          "typeString": "int_const 1152921504606846976"
                        },
                        "value": "0x1000000000000000"
                      },
                      "src": "13723:22:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int128",
                        "typeString": "int128"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">",
                    "rightExpression": {
                      "hexValue": "30",
                      "id": 8983,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "13748:1:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "13723:26:38",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 8993,
                  "nodeType": "IfStatement",
                  "src": "13719:98:38",
                  "trueBody": {
                    "expression": {
                      "id": 8991,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftHandSide": {
                        "id": 8985,
                        "name": "result",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8935,
                        "src": "13757:6:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "Assignment",
                      "operator": "=",
                      "rightHandSide": {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 8990,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 8988,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 8986,
                            "name": "result",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8935,
                            "src": "13766:6:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "*",
                          "rightExpression": {
                            "hexValue": "3078313042353538364346393839304636323938423932423731383432413938333633",
                            "id": 8987,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "13775:35:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_355347954397881497469693820312941593443_by_1",
                              "typeString": "int_const 3553...(31 digits omitted)...3443"
                            },
                            "value": "0x10B5586CF9890F6298B92B71842A98363"
                          },
                          "src": "13766:44:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">>",
                        "rightExpression": {
                          "hexValue": "313238",
                          "id": 8989,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "13814:3:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_128_by_1",
                            "typeString": "int_const 128"
                          },
                          "value": "128"
                        },
                        "src": "13766:51:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "src": "13757:60:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 8992,
                    "nodeType": "ExpressionStatement",
                    "src": "13757:60:38"
                  }
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_int128",
                      "typeString": "int128"
                    },
                    "id": 8998,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "commonType": {
                        "typeIdentifier": "t_int128",
                        "typeString": "int128"
                      },
                      "id": 8996,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "id": 8994,
                        "name": "x",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8916,
                        "src": "13827:1:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int128",
                          "typeString": "int128"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "&",
                      "rightExpression": {
                        "hexValue": "3078383030303030303030303030303030",
                        "id": 8995,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "13831:17:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_576460752303423488_by_1",
                          "typeString": "int_const 576460752303423488"
                        },
                        "value": "0x800000000000000"
                      },
                      "src": "13827:21:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int128",
                        "typeString": "int128"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">",
                    "rightExpression": {
                      "hexValue": "30",
                      "id": 8997,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "13851:1:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "13827:25:38",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 9007,
                  "nodeType": "IfStatement",
                  "src": "13823:97:38",
                  "trueBody": {
                    "expression": {
                      "id": 9005,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftHandSide": {
                        "id": 8999,
                        "name": "result",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8935,
                        "src": "13860:6:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "Assignment",
                      "operator": "=",
                      "rightHandSide": {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 9004,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 9002,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 9000,
                            "name": "result",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8935,
                            "src": "13869:6:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "*",
                          "rightExpression": {
                            "hexValue": "3078313035394230443331353835373433414537433534384542363843413431374644",
                            "id": 9001,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "13878:35:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_347733580493780928808815525413232318461_by_1",
                              "typeString": "int_const 3477...(31 digits omitted)...8461"
                            },
                            "value": "0x1059B0D31585743AE7C548EB68CA417FD"
                          },
                          "src": "13869:44:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">>",
                        "rightExpression": {
                          "hexValue": "313238",
                          "id": 9003,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "13917:3:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_128_by_1",
                            "typeString": "int_const 128"
                          },
                          "value": "128"
                        },
                        "src": "13869:51:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "src": "13860:60:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 9006,
                    "nodeType": "ExpressionStatement",
                    "src": "13860:60:38"
                  }
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_int128",
                      "typeString": "int128"
                    },
                    "id": 9012,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "commonType": {
                        "typeIdentifier": "t_int128",
                        "typeString": "int128"
                      },
                      "id": 9010,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "id": 9008,
                        "name": "x",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8916,
                        "src": "13930:1:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int128",
                          "typeString": "int128"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "&",
                      "rightExpression": {
                        "hexValue": "3078343030303030303030303030303030",
                        "id": 9009,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "13934:17:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_288230376151711744_by_1",
                          "typeString": "int_const 288230376151711744"
                        },
                        "value": "0x400000000000000"
                      },
                      "src": "13930:21:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int128",
                        "typeString": "int128"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">",
                    "rightExpression": {
                      "hexValue": "30",
                      "id": 9011,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "13954:1:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "13930:25:38",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 9021,
                  "nodeType": "IfStatement",
                  "src": "13926:97:38",
                  "trueBody": {
                    "expression": {
                      "id": 9019,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftHandSide": {
                        "id": 9013,
                        "name": "result",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8935,
                        "src": "13963:6:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "Assignment",
                      "operator": "=",
                      "rightHandSide": {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 9018,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 9016,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 9014,
                            "name": "result",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8935,
                            "src": "13972:6:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "*",
                          "rightExpression": {
                            "hexValue": "3078313032433941334537373830363045453646374341434134463741323942444538",
                            "id": 9015,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "13981:35:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_343987798952690256687074238090730651112_by_1",
                              "typeString": "int_const 3439...(31 digits omitted)...1112"
                            },
                            "value": "0x102C9A3E778060EE6F7CACA4F7A29BDE8"
                          },
                          "src": "13972:44:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">>",
                        "rightExpression": {
                          "hexValue": "313238",
                          "id": 9017,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "14020:3:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_128_by_1",
                            "typeString": "int_const 128"
                          },
                          "value": "128"
                        },
                        "src": "13972:51:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "src": "13963:60:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 9020,
                    "nodeType": "ExpressionStatement",
                    "src": "13963:60:38"
                  }
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_int128",
                      "typeString": "int128"
                    },
                    "id": 9026,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "commonType": {
                        "typeIdentifier": "t_int128",
                        "typeString": "int128"
                      },
                      "id": 9024,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "id": 9022,
                        "name": "x",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8916,
                        "src": "14033:1:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int128",
                          "typeString": "int128"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "&",
                      "rightExpression": {
                        "hexValue": "3078323030303030303030303030303030",
                        "id": 9023,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "14037:17:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_144115188075855872_by_1",
                          "typeString": "int_const 144115188075855872"
                        },
                        "value": "0x200000000000000"
                      },
                      "src": "14033:21:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int128",
                        "typeString": "int128"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">",
                    "rightExpression": {
                      "hexValue": "30",
                      "id": 9025,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "14057:1:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "14033:25:38",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 9035,
                  "nodeType": "IfStatement",
                  "src": "14029:97:38",
                  "trueBody": {
                    "expression": {
                      "id": 9033,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftHandSide": {
                        "id": 9027,
                        "name": "result",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8935,
                        "src": "14066:6:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "Assignment",
                      "operator": "=",
                      "rightHandSide": {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 9032,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 9030,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 9028,
                            "name": "result",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8935,
                            "src": "14075:6:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "*",
                          "rightExpression": {
                            "hexValue": "3078313031363344413946423333333536443834413636414533333644434446413346",
                            "id": 9029,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "14084:35:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_342130066523749645191881555545647086143_by_1",
                              "typeString": "int_const 3421...(31 digits omitted)...6143"
                            },
                            "value": "0x10163DA9FB33356D84A66AE336DCDFA3F"
                          },
                          "src": "14075:44:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">>",
                        "rightExpression": {
                          "hexValue": "313238",
                          "id": 9031,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "14123:3:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_128_by_1",
                            "typeString": "int_const 128"
                          },
                          "value": "128"
                        },
                        "src": "14075:51:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "src": "14066:60:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 9034,
                    "nodeType": "ExpressionStatement",
                    "src": "14066:60:38"
                  }
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_int128",
                      "typeString": "int128"
                    },
                    "id": 9040,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "commonType": {
                        "typeIdentifier": "t_int128",
                        "typeString": "int128"
                      },
                      "id": 9038,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "id": 9036,
                        "name": "x",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8916,
                        "src": "14136:1:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int128",
                          "typeString": "int128"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "&",
                      "rightExpression": {
                        "hexValue": "3078313030303030303030303030303030",
                        "id": 9037,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "14140:17:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_72057594037927936_by_1",
                          "typeString": "int_const 72057594037927936"
                        },
                        "value": "0x100000000000000"
                      },
                      "src": "14136:21:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int128",
                        "typeString": "int128"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">",
                    "rightExpression": {
                      "hexValue": "30",
                      "id": 9039,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "14160:1:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "14136:25:38",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 9049,
                  "nodeType": "IfStatement",
                  "src": "14132:97:38",
                  "trueBody": {
                    "expression": {
                      "id": 9047,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftHandSide": {
                        "id": 9041,
                        "name": "result",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8935,
                        "src": "14169:6:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "Assignment",
                      "operator": "=",
                      "rightHandSide": {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 9046,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 9044,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 9042,
                            "name": "result",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8935,
                            "src": "14178:6:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "*",
                          "rightExpression": {
                            "hexValue": "3078313030423141464135414243424544363132394142313345433131444339353433",
                            "id": 9043,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "14187:35:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_341204966012395051463589306197117539651_by_1",
                              "typeString": "int_const 3412...(31 digits omitted)...9651"
                            },
                            "value": "0x100B1AFA5ABCBED6129AB13EC11DC9543"
                          },
                          "src": "14178:44:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">>",
                        "rightExpression": {
                          "hexValue": "313238",
                          "id": 9045,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "14226:3:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_128_by_1",
                            "typeString": "int_const 128"
                          },
                          "value": "128"
                        },
                        "src": "14178:51:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "src": "14169:60:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 9048,
                    "nodeType": "ExpressionStatement",
                    "src": "14169:60:38"
                  }
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_int128",
                      "typeString": "int128"
                    },
                    "id": 9054,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "commonType": {
                        "typeIdentifier": "t_int128",
                        "typeString": "int128"
                      },
                      "id": 9052,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "id": 9050,
                        "name": "x",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8916,
                        "src": "14239:1:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int128",
                          "typeString": "int128"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "&",
                      "rightExpression": {
                        "hexValue": "30783830303030303030303030303030",
                        "id": 9051,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "14243:16:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_36028797018963968_by_1",
                          "typeString": "int_const 36028797018963968"
                        },
                        "value": "0x80000000000000"
                      },
                      "src": "14239:20:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int128",
                        "typeString": "int128"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">",
                    "rightExpression": {
                      "hexValue": "30",
                      "id": 9053,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "14262:1:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "14239:24:38",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 9063,
                  "nodeType": "IfStatement",
                  "src": "14235:96:38",
                  "trueBody": {
                    "expression": {
                      "id": 9061,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftHandSide": {
                        "id": 9055,
                        "name": "result",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8935,
                        "src": "14271:6:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "Assignment",
                      "operator": "=",
                      "rightHandSide": {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 9060,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 9058,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 9056,
                            "name": "result",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8935,
                            "src": "14280:6:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "*",
                          "rightExpression": {
                            "hexValue": "3078313030353843383644413143303945413146463139443239344346324636373942",
                            "id": 9057,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "14289:35:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_340743354212339922144397487283364652955_by_1",
                              "typeString": "int_const 3407...(31 digits omitted)...2955"
                            },
                            "value": "0x10058C86DA1C09EA1FF19D294CF2F679B"
                          },
                          "src": "14280:44:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">>",
                        "rightExpression": {
                          "hexValue": "313238",
                          "id": 9059,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "14328:3:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_128_by_1",
                            "typeString": "int_const 128"
                          },
                          "value": "128"
                        },
                        "src": "14280:51:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "src": "14271:60:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 9062,
                    "nodeType": "ExpressionStatement",
                    "src": "14271:60:38"
                  }
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_int128",
                      "typeString": "int128"
                    },
                    "id": 9068,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "commonType": {
                        "typeIdentifier": "t_int128",
                        "typeString": "int128"
                      },
                      "id": 9066,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "id": 9064,
                        "name": "x",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8916,
                        "src": "14341:1:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int128",
                          "typeString": "int128"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "&",
                      "rightExpression": {
                        "hexValue": "30783430303030303030303030303030",
                        "id": 9065,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "14345:16:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_18014398509481984_by_1",
                          "typeString": "int_const 18014398509481984"
                        },
                        "value": "0x40000000000000"
                      },
                      "src": "14341:20:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int128",
                        "typeString": "int128"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">",
                    "rightExpression": {
                      "hexValue": "30",
                      "id": 9067,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "14364:1:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "14341:24:38",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 9077,
                  "nodeType": "IfStatement",
                  "src": "14337:96:38",
                  "trueBody": {
                    "expression": {
                      "id": 9075,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftHandSide": {
                        "id": 9069,
                        "name": "result",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8935,
                        "src": "14373:6:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "Assignment",
                      "operator": "=",
                      "rightHandSide": {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 9074,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 9072,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 9070,
                            "name": "result",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8935,
                            "src": "14382:6:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "*",
                          "rightExpression": {
                            "hexValue": "3078313030324336303545324538434543353036443231424643383941323341303046",
                            "id": 9071,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "14391:35:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_340512782555889898808859563671008026639_by_1",
                              "typeString": "int_const 3405...(31 digits omitted)...6639"
                            },
                            "value": "0x1002C605E2E8CEC506D21BFC89A23A00F"
                          },
                          "src": "14382:44:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">>",
                        "rightExpression": {
                          "hexValue": "313238",
                          "id": 9073,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "14430:3:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_128_by_1",
                            "typeString": "int_const 128"
                          },
                          "value": "128"
                        },
                        "src": "14382:51:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "src": "14373:60:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 9076,
                    "nodeType": "ExpressionStatement",
                    "src": "14373:60:38"
                  }
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_int128",
                      "typeString": "int128"
                    },
                    "id": 9082,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "commonType": {
                        "typeIdentifier": "t_int128",
                        "typeString": "int128"
                      },
                      "id": 9080,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "id": 9078,
                        "name": "x",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8916,
                        "src": "14443:1:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int128",
                          "typeString": "int128"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "&",
                      "rightExpression": {
                        "hexValue": "30783230303030303030303030303030",
                        "id": 9079,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "14447:16:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_9007199254740992_by_1",
                          "typeString": "int_const 9007199254740992"
                        },
                        "value": "0x20000000000000"
                      },
                      "src": "14443:20:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int128",
                        "typeString": "int128"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">",
                    "rightExpression": {
                      "hexValue": "30",
                      "id": 9081,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "14466:1:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "14443:24:38",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 9091,
                  "nodeType": "IfStatement",
                  "src": "14439:96:38",
                  "trueBody": {
                    "expression": {
                      "id": 9089,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftHandSide": {
                        "id": 9083,
                        "name": "result",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8935,
                        "src": "14475:6:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "Assignment",
                      "operator": "=",
                      "rightHandSide": {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 9088,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 9086,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 9084,
                            "name": "result",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8935,
                            "src": "14484:6:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "*",
                          "rightExpression": {
                            "hexValue": "3078313030313632463339303430353146413132384243413943353543333145354446",
                            "id": 9085,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "14493:35:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_340397555242326998647385072673097901535_by_1",
                              "typeString": "int_const 3403...(31 digits omitted)...1535"
                            },
                            "value": "0x100162F3904051FA128BCA9C55C31E5DF"
                          },
                          "src": "14484:44:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">>",
                        "rightExpression": {
                          "hexValue": "313238",
                          "id": 9087,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "14532:3:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_128_by_1",
                            "typeString": "int_const 128"
                          },
                          "value": "128"
                        },
                        "src": "14484:51:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "src": "14475:60:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 9090,
                    "nodeType": "ExpressionStatement",
                    "src": "14475:60:38"
                  }
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_int128",
                      "typeString": "int128"
                    },
                    "id": 9096,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "commonType": {
                        "typeIdentifier": "t_int128",
                        "typeString": "int128"
                      },
                      "id": 9094,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "id": 9092,
                        "name": "x",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8916,
                        "src": "14545:1:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int128",
                          "typeString": "int128"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "&",
                      "rightExpression": {
                        "hexValue": "30783130303030303030303030303030",
                        "id": 9093,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "14549:16:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_4503599627370496_by_1",
                          "typeString": "int_const 4503599627370496"
                        },
                        "value": "0x10000000000000"
                      },
                      "src": "14545:20:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int128",
                        "typeString": "int128"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">",
                    "rightExpression": {
                      "hexValue": "30",
                      "id": 9095,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "14568:1:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "14545:24:38",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 9105,
                  "nodeType": "IfStatement",
                  "src": "14541:96:38",
                  "trueBody": {
                    "expression": {
                      "id": 9103,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftHandSide": {
                        "id": 9097,
                        "name": "result",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8935,
                        "src": "14577:6:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "Assignment",
                      "operator": "=",
                      "rightHandSide": {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 9102,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 9100,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 9098,
                            "name": "result",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8935,
                            "src": "14586:6:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "*",
                          "rightExpression": {
                            "hexValue": "3078313030304231373545464644433736424133384533313637314341393339373235",
                            "id": 9099,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "14595:35:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_340339956208435708755752659506489956133_by_1",
                              "typeString": "int_const 3403...(31 digits omitted)...6133"
                            },
                            "value": "0x1000B175EFFDC76BA38E31671CA939725"
                          },
                          "src": "14586:44:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">>",
                        "rightExpression": {
                          "hexValue": "313238",
                          "id": 9101,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "14634:3:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_128_by_1",
                            "typeString": "int_const 128"
                          },
                          "value": "128"
                        },
                        "src": "14586:51:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "src": "14577:60:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 9104,
                    "nodeType": "ExpressionStatement",
                    "src": "14577:60:38"
                  }
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_int128",
                      "typeString": "int128"
                    },
                    "id": 9110,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "commonType": {
                        "typeIdentifier": "t_int128",
                        "typeString": "int128"
                      },
                      "id": 9108,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "id": 9106,
                        "name": "x",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8916,
                        "src": "14647:1:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int128",
                          "typeString": "int128"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "&",
                      "rightExpression": {
                        "hexValue": "307838303030303030303030303030",
                        "id": 9107,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "14651:15:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_2251799813685248_by_1",
                          "typeString": "int_const 2251799813685248"
                        },
                        "value": "0x8000000000000"
                      },
                      "src": "14647:19:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int128",
                        "typeString": "int128"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">",
                    "rightExpression": {
                      "hexValue": "30",
                      "id": 9109,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "14669:1:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "14647:23:38",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 9119,
                  "nodeType": "IfStatement",
                  "src": "14643:95:38",
                  "trueBody": {
                    "expression": {
                      "id": 9117,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftHandSide": {
                        "id": 9111,
                        "name": "result",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8935,
                        "src": "14678:6:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "Assignment",
                      "operator": "=",
                      "rightHandSide": {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 9116,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 9114,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 9112,
                            "name": "result",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8935,
                            "src": "14687:6:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "*",
                          "rightExpression": {
                            "hexValue": "3078313030303538424130314642394639364436434143443442313830393137433344",
                            "id": 9113,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "14696:35:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_340311160346490911934870813363085081661_by_1",
                              "typeString": "int_const 3403...(31 digits omitted)...1661"
                            },
                            "value": "0x100058BA01FB9F96D6CACD4B180917C3D"
                          },
                          "src": "14687:44:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">>",
                        "rightExpression": {
                          "hexValue": "313238",
                          "id": 9115,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "14735:3:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_128_by_1",
                            "typeString": "int_const 128"
                          },
                          "value": "128"
                        },
                        "src": "14687:51:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "src": "14678:60:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 9118,
                    "nodeType": "ExpressionStatement",
                    "src": "14678:60:38"
                  }
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_int128",
                      "typeString": "int128"
                    },
                    "id": 9124,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "commonType": {
                        "typeIdentifier": "t_int128",
                        "typeString": "int128"
                      },
                      "id": 9122,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "id": 9120,
                        "name": "x",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8916,
                        "src": "14748:1:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int128",
                          "typeString": "int128"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "&",
                      "rightExpression": {
                        "hexValue": "307834303030303030303030303030",
                        "id": 9121,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "14752:15:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_1125899906842624_by_1",
                          "typeString": "int_const 1125899906842624"
                        },
                        "value": "0x4000000000000"
                      },
                      "src": "14748:19:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int128",
                        "typeString": "int128"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">",
                    "rightExpression": {
                      "hexValue": "30",
                      "id": 9123,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "14770:1:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "14748:23:38",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 9133,
                  "nodeType": "IfStatement",
                  "src": "14744:95:38",
                  "trueBody": {
                    "expression": {
                      "id": 9131,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftHandSide": {
                        "id": 9125,
                        "name": "result",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8935,
                        "src": "14779:6:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "Assignment",
                      "operator": "=",
                      "rightHandSide": {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 9130,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 9128,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 9126,
                            "name": "result",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8935,
                            "src": "14788:6:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "*",
                          "rightExpression": {
                            "hexValue": "3078313030303243354343333744413934393144303938354333343843363845374233",
                            "id": 9127,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "14797:35:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_340296763329178528376528243588334151603_by_1",
                              "typeString": "int_const 3402...(31 digits omitted)...1603"
                            },
                            "value": "0x10002C5CC37DA9491D0985C348C68E7B3"
                          },
                          "src": "14788:44:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">>",
                        "rightExpression": {
                          "hexValue": "313238",
                          "id": 9129,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "14836:3:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_128_by_1",
                            "typeString": "int_const 128"
                          },
                          "value": "128"
                        },
                        "src": "14788:51:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "src": "14779:60:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 9132,
                    "nodeType": "ExpressionStatement",
                    "src": "14779:60:38"
                  }
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_int128",
                      "typeString": "int128"
                    },
                    "id": 9138,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "commonType": {
                        "typeIdentifier": "t_int128",
                        "typeString": "int128"
                      },
                      "id": 9136,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "id": 9134,
                        "name": "x",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8916,
                        "src": "14849:1:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int128",
                          "typeString": "int128"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "&",
                      "rightExpression": {
                        "hexValue": "307832303030303030303030303030",
                        "id": 9135,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "14853:15:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_562949953421312_by_1",
                          "typeString": "int_const 562949953421312"
                        },
                        "value": "0x2000000000000"
                      },
                      "src": "14849:19:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int128",
                        "typeString": "int128"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">",
                    "rightExpression": {
                      "hexValue": "30",
                      "id": 9137,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "14871:1:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "14849:23:38",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 9147,
                  "nodeType": "IfStatement",
                  "src": "14845:95:38",
                  "trueBody": {
                    "expression": {
                      "id": 9145,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftHandSide": {
                        "id": 9139,
                        "name": "result",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8935,
                        "src": "14880:6:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "Assignment",
                      "operator": "=",
                      "rightHandSide": {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 9144,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 9142,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 9140,
                            "name": "result",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8935,
                            "src": "14889:6:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "*",
                          "rightExpression": {
                            "hexValue": "3078313030303136324535323545453035343735343435374435393935323932303236",
                            "id": 9141,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "14898:35:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_340289565048926066557319684044576333862_by_1",
                              "typeString": "int_const 3402...(31 digits omitted)...3862"
                            },
                            "value": "0x1000162E525EE054754457D5995292026"
                          },
                          "src": "14889:44:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">>",
                        "rightExpression": {
                          "hexValue": "313238",
                          "id": 9143,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "14937:3:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_128_by_1",
                            "typeString": "int_const 128"
                          },
                          "value": "128"
                        },
                        "src": "14889:51:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "src": "14880:60:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 9146,
                    "nodeType": "ExpressionStatement",
                    "src": "14880:60:38"
                  }
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_int128",
                      "typeString": "int128"
                    },
                    "id": 9152,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "commonType": {
                        "typeIdentifier": "t_int128",
                        "typeString": "int128"
                      },
                      "id": 9150,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "id": 9148,
                        "name": "x",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8916,
                        "src": "14950:1:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int128",
                          "typeString": "int128"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "&",
                      "rightExpression": {
                        "hexValue": "307831303030303030303030303030",
                        "id": 9149,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "14954:15:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_281474976710656_by_1",
                          "typeString": "int_const 281474976710656"
                        },
                        "value": "0x1000000000000"
                      },
                      "src": "14950:19:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int128",
                        "typeString": "int128"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">",
                    "rightExpression": {
                      "hexValue": "30",
                      "id": 9151,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "14972:1:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "14950:23:38",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 9161,
                  "nodeType": "IfStatement",
                  "src": "14946:95:38",
                  "trueBody": {
                    "expression": {
                      "id": 9159,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftHandSide": {
                        "id": 9153,
                        "name": "result",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8935,
                        "src": "14981:6:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "Assignment",
                      "operator": "=",
                      "rightHandSide": {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 9158,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 9156,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 9154,
                            "name": "result",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8935,
                            "src": "14990:6:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "*",
                          "rightExpression": {
                            "hexValue": "3078313030303042313732353537373543303430363138424634413441444538334643",
                            "id": 9155,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "14999:35:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_340285965965899358974465315064323671036_by_1",
                              "typeString": "int_const 3402...(31 digits omitted)...1036"
                            },
                            "value": "0x10000B17255775C040618BF4A4ADE83FC"
                          },
                          "src": "14990:44:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">>",
                        "rightExpression": {
                          "hexValue": "313238",
                          "id": 9157,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "15038:3:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_128_by_1",
                            "typeString": "int_const 128"
                          },
                          "value": "128"
                        },
                        "src": "14990:51:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "src": "14981:60:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 9160,
                    "nodeType": "ExpressionStatement",
                    "src": "14981:60:38"
                  }
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_int128",
                      "typeString": "int128"
                    },
                    "id": 9166,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "commonType": {
                        "typeIdentifier": "t_int128",
                        "typeString": "int128"
                      },
                      "id": 9164,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "id": 9162,
                        "name": "x",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8916,
                        "src": "15051:1:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int128",
                          "typeString": "int128"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "&",
                      "rightExpression": {
                        "hexValue": "3078383030303030303030303030",
                        "id": 9163,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "15055:14:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_140737488355328_by_1",
                          "typeString": "int_const 140737488355328"
                        },
                        "value": "0x800000000000"
                      },
                      "src": "15051:18:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int128",
                        "typeString": "int128"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">",
                    "rightExpression": {
                      "hexValue": "30",
                      "id": 9165,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "15072:1:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "15051:22:38",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 9175,
                  "nodeType": "IfStatement",
                  "src": "15047:94:38",
                  "trueBody": {
                    "expression": {
                      "id": 9173,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftHandSide": {
                        "id": 9167,
                        "name": "result",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8935,
                        "src": "15081:6:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "Assignment",
                      "operator": "=",
                      "rightHandSide": {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 9172,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 9170,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 9168,
                            "name": "result",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8935,
                            "src": "15090:6:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "*",
                          "rightExpression": {
                            "hexValue": "3078313030303035384239314235424339414532454544383145394237443443464142",
                            "id": 9169,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "15099:35:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_340284166438660709872813645066166128555_by_1",
                              "typeString": "int_const 3402...(31 digits omitted)...8555"
                            },
                            "value": "0x1000058B91B5BC9AE2EED81E9B7D4CFAB"
                          },
                          "src": "15090:44:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">>",
                        "rightExpression": {
                          "hexValue": "313238",
                          "id": 9171,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "15138:3:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_128_by_1",
                            "typeString": "int_const 128"
                          },
                          "value": "128"
                        },
                        "src": "15090:51:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "src": "15081:60:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 9174,
                    "nodeType": "ExpressionStatement",
                    "src": "15081:60:38"
                  }
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_int128",
                      "typeString": "int128"
                    },
                    "id": 9180,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "commonType": {
                        "typeIdentifier": "t_int128",
                        "typeString": "int128"
                      },
                      "id": 9178,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "id": 9176,
                        "name": "x",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8916,
                        "src": "15151:1:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int128",
                          "typeString": "int128"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "&",
                      "rightExpression": {
                        "hexValue": "3078343030303030303030303030",
                        "id": 9177,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "15155:14:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_70368744177664_by_1",
                          "typeString": "int_const 70368744177664"
                        },
                        "value": "0x400000000000"
                      },
                      "src": "15151:18:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int128",
                        "typeString": "int128"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">",
                    "rightExpression": {
                      "hexValue": "30",
                      "id": 9179,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "15172:1:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "15151:22:38",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 9189,
                  "nodeType": "IfStatement",
                  "src": "15147:94:38",
                  "trueBody": {
                    "expression": {
                      "id": 9187,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftHandSide": {
                        "id": 9181,
                        "name": "result",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8935,
                        "src": "15181:6:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "Assignment",
                      "operator": "=",
                      "rightHandSide": {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 9186,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 9184,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 9182,
                            "name": "result",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8935,
                            "src": "15190:6:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "*",
                          "rightExpression": {
                            "hexValue": "3078313030303032433543383944354543364341344437433841434330313742374339",
                            "id": 9183,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "15199:35:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_340283266678610039476911010529773336521_by_1",
                              "typeString": "int_const 3402...(31 digits omitted)...6521"
                            },
                            "value": "0x100002C5C89D5EC6CA4D7C8ACC017B7C9"
                          },
                          "src": "15190:44:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">>",
                        "rightExpression": {
                          "hexValue": "313238",
                          "id": 9185,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "15238:3:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_128_by_1",
                            "typeString": "int_const 128"
                          },
                          "value": "128"
                        },
                        "src": "15190:51:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "src": "15181:60:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 9188,
                    "nodeType": "ExpressionStatement",
                    "src": "15181:60:38"
                  }
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_int128",
                      "typeString": "int128"
                    },
                    "id": 9194,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "commonType": {
                        "typeIdentifier": "t_int128",
                        "typeString": "int128"
                      },
                      "id": 9192,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "id": 9190,
                        "name": "x",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8916,
                        "src": "15251:1:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int128",
                          "typeString": "int128"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "&",
                      "rightExpression": {
                        "hexValue": "3078323030303030303030303030",
                        "id": 9191,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "15255:14:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_35184372088832_by_1",
                          "typeString": "int_const 35184372088832"
                        },
                        "value": "0x200000000000"
                      },
                      "src": "15251:18:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int128",
                        "typeString": "int128"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">",
                    "rightExpression": {
                      "hexValue": "30",
                      "id": 9193,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "15272:1:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "15251:22:38",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 9203,
                  "nodeType": "IfStatement",
                  "src": "15247:94:38",
                  "trueBody": {
                    "expression": {
                      "id": 9201,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftHandSide": {
                        "id": 9195,
                        "name": "result",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8935,
                        "src": "15281:6:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "Assignment",
                      "operator": "=",
                      "rightHandSide": {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 9200,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 9198,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 9196,
                            "name": "result",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8935,
                            "src": "15290:6:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "*",
                          "rightExpression": {
                            "hexValue": "3078313030303031363245343346344638333130363045303244383339413944313644",
                            "id": 9197,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "15299:35:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_340282816799476865065514053322893021549_by_1",
                              "typeString": "int_const 3402...(31 digits omitted)...1549"
                            },
                            "value": "0x10000162E43F4F831060E02D839A9D16D"
                          },
                          "src": "15290:44:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">>",
                        "rightExpression": {
                          "hexValue": "313238",
                          "id": 9199,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "15338:3:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_128_by_1",
                            "typeString": "int_const 128"
                          },
                          "value": "128"
                        },
                        "src": "15290:51:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "src": "15281:60:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 9202,
                    "nodeType": "ExpressionStatement",
                    "src": "15281:60:38"
                  }
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_int128",
                      "typeString": "int128"
                    },
                    "id": 9208,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "commonType": {
                        "typeIdentifier": "t_int128",
                        "typeString": "int128"
                      },
                      "id": 9206,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "id": 9204,
                        "name": "x",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8916,
                        "src": "15351:1:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int128",
                          "typeString": "int128"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "&",
                      "rightExpression": {
                        "hexValue": "3078313030303030303030303030",
                        "id": 9205,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "15355:14:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_17592186044416_by_1",
                          "typeString": "int_const 17592186044416"
                        },
                        "value": "0x100000000000"
                      },
                      "src": "15351:18:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int128",
                        "typeString": "int128"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">",
                    "rightExpression": {
                      "hexValue": "30",
                      "id": 9207,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "15372:1:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "15351:22:38",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 9217,
                  "nodeType": "IfStatement",
                  "src": "15347:94:38",
                  "trueBody": {
                    "expression": {
                      "id": 9215,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftHandSide": {
                        "id": 9209,
                        "name": "result",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8935,
                        "src": "15381:6:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "Assignment",
                      "operator": "=",
                      "rightHandSide": {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 9214,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 9212,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 9210,
                            "name": "result",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8935,
                            "src": "15390:6:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "*",
                          "rightExpression": {
                            "hexValue": "3078313030303030423137323142434643393944394638393045413036393131373633",
                            "id": 9211,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "15399:35:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_340282591860133317712432962519222523747_by_1",
                              "typeString": "int_const 3402...(31 digits omitted)...3747"
                            },
                            "value": "0x100000B1721BCFC99D9F890EA06911763"
                          },
                          "src": "15390:44:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">>",
                        "rightExpression": {
                          "hexValue": "313238",
                          "id": 9213,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "15438:3:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_128_by_1",
                            "typeString": "int_const 128"
                          },
                          "value": "128"
                        },
                        "src": "15390:51:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "src": "15381:60:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 9216,
                    "nodeType": "ExpressionStatement",
                    "src": "15381:60:38"
                  }
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_int128",
                      "typeString": "int128"
                    },
                    "id": 9222,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "commonType": {
                        "typeIdentifier": "t_int128",
                        "typeString": "int128"
                      },
                      "id": 9220,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "id": 9218,
                        "name": "x",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8916,
                        "src": "15451:1:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int128",
                          "typeString": "int128"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "&",
                      "rightExpression": {
                        "hexValue": "30783830303030303030303030",
                        "id": 9219,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "15455:13:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_8796093022208_by_1",
                          "typeString": "int_const 8796093022208"
                        },
                        "value": "0x80000000000"
                      },
                      "src": "15451:17:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int128",
                        "typeString": "int128"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">",
                    "rightExpression": {
                      "hexValue": "30",
                      "id": 9221,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "15471:1:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "15451:21:38",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 9231,
                  "nodeType": "IfStatement",
                  "src": "15447:93:38",
                  "trueBody": {
                    "expression": {
                      "id": 9229,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftHandSide": {
                        "id": 9223,
                        "name": "result",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8935,
                        "src": "15480:6:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "Assignment",
                      "operator": "=",
                      "rightHandSide": {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 9228,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 9226,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 9224,
                            "name": "result",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8935,
                            "src": "15489:6:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "*",
                          "rightExpression": {
                            "hexValue": "3078313030303030353842393043463145364439374639434131344442434331363238",
                            "id": 9225,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "15498:35:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_340282479390517303956044167089727739432_by_1",
                              "typeString": "int_const 3402...(31 digits omitted)...9432"
                            },
                            "value": "0x10000058B90CF1E6D97F9CA14DBCC1628"
                          },
                          "src": "15489:44:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">>",
                        "rightExpression": {
                          "hexValue": "313238",
                          "id": 9227,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "15537:3:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_128_by_1",
                            "typeString": "int_const 128"
                          },
                          "value": "128"
                        },
                        "src": "15489:51:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "src": "15480:60:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 9230,
                    "nodeType": "ExpressionStatement",
                    "src": "15480:60:38"
                  }
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_int128",
                      "typeString": "int128"
                    },
                    "id": 9236,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "commonType": {
                        "typeIdentifier": "t_int128",
                        "typeString": "int128"
                      },
                      "id": 9234,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "id": 9232,
                        "name": "x",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8916,
                        "src": "15550:1:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int128",
                          "typeString": "int128"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "&",
                      "rightExpression": {
                        "hexValue": "30783430303030303030303030",
                        "id": 9233,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "15554:13:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_4398046511104_by_1",
                          "typeString": "int_const 4398046511104"
                        },
                        "value": "0x40000000000"
                      },
                      "src": "15550:17:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int128",
                        "typeString": "int128"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">",
                    "rightExpression": {
                      "hexValue": "30",
                      "id": 9235,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "15570:1:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "15550:21:38",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 9245,
                  "nodeType": "IfStatement",
                  "src": "15546:93:38",
                  "trueBody": {
                    "expression": {
                      "id": 9243,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftHandSide": {
                        "id": 9237,
                        "name": "result",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8935,
                        "src": "15579:6:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "Assignment",
                      "operator": "=",
                      "rightHandSide": {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 9242,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 9240,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 9238,
                            "name": "result",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8935,
                            "src": "15588:6:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "*",
                          "rightExpression": {
                            "hexValue": "3078313030303030324335433836334237334630313634363846364241433543413242",
                            "id": 9239,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "15597:35:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_340282423155723237052512385577070742059_by_1",
                              "typeString": "int_const 3402...(31 digits omitted)...2059"
                            },
                            "value": "0x1000002C5C863B73F016468F6BAC5CA2B"
                          },
                          "src": "15588:44:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">>",
                        "rightExpression": {
                          "hexValue": "313238",
                          "id": 9241,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "15636:3:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_128_by_1",
                            "typeString": "int_const 128"
                          },
                          "value": "128"
                        },
                        "src": "15588:51:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "src": "15579:60:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 9244,
                    "nodeType": "ExpressionStatement",
                    "src": "15579:60:38"
                  }
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_int128",
                      "typeString": "int128"
                    },
                    "id": 9250,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "commonType": {
                        "typeIdentifier": "t_int128",
                        "typeString": "int128"
                      },
                      "id": 9248,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "id": 9246,
                        "name": "x",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8916,
                        "src": "15649:1:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int128",
                          "typeString": "int128"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "&",
                      "rightExpression": {
                        "hexValue": "30783230303030303030303030",
                        "id": 9247,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "15653:13:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_2199023255552_by_1",
                          "typeString": "int_const 2199023255552"
                        },
                        "value": "0x20000000000"
                      },
                      "src": "15649:17:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int128",
                        "typeString": "int128"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">",
                    "rightExpression": {
                      "hexValue": "30",
                      "id": 9249,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "15669:1:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "15649:21:38",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 9259,
                  "nodeType": "IfStatement",
                  "src": "15645:93:38",
                  "trueBody": {
                    "expression": {
                      "id": 9257,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftHandSide": {
                        "id": 9251,
                        "name": "result",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8935,
                        "src": "15678:6:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "Assignment",
                      "operator": "=",
                      "rightHandSide": {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 9256,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 9254,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 9252,
                            "name": "result",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8935,
                            "src": "15687:6:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "*",
                          "rightExpression": {
                            "hexValue": "3078313030303030313632453433304535413138463631313945334330323238324135",
                            "id": 9253,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "15696:35:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_340282395038329688593740233918090740389_by_1",
                              "typeString": "int_const 3402...(31 digits omitted)...0389"
                            },
                            "value": "0x100000162E430E5A18F6119E3C02282A5"
                          },
                          "src": "15687:44:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">>",
                        "rightExpression": {
                          "hexValue": "313238",
                          "id": 9255,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "15735:3:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_128_by_1",
                            "typeString": "int_const 128"
                          },
                          "value": "128"
                        },
                        "src": "15687:51:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "src": "15678:60:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 9258,
                    "nodeType": "ExpressionStatement",
                    "src": "15678:60:38"
                  }
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_int128",
                      "typeString": "int128"
                    },
                    "id": 9264,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "commonType": {
                        "typeIdentifier": "t_int128",
                        "typeString": "int128"
                      },
                      "id": 9262,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "id": 9260,
                        "name": "x",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8916,
                        "src": "15748:1:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int128",
                          "typeString": "int128"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "&",
                      "rightExpression": {
                        "hexValue": "30783130303030303030303030",
                        "id": 9261,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "15752:13:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_1099511627776_by_1",
                          "typeString": "int_const 1099511627776"
                        },
                        "value": "0x10000000000"
                      },
                      "src": "15748:17:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int128",
                        "typeString": "int128"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">",
                    "rightExpression": {
                      "hexValue": "30",
                      "id": 9263,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "15768:1:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "15748:21:38",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 9273,
                  "nodeType": "IfStatement",
                  "src": "15744:93:38",
                  "trueBody": {
                    "expression": {
                      "id": 9271,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftHandSide": {
                        "id": 9265,
                        "name": "result",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8935,
                        "src": "15777:6:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "Assignment",
                      "operator": "=",
                      "rightHandSide": {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 9270,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 9268,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 9266,
                            "name": "result",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8935,
                            "src": "15786:6:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "*",
                          "rightExpression": {
                            "hexValue": "3078313030303030304231373231383335353134423836453644393645464431424645",
                            "id": 9267,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "15795:35:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_340282380979633785612518603506803612670_by_1",
                              "typeString": "int_const 3402...(31 digits omitted)...2670"
                            },
                            "value": "0x1000000B1721835514B86E6D96EFD1BFE"
                          },
                          "src": "15786:44:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">>",
                        "rightExpression": {
                          "hexValue": "313238",
                          "id": 9269,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "15834:3:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_128_by_1",
                            "typeString": "int_const 128"
                          },
                          "value": "128"
                        },
                        "src": "15786:51:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "src": "15777:60:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 9272,
                    "nodeType": "ExpressionStatement",
                    "src": "15777:60:38"
                  }
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_int128",
                      "typeString": "int128"
                    },
                    "id": 9278,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "commonType": {
                        "typeIdentifier": "t_int128",
                        "typeString": "int128"
                      },
                      "id": 9276,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "id": 9274,
                        "name": "x",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8916,
                        "src": "15847:1:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int128",
                          "typeString": "int128"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "&",
                      "rightExpression": {
                        "hexValue": "307838303030303030303030",
                        "id": 9275,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "15851:12:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_549755813888_by_1",
                          "typeString": "int_const 549755813888"
                        },
                        "value": "0x8000000000"
                      },
                      "src": "15847:16:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int128",
                        "typeString": "int128"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">",
                    "rightExpression": {
                      "hexValue": "30",
                      "id": 9277,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "15866:1:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "15847:20:38",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 9287,
                  "nodeType": "IfStatement",
                  "src": "15843:92:38",
                  "trueBody": {
                    "expression": {
                      "id": 9285,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftHandSide": {
                        "id": 9279,
                        "name": "result",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8935,
                        "src": "15875:6:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "Assignment",
                      "operator": "=",
                      "rightHandSide": {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 9284,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 9282,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 9280,
                            "name": "result",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8935,
                            "src": "15884:6:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "*",
                          "rightExpression": {
                            "hexValue": "3078313030303030303538423930433042343843364245354446383436433542324546",
                            "id": 9281,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "15893:35:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_340282373950286051933938400987007267567_by_1",
                              "typeString": "int_const 3402...(31 digits omitted)...7567"
                            },
                            "value": "0x100000058B90C0B48C6BE5DF846C5B2EF"
                          },
                          "src": "15884:44:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">>",
                        "rightExpression": {
                          "hexValue": "313238",
                          "id": 9283,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "15932:3:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_128_by_1",
                            "typeString": "int_const 128"
                          },
                          "value": "128"
                        },
                        "src": "15884:51:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "src": "15875:60:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 9286,
                    "nodeType": "ExpressionStatement",
                    "src": "15875:60:38"
                  }
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_int128",
                      "typeString": "int128"
                    },
                    "id": 9292,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "commonType": {
                        "typeIdentifier": "t_int128",
                        "typeString": "int128"
                      },
                      "id": 9290,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "id": 9288,
                        "name": "x",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8916,
                        "src": "15945:1:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int128",
                          "typeString": "int128"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "&",
                      "rightExpression": {
                        "hexValue": "307834303030303030303030",
                        "id": 9289,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "15949:12:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_274877906944_by_1",
                          "typeString": "int_const 274877906944"
                        },
                        "value": "0x4000000000"
                      },
                      "src": "15945:16:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int128",
                        "typeString": "int128"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">",
                    "rightExpression": {
                      "hexValue": "30",
                      "id": 9291,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "15964:1:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "15945:20:38",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 9301,
                  "nodeType": "IfStatement",
                  "src": "15941:92:38",
                  "trueBody": {
                    "expression": {
                      "id": 9299,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftHandSide": {
                        "id": 9293,
                        "name": "result",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8935,
                        "src": "15973:6:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "Assignment",
                      "operator": "=",
                      "rightHandSide": {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 9298,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 9296,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 9294,
                            "name": "result",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8935,
                            "src": "15982:6:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "*",
                          "rightExpression": {
                            "hexValue": "3078313030303030303243354338363031434336423945393432313343373237333741",
                            "id": 9295,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "15991:35:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_340282370435612239547654640565033792378_by_1",
                              "typeString": "int_const 3402...(31 digits omitted)...2378"
                            },
                            "value": "0x10000002C5C8601CC6B9E94213C72737A"
                          },
                          "src": "15982:44:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">>",
                        "rightExpression": {
                          "hexValue": "313238",
                          "id": 9297,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "16030:3:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_128_by_1",
                            "typeString": "int_const 128"
                          },
                          "value": "128"
                        },
                        "src": "15982:51:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "src": "15973:60:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 9300,
                    "nodeType": "ExpressionStatement",
                    "src": "15973:60:38"
                  }
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_int128",
                      "typeString": "int128"
                    },
                    "id": 9306,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "commonType": {
                        "typeIdentifier": "t_int128",
                        "typeString": "int128"
                      },
                      "id": 9304,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "id": 9302,
                        "name": "x",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8916,
                        "src": "16043:1:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int128",
                          "typeString": "int128"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "&",
                      "rightExpression": {
                        "hexValue": "307832303030303030303030",
                        "id": 9303,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "16047:12:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_137438953472_by_1",
                          "typeString": "int_const 137438953472"
                        },
                        "value": "0x2000000000"
                      },
                      "src": "16043:16:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int128",
                        "typeString": "int128"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">",
                    "rightExpression": {
                      "hexValue": "30",
                      "id": 9305,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "16062:1:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "16043:20:38",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 9315,
                  "nodeType": "IfStatement",
                  "src": "16039:92:38",
                  "trueBody": {
                    "expression": {
                      "id": 9313,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftHandSide": {
                        "id": 9307,
                        "name": "result",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8935,
                        "src": "16071:6:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "Assignment",
                      "operator": "=",
                      "rightHandSide": {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 9312,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 9310,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 9308,
                            "name": "result",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8935,
                            "src": "16080:6:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "*",
                          "rightExpression": {
                            "hexValue": "3078313030303030303136324534324646463033374446333841413242323139463036",
                            "id": 9309,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "16089:35:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_340282368678275346967764181521839267590_by_1",
                              "typeString": "int_const 3402...(31 digits omitted)...7590"
                            },
                            "value": "0x1000000162E42FFF037DF38AA2B219F06"
                          },
                          "src": "16080:44:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">>",
                        "rightExpression": {
                          "hexValue": "313238",
                          "id": 9311,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "16128:3:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_128_by_1",
                            "typeString": "int_const 128"
                          },
                          "value": "128"
                        },
                        "src": "16080:51:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "src": "16071:60:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 9314,
                    "nodeType": "ExpressionStatement",
                    "src": "16071:60:38"
                  }
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_int128",
                      "typeString": "int128"
                    },
                    "id": 9320,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "commonType": {
                        "typeIdentifier": "t_int128",
                        "typeString": "int128"
                      },
                      "id": 9318,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "id": 9316,
                        "name": "x",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8916,
                        "src": "16141:1:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int128",
                          "typeString": "int128"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "&",
                      "rightExpression": {
                        "hexValue": "307831303030303030303030",
                        "id": 9317,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "16145:12:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_68719476736_by_1",
                          "typeString": "int_const 68719476736"
                        },
                        "value": "0x1000000000"
                      },
                      "src": "16141:16:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int128",
                        "typeString": "int128"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">",
                    "rightExpression": {
                      "hexValue": "30",
                      "id": 9319,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "16160:1:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "16141:20:38",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 9329,
                  "nodeType": "IfStatement",
                  "src": "16137:92:38",
                  "trueBody": {
                    "expression": {
                      "id": 9327,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftHandSide": {
                        "id": 9321,
                        "name": "result",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8935,
                        "src": "16169:6:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "Assignment",
                      "operator": "=",
                      "rightHandSide": {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 9326,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 9324,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 9322,
                            "name": "result",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8935,
                            "src": "16178:6:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "*",
                          "rightExpression": {
                            "hexValue": "3078313030303030303042313732313746424139433733394141353831394634344639",
                            "id": 9323,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "16187:35:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_340282367799606904081131786786979136761_by_1",
                              "typeString": "int_const 3402...(31 digits omitted)...6761"
                            },
                            "value": "0x10000000B17217FBA9C739AA5819F44F9"
                          },
                          "src": "16178:44:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">>",
                        "rightExpression": {
                          "hexValue": "313238",
                          "id": 9325,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "16226:3:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_128_by_1",
                            "typeString": "int_const 128"
                          },
                          "value": "128"
                        },
                        "src": "16178:51:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "src": "16169:60:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 9328,
                    "nodeType": "ExpressionStatement",
                    "src": "16169:60:38"
                  }
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_int128",
                      "typeString": "int128"
                    },
                    "id": 9334,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "commonType": {
                        "typeIdentifier": "t_int128",
                        "typeString": "int128"
                      },
                      "id": 9332,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "id": 9330,
                        "name": "x",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8916,
                        "src": "16239:1:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int128",
                          "typeString": "int128"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "&",
                      "rightExpression": {
                        "hexValue": "3078383030303030303030",
                        "id": 9331,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "16243:11:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_34359738368_by_1",
                          "typeString": "int_const 34359738368"
                        },
                        "value": "0x800000000"
                      },
                      "src": "16239:15:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int128",
                        "typeString": "int128"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">",
                    "rightExpression": {
                      "hexValue": "30",
                      "id": 9333,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "16257:1:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "16239:19:38",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 9343,
                  "nodeType": "IfStatement",
                  "src": "16235:91:38",
                  "trueBody": {
                    "expression": {
                      "id": 9341,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftHandSide": {
                        "id": 9335,
                        "name": "result",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8935,
                        "src": "16266:6:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "Assignment",
                      "operator": "=",
                      "rightHandSide": {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 9340,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 9338,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 9336,
                            "name": "result",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8935,
                            "src": "16275:6:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "*",
                          "rightExpression": {
                            "hexValue": "3078313030303030303035384239304246434445453541434433433143454443383233",
                            "id": 9337,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "16284:35:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_340282367360272683488643795553082001443_by_1",
                              "typeString": "int_const 3402...(31 digits omitted)...1443"
                            },
                            "value": "0x1000000058B90BFCDEE5ACD3C1CEDC823"
                          },
                          "src": "16275:44:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">>",
                        "rightExpression": {
                          "hexValue": "313238",
                          "id": 9339,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "16323:3:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_128_by_1",
                            "typeString": "int_const 128"
                          },
                          "value": "128"
                        },
                        "src": "16275:51:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "src": "16266:60:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 9342,
                    "nodeType": "ExpressionStatement",
                    "src": "16266:60:38"
                  }
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_int128",
                      "typeString": "int128"
                    },
                    "id": 9348,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "commonType": {
                        "typeIdentifier": "t_int128",
                        "typeString": "int128"
                      },
                      "id": 9346,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "id": 9344,
                        "name": "x",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8916,
                        "src": "16336:1:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int128",
                          "typeString": "int128"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "&",
                      "rightExpression": {
                        "hexValue": "3078343030303030303030",
                        "id": 9345,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "16340:11:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_17179869184_by_1",
                          "typeString": "int_const 17179869184"
                        },
                        "value": "0x400000000"
                      },
                      "src": "16336:15:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int128",
                        "typeString": "int128"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">",
                    "rightExpression": {
                      "hexValue": "30",
                      "id": 9347,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "16354:1:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "16336:19:38",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 9357,
                  "nodeType": "IfStatement",
                  "src": "16332:91:38",
                  "trueBody": {
                    "expression": {
                      "id": 9355,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftHandSide": {
                        "id": 9349,
                        "name": "result",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8935,
                        "src": "16363:6:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "Assignment",
                      "operator": "=",
                      "rightHandSide": {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 9354,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 9352,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 9350,
                            "name": "result",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8935,
                            "src": "16372:6:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "*",
                          "rightExpression": {
                            "hexValue": "3078313030303030303032433543383546453331463335413641333044413142453530",
                            "id": 9351,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "16381:35:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_340282367140605573405106851149122747984_by_1",
                              "typeString": "int_const 3402...(31 digits omitted)...7984"
                            },
                            "value": "0x100000002C5C85FE31F35A6A30DA1BE50"
                          },
                          "src": "16372:44:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">>",
                        "rightExpression": {
                          "hexValue": "313238",
                          "id": 9353,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "16420:3:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_128_by_1",
                            "typeString": "int_const 128"
                          },
                          "value": "128"
                        },
                        "src": "16372:51:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "src": "16363:60:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 9356,
                    "nodeType": "ExpressionStatement",
                    "src": "16363:60:38"
                  }
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_int128",
                      "typeString": "int128"
                    },
                    "id": 9362,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "commonType": {
                        "typeIdentifier": "t_int128",
                        "typeString": "int128"
                      },
                      "id": 9360,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "id": 9358,
                        "name": "x",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8916,
                        "src": "16433:1:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int128",
                          "typeString": "int128"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "&",
                      "rightExpression": {
                        "hexValue": "3078323030303030303030",
                        "id": 9359,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "16437:11:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_8589934592_by_1",
                          "typeString": "int_const 8589934592"
                        },
                        "value": "0x200000000"
                      },
                      "src": "16433:15:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int128",
                        "typeString": "int128"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">",
                    "rightExpression": {
                      "hexValue": "30",
                      "id": 9361,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "16451:1:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "16433:19:38",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 9371,
                  "nodeType": "IfStatement",
                  "src": "16429:91:38",
                  "trueBody": {
                    "expression": {
                      "id": 9369,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftHandSide": {
                        "id": 9363,
                        "name": "result",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8935,
                        "src": "16460:6:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "Assignment",
                      "operator": "=",
                      "rightHandSide": {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 9368,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 9366,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 9364,
                            "name": "result",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8935,
                            "src": "16469:6:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "*",
                          "rightExpression": {
                            "hexValue": "3078313030303030303031363245343246463039393943453335343142394646464346",
                            "id": 9365,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "16478:35:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_340282367030772018416515141710341210063_by_1",
                              "typeString": "int_const 3402...(31 digits omitted)...0063"
                            },
                            "value": "0x10000000162E42FF0999CE3541B9FFFCF"
                          },
                          "src": "16469:44:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">>",
                        "rightExpression": {
                          "hexValue": "313238",
                          "id": 9367,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "16517:3:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_128_by_1",
                            "typeString": "int_const 128"
                          },
                          "value": "128"
                        },
                        "src": "16469:51:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "src": "16460:60:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 9370,
                    "nodeType": "ExpressionStatement",
                    "src": "16460:60:38"
                  }
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_int128",
                      "typeString": "int128"
                    },
                    "id": 9376,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "commonType": {
                        "typeIdentifier": "t_int128",
                        "typeString": "int128"
                      },
                      "id": 9374,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "id": 9372,
                        "name": "x",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8916,
                        "src": "16530:1:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int128",
                          "typeString": "int128"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "&",
                      "rightExpression": {
                        "hexValue": "3078313030303030303030",
                        "id": 9373,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "16534:11:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_4294967296_by_1",
                          "typeString": "int_const 4294967296"
                        },
                        "value": "0x100000000"
                      },
                      "src": "16530:15:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int128",
                        "typeString": "int128"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">",
                    "rightExpression": {
                      "hexValue": "30",
                      "id": 9375,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "16548:1:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "16530:19:38",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 9385,
                  "nodeType": "IfStatement",
                  "src": "16526:91:38",
                  "trueBody": {
                    "expression": {
                      "id": 9383,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftHandSide": {
                        "id": 9377,
                        "name": "result",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8935,
                        "src": "16557:6:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "Assignment",
                      "operator": "=",
                      "rightHandSide": {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 9382,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 9380,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 9378,
                            "name": "result",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8935,
                            "src": "16566:6:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "*",
                          "rightExpression": {
                            "hexValue": "3078313030303030303030423137323137463830463445463541414444413435353534",
                            "id": 9379,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "16575:35:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_340282366975855240935513477676743808340_by_1",
                              "typeString": "int_const 3402...(31 digits omitted)...8340"
                            },
                            "value": "0x100000000B17217F80F4EF5AADDA45554"
                          },
                          "src": "16566:44:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">>",
                        "rightExpression": {
                          "hexValue": "313238",
                          "id": 9381,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "16614:3:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_128_by_1",
                            "typeString": "int_const 128"
                          },
                          "value": "128"
                        },
                        "src": "16566:51:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "src": "16557:60:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 9384,
                    "nodeType": "ExpressionStatement",
                    "src": "16557:60:38"
                  }
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_int128",
                      "typeString": "int128"
                    },
                    "id": 9390,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "commonType": {
                        "typeIdentifier": "t_int128",
                        "typeString": "int128"
                      },
                      "id": 9388,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "id": 9386,
                        "name": "x",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8916,
                        "src": "16627:1:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int128",
                          "typeString": "int128"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "&",
                      "rightExpression": {
                        "hexValue": "30783830303030303030",
                        "id": 9387,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "16631:10:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_2147483648_by_1",
                          "typeString": "int_const 2147483648"
                        },
                        "value": "0x80000000"
                      },
                      "src": "16627:14:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int128",
                        "typeString": "int128"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">",
                    "rightExpression": {
                      "hexValue": "30",
                      "id": 9389,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "16644:1:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "16627:18:38",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 9399,
                  "nodeType": "IfStatement",
                  "src": "16623:90:38",
                  "trueBody": {
                    "expression": {
                      "id": 9397,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftHandSide": {
                        "id": 9391,
                        "name": "result",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8935,
                        "src": "16653:6:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "Assignment",
                      "operator": "=",
                      "rightHandSide": {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 9396,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 9394,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 9392,
                            "name": "result",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8935,
                            "src": "16662:6:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "*",
                          "rightExpression": {
                            "hexValue": "3078313030303030303030353842393042464246383437394244354138314235314144",
                            "id": 9393,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "16671:35:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_340282366948396852198336193330767679917_by_1",
                              "typeString": "int_const 3402...(31 digits omitted)...9917"
                            },
                            "value": "0x10000000058B90BFBF8479BD5A81B51AD"
                          },
                          "src": "16662:44:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">>",
                        "rightExpression": {
                          "hexValue": "313238",
                          "id": 9395,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "16710:3:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_128_by_1",
                            "typeString": "int_const 128"
                          },
                          "value": "128"
                        },
                        "src": "16662:51:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "src": "16653:60:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 9398,
                    "nodeType": "ExpressionStatement",
                    "src": "16653:60:38"
                  }
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_int128",
                      "typeString": "int128"
                    },
                    "id": 9404,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "commonType": {
                        "typeIdentifier": "t_int128",
                        "typeString": "int128"
                      },
                      "id": 9402,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "id": 9400,
                        "name": "x",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8916,
                        "src": "16723:1:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int128",
                          "typeString": "int128"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "&",
                      "rightExpression": {
                        "hexValue": "30783430303030303030",
                        "id": 9401,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "16727:10:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_1073741824_by_1",
                          "typeString": "int_const 1073741824"
                        },
                        "value": "0x40000000"
                      },
                      "src": "16723:14:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int128",
                        "typeString": "int128"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">",
                    "rightExpression": {
                      "hexValue": "30",
                      "id": 9403,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "16740:1:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "16723:18:38",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 9413,
                  "nodeType": "IfStatement",
                  "src": "16719:90:38",
                  "trueBody": {
                    "expression": {
                      "id": 9411,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftHandSide": {
                        "id": 9405,
                        "name": "result",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8935,
                        "src": "16749:6:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "Assignment",
                      "operator": "=",
                      "rightHandSide": {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 9410,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 9408,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 9406,
                            "name": "result",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8935,
                            "src": "16758:6:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "*",
                          "rightExpression": {
                            "hexValue": "3078313030303030303030324335433835464446383442443632414533304137344343",
                            "id": 9407,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "16767:35:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_340282366934667657830578438075407037644_by_1",
                              "typeString": "int_const 3402...(31 digits omitted)...7644"
                            },
                            "value": "0x1000000002C5C85FDF84BD62AE30A74CC"
                          },
                          "src": "16758:44:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">>",
                        "rightExpression": {
                          "hexValue": "313238",
                          "id": 9409,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "16806:3:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_128_by_1",
                            "typeString": "int_const 128"
                          },
                          "value": "128"
                        },
                        "src": "16758:51:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "src": "16749:60:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 9412,
                    "nodeType": "ExpressionStatement",
                    "src": "16749:60:38"
                  }
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_int128",
                      "typeString": "int128"
                    },
                    "id": 9418,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "commonType": {
                        "typeIdentifier": "t_int128",
                        "typeString": "int128"
                      },
                      "id": 9416,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "id": 9414,
                        "name": "x",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8916,
                        "src": "16819:1:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int128",
                          "typeString": "int128"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "&",
                      "rightExpression": {
                        "hexValue": "30783230303030303030",
                        "id": 9415,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "16823:10:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_536870912_by_1",
                          "typeString": "int_const 536870912"
                        },
                        "value": "0x20000000"
                      },
                      "src": "16819:14:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int128",
                        "typeString": "int128"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">",
                    "rightExpression": {
                      "hexValue": "30",
                      "id": 9417,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "16836:1:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "16819:18:38",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 9427,
                  "nodeType": "IfStatement",
                  "src": "16815:90:38",
                  "trueBody": {
                    "expression": {
                      "id": 9425,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftHandSide": {
                        "id": 9419,
                        "name": "result",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8935,
                        "src": "16845:6:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "Assignment",
                      "operator": "=",
                      "rightHandSide": {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 9424,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 9422,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 9420,
                            "name": "result",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8935,
                            "src": "16854:6:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "*",
                          "rightExpression": {
                            "hexValue": "3078313030303030303030313632453432464546423246454432353735353942444141",
                            "id": 9421,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "16863:35:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_340282366927803060646907282177123794346_by_1",
                              "typeString": "int_const 3402...(31 digits omitted)...4346"
                            },
                            "value": "0x100000000162E42FEFB2FED257559BDAA"
                          },
                          "src": "16854:44:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">>",
                        "rightExpression": {
                          "hexValue": "313238",
                          "id": 9423,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "16902:3:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_128_by_1",
                            "typeString": "int_const 128"
                          },
                          "value": "128"
                        },
                        "src": "16854:51:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "src": "16845:60:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 9426,
                    "nodeType": "ExpressionStatement",
                    "src": "16845:60:38"
                  }
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_int128",
                      "typeString": "int128"
                    },
                    "id": 9432,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "commonType": {
                        "typeIdentifier": "t_int128",
                        "typeString": "int128"
                      },
                      "id": 9430,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "id": 9428,
                        "name": "x",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8916,
                        "src": "16915:1:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int128",
                          "typeString": "int128"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "&",
                      "rightExpression": {
                        "hexValue": "30783130303030303030",
                        "id": 9429,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "16919:10:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_268435456_by_1",
                          "typeString": "int_const 268435456"
                        },
                        "value": "0x10000000"
                      },
                      "src": "16915:14:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int128",
                        "typeString": "int128"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">",
                    "rightExpression": {
                      "hexValue": "30",
                      "id": 9431,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "16932:1:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "16915:18:38",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 9441,
                  "nodeType": "IfStatement",
                  "src": "16911:90:38",
                  "trueBody": {
                    "expression": {
                      "id": 9439,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftHandSide": {
                        "id": 9433,
                        "name": "result",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8935,
                        "src": "16941:6:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "Assignment",
                      "operator": "=",
                      "rightHandSide": {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 9438,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 9436,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 9434,
                            "name": "result",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8935,
                            "src": "16950:6:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "*",
                          "rightExpression": {
                            "hexValue": "3078313030303030303030304231373231374637443541373731364242413441394145",
                            "id": 9435,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "16959:35:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_340282366924370762055123634660330219950_by_1",
                              "typeString": "int_const 3402...(31 digits omitted)...9950"
                            },
                            "value": "0x1000000000B17217F7D5A7716BBA4A9AE"
                          },
                          "src": "16950:44:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">>",
                        "rightExpression": {
                          "hexValue": "313238",
                          "id": 9437,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "16998:3:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_128_by_1",
                            "typeString": "int_const 128"
                          },
                          "value": "128"
                        },
                        "src": "16950:51:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "src": "16941:60:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 9440,
                    "nodeType": "ExpressionStatement",
                    "src": "16941:60:38"
                  }
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_int128",
                      "typeString": "int128"
                    },
                    "id": 9446,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "commonType": {
                        "typeIdentifier": "t_int128",
                        "typeString": "int128"
                      },
                      "id": 9444,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "id": 9442,
                        "name": "x",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8916,
                        "src": "17011:1:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int128",
                          "typeString": "int128"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "&",
                      "rightExpression": {
                        "hexValue": "307838303030303030",
                        "id": 9443,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "17015:9:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_134217728_by_1",
                          "typeString": "int_const 134217728"
                        },
                        "value": "0x8000000"
                      },
                      "src": "17011:13:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int128",
                        "typeString": "int128"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">",
                    "rightExpression": {
                      "hexValue": "30",
                      "id": 9445,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "17027:1:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "17011:17:38",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 9455,
                  "nodeType": "IfStatement",
                  "src": "17007:89:38",
                  "trueBody": {
                    "expression": {
                      "id": 9453,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftHandSide": {
                        "id": 9447,
                        "name": "result",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8935,
                        "src": "17036:6:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "Assignment",
                      "operator": "=",
                      "rightHandSide": {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 9452,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 9450,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 9448,
                            "name": "result",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8935,
                            "src": "17045:6:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "*",
                          "rightExpression": {
                            "hexValue": "3078313030303030303030303538423930424642453944444241433545313039434345",
                            "id": 9449,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "17054:35:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_340282366922654612759244793510020291790_by_1",
                              "typeString": "int_const 3402...(31 digits omitted)...1790"
                            },
                            "value": "0x100000000058B90BFBE9DDBAC5E109CCE"
                          },
                          "src": "17045:44:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">>",
                        "rightExpression": {
                          "hexValue": "313238",
                          "id": 9451,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "17093:3:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_128_by_1",
                            "typeString": "int_const 128"
                          },
                          "value": "128"
                        },
                        "src": "17045:51:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "src": "17036:60:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 9454,
                    "nodeType": "ExpressionStatement",
                    "src": "17036:60:38"
                  }
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_int128",
                      "typeString": "int128"
                    },
                    "id": 9460,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "commonType": {
                        "typeIdentifier": "t_int128",
                        "typeString": "int128"
                      },
                      "id": 9458,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "id": 9456,
                        "name": "x",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8916,
                        "src": "17106:1:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int128",
                          "typeString": "int128"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "&",
                      "rightExpression": {
                        "hexValue": "307834303030303030",
                        "id": 9457,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "17110:9:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_67108864_by_1",
                          "typeString": "int_const 67108864"
                        },
                        "value": "0x4000000"
                      },
                      "src": "17106:13:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int128",
                        "typeString": "int128"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">",
                    "rightExpression": {
                      "hexValue": "30",
                      "id": 9459,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "17122:1:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "17106:17:38",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 9469,
                  "nodeType": "IfStatement",
                  "src": "17102:89:38",
                  "trueBody": {
                    "expression": {
                      "id": 9467,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftHandSide": {
                        "id": 9461,
                        "name": "result",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8935,
                        "src": "17131:6:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "Assignment",
                      "operator": "=",
                      "rightHandSide": {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 9466,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 9464,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 9462,
                            "name": "result",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8935,
                            "src": "17140:6:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "*",
                          "rightExpression": {
                            "hexValue": "3078313030303030303030303243354338354644463442313544453646313745423044",
                            "id": 9463,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "17149:35:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_340282366921796538111308618586887023373_by_1",
                              "typeString": "int_const 3402...(31 digits omitted)...3373"
                            },
                            "value": "0x10000000002C5C85FDF4B15DE6F17EB0D"
                          },
                          "src": "17140:44:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">>",
                        "rightExpression": {
                          "hexValue": "313238",
                          "id": 9465,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "17188:3:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_128_by_1",
                            "typeString": "int_const 128"
                          },
                          "value": "128"
                        },
                        "src": "17140:51:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "src": "17131:60:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 9468,
                    "nodeType": "ExpressionStatement",
                    "src": "17131:60:38"
                  }
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_int128",
                      "typeString": "int128"
                    },
                    "id": 9474,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "commonType": {
                        "typeIdentifier": "t_int128",
                        "typeString": "int128"
                      },
                      "id": 9472,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "id": 9470,
                        "name": "x",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8916,
                        "src": "17201:1:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int128",
                          "typeString": "int128"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "&",
                      "rightExpression": {
                        "hexValue": "307832303030303030",
                        "id": 9471,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "17205:9:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_33554432_by_1",
                          "typeString": "int_const 33554432"
                        },
                        "value": "0x2000000"
                      },
                      "src": "17201:13:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int128",
                        "typeString": "int128"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">",
                    "rightExpression": {
                      "hexValue": "30",
                      "id": 9473,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "17217:1:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "17201:17:38",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 9483,
                  "nodeType": "IfStatement",
                  "src": "17197:89:38",
                  "trueBody": {
                    "expression": {
                      "id": 9481,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftHandSide": {
                        "id": 9475,
                        "name": "result",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8935,
                        "src": "17226:6:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "Assignment",
                      "operator": "=",
                      "rightHandSide": {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 9480,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 9478,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 9476,
                            "name": "result",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8935,
                            "src": "17235:6:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "*",
                          "rightExpression": {
                            "hexValue": "3078313030303030303030303136324534324645464134393446313437384644453035",
                            "id": 9477,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "17244:35:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_340282366921367500787341342538325810693_by_1",
                              "typeString": "int_const 3402...(31 digits omitted)...0693"
                            },
                            "value": "0x1000000000162E42FEFA494F1478FDE05"
                          },
                          "src": "17235:44:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">>",
                        "rightExpression": {
                          "hexValue": "313238",
                          "id": 9479,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "17283:3:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_128_by_1",
                            "typeString": "int_const 128"
                          },
                          "value": "128"
                        },
                        "src": "17235:51:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "src": "17226:60:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 9482,
                    "nodeType": "ExpressionStatement",
                    "src": "17226:60:38"
                  }
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_int128",
                      "typeString": "int128"
                    },
                    "id": 9488,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "commonType": {
                        "typeIdentifier": "t_int128",
                        "typeString": "int128"
                      },
                      "id": 9486,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "id": 9484,
                        "name": "x",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8916,
                        "src": "17296:1:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int128",
                          "typeString": "int128"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "&",
                      "rightExpression": {
                        "hexValue": "307831303030303030",
                        "id": 9485,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "17300:9:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_16777216_by_1",
                          "typeString": "int_const 16777216"
                        },
                        "value": "0x1000000"
                      },
                      "src": "17296:13:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int128",
                        "typeString": "int128"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">",
                    "rightExpression": {
                      "hexValue": "30",
                      "id": 9487,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "17312:1:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "17296:17:38",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 9497,
                  "nodeType": "IfStatement",
                  "src": "17292:89:38",
                  "trueBody": {
                    "expression": {
                      "id": 9495,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftHandSide": {
                        "id": 9489,
                        "name": "result",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8935,
                        "src": "17321:6:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "Assignment",
                      "operator": "=",
                      "rightHandSide": {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 9494,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 9492,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 9490,
                            "name": "result",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8935,
                            "src": "17330:6:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "*",
                          "rightExpression": {
                            "hexValue": "3078313030303030303030303042313732313746374432304346393237433845393443",
                            "id": 9491,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "17339:35:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_340282366921152982125357907367296559436_by_1",
                              "typeString": "int_const 3402...(31 digits omitted)...9436"
                            },
                            "value": "0x10000000000B17217F7D20CF927C8E94C"
                          },
                          "src": "17330:44:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">>",
                        "rightExpression": {
                          "hexValue": "313238",
                          "id": 9493,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "17378:3:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_128_by_1",
                            "typeString": "int_const 128"
                          },
                          "value": "128"
                        },
                        "src": "17330:51:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "src": "17321:60:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 9496,
                    "nodeType": "ExpressionStatement",
                    "src": "17321:60:38"
                  }
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_int128",
                      "typeString": "int128"
                    },
                    "id": 9502,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "commonType": {
                        "typeIdentifier": "t_int128",
                        "typeString": "int128"
                      },
                      "id": 9500,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "id": 9498,
                        "name": "x",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8916,
                        "src": "17391:1:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int128",
                          "typeString": "int128"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "&",
                      "rightExpression": {
                        "hexValue": "3078383030303030",
                        "id": 9499,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "17395:8:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_8388608_by_1",
                          "typeString": "int_const 8388608"
                        },
                        "value": "0x800000"
                      },
                      "src": "17391:12:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int128",
                        "typeString": "int128"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">",
                    "rightExpression": {
                      "hexValue": "30",
                      "id": 9501,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "17406:1:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "17391:16:38",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 9511,
                  "nodeType": "IfStatement",
                  "src": "17387:88:38",
                  "trueBody": {
                    "expression": {
                      "id": 9509,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftHandSide": {
                        "id": 9503,
                        "name": "result",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8935,
                        "src": "17415:6:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "Assignment",
                      "operator": "=",
                      "rightHandSide": {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 9508,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 9506,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 9504,
                            "name": "result",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8935,
                            "src": "17424:6:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "*",
                          "rightExpression": {
                            "hexValue": "3078313030303030303030303035384239304246424538463731434234453442333344",
                            "id": 9505,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "17433:35:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_340282366921045722794366240495094772541_by_1",
                              "typeString": "int_const 3402...(31 digits omitted)...2541"
                            },
                            "value": "0x1000000000058B90BFBE8F71CB4E4B33D"
                          },
                          "src": "17424:44:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">>",
                        "rightExpression": {
                          "hexValue": "313238",
                          "id": 9507,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "17472:3:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_128_by_1",
                            "typeString": "int_const 128"
                          },
                          "value": "128"
                        },
                        "src": "17424:51:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "src": "17415:60:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 9510,
                    "nodeType": "ExpressionStatement",
                    "src": "17415:60:38"
                  }
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_int128",
                      "typeString": "int128"
                    },
                    "id": 9516,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "commonType": {
                        "typeIdentifier": "t_int128",
                        "typeString": "int128"
                      },
                      "id": 9514,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "id": 9512,
                        "name": "x",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8916,
                        "src": "17485:1:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int128",
                          "typeString": "int128"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "&",
                      "rightExpression": {
                        "hexValue": "3078343030303030",
                        "id": 9513,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "17489:8:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_4194304_by_1",
                          "typeString": "int_const 4194304"
                        },
                        "value": "0x400000"
                      },
                      "src": "17485:12:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int128",
                        "typeString": "int128"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">",
                    "rightExpression": {
                      "hexValue": "30",
                      "id": 9515,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "17500:1:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "17485:16:38",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 9525,
                  "nodeType": "IfStatement",
                  "src": "17481:88:38",
                  "trueBody": {
                    "expression": {
                      "id": 9523,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftHandSide": {
                        "id": 9517,
                        "name": "result",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8935,
                        "src": "17509:6:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "Assignment",
                      "operator": "=",
                      "rightHandSide": {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 9522,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 9520,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 9518,
                            "name": "result",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8935,
                            "src": "17518:6:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "*",
                          "rightExpression": {
                            "hexValue": "3078313030303030303030303032433543383546444634373742363632423236393435",
                            "id": 9519,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "17527:35:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_340282366920992093128870419737322088773_by_1",
                              "typeString": "int_const 3402...(31 digits omitted)...8773"
                            },
                            "value": "0x100000000002C5C85FDF477B662B26945"
                          },
                          "src": "17518:44:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">>",
                        "rightExpression": {
                          "hexValue": "313238",
                          "id": 9521,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "17566:3:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_128_by_1",
                            "typeString": "int_const 128"
                          },
                          "value": "128"
                        },
                        "src": "17518:51:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "src": "17509:60:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 9524,
                    "nodeType": "ExpressionStatement",
                    "src": "17509:60:38"
                  }
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_int128",
                      "typeString": "int128"
                    },
                    "id": 9530,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "commonType": {
                        "typeIdentifier": "t_int128",
                        "typeString": "int128"
                      },
                      "id": 9528,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "id": 9526,
                        "name": "x",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8916,
                        "src": "17579:1:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int128",
                          "typeString": "int128"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "&",
                      "rightExpression": {
                        "hexValue": "3078323030303030",
                        "id": 9527,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "17583:8:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_2097152_by_1",
                          "typeString": "int_const 2097152"
                        },
                        "value": "0x200000"
                      },
                      "src": "17579:12:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int128",
                        "typeString": "int128"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">",
                    "rightExpression": {
                      "hexValue": "30",
                      "id": 9529,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "17594:1:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "17579:16:38",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 9539,
                  "nodeType": "IfStatement",
                  "src": "17575:88:38",
                  "trueBody": {
                    "expression": {
                      "id": 9537,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftHandSide": {
                        "id": 9531,
                        "name": "result",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8935,
                        "src": "17603:6:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "Assignment",
                      "operator": "=",
                      "rightHandSide": {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 9536,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 9534,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 9532,
                            "name": "result",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8935,
                            "src": "17612:6:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "*",
                          "rightExpression": {
                            "hexValue": "3078313030303030303030303031363245343246454641334145353333363933383843",
                            "id": 9533,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "17621:35:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_340282366920965278296122512528017799308_by_1",
                              "typeString": "int_const 3402...(31 digits omitted)...9308"
                            },
                            "value": "0x10000000000162E42FEFA3AE53369388C"
                          },
                          "src": "17612:44:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">>",
                        "rightExpression": {
                          "hexValue": "313238",
                          "id": 9535,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "17660:3:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_128_by_1",
                            "typeString": "int_const 128"
                          },
                          "value": "128"
                        },
                        "src": "17612:51:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "src": "17603:60:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 9538,
                    "nodeType": "ExpressionStatement",
                    "src": "17603:60:38"
                  }
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_int128",
                      "typeString": "int128"
                    },
                    "id": 9544,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "commonType": {
                        "typeIdentifier": "t_int128",
                        "typeString": "int128"
                      },
                      "id": 9542,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "id": 9540,
                        "name": "x",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8916,
                        "src": "17673:1:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int128",
                          "typeString": "int128"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "&",
                      "rightExpression": {
                        "hexValue": "3078313030303030",
                        "id": 9541,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "17677:8:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_1048576_by_1",
                          "typeString": "int_const 1048576"
                        },
                        "value": "0x100000"
                      },
                      "src": "17673:12:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int128",
                        "typeString": "int128"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">",
                    "rightExpression": {
                      "hexValue": "30",
                      "id": 9543,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "17688:1:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "17673:16:38",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 9553,
                  "nodeType": "IfStatement",
                  "src": "17669:88:38",
                  "trueBody": {
                    "expression": {
                      "id": 9551,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftHandSide": {
                        "id": 9545,
                        "name": "result",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8935,
                        "src": "17697:6:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "Assignment",
                      "operator": "=",
                      "rightHandSide": {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 9550,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 9548,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 9546,
                            "name": "result",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8935,
                            "src": "17706:6:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "*",
                          "rightExpression": {
                            "hexValue": "3078313030303030303030303030423137323137463744314433353141333839443430",
                            "id": 9547,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "17715:35:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_340282366920951870879748559715761167680_by_1",
                              "typeString": "int_const 3402...(31 digits omitted)...7680"
                            },
                            "value": "0x100000000000B17217F7D1D351A389D40"
                          },
                          "src": "17706:44:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">>",
                        "rightExpression": {
                          "hexValue": "313238",
                          "id": 9549,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "17754:3:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_128_by_1",
                            "typeString": "int_const 128"
                          },
                          "value": "128"
                        },
                        "src": "17706:51:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "src": "17697:60:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 9552,
                    "nodeType": "ExpressionStatement",
                    "src": "17697:60:38"
                  }
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_int128",
                      "typeString": "int128"
                    },
                    "id": 9558,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "commonType": {
                        "typeIdentifier": "t_int128",
                        "typeString": "int128"
                      },
                      "id": 9556,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "id": 9554,
                        "name": "x",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8916,
                        "src": "17767:1:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int128",
                          "typeString": "int128"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "&",
                      "rightExpression": {
                        "hexValue": "30783830303030",
                        "id": 9555,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "17771:7:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_524288_by_1",
                          "typeString": "int_const 524288"
                        },
                        "value": "0x80000"
                      },
                      "src": "17767:11:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int128",
                        "typeString": "int128"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">",
                    "rightExpression": {
                      "hexValue": "30",
                      "id": 9557,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "17781:1:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "17767:15:38",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 9567,
                  "nodeType": "IfStatement",
                  "src": "17763:87:38",
                  "trueBody": {
                    "expression": {
                      "id": 9565,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftHandSide": {
                        "id": 9559,
                        "name": "result",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8935,
                        "src": "17790:6:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "Assignment",
                      "operator": "=",
                      "rightHandSide": {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 9564,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 9562,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 9560,
                            "name": "result",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8935,
                            "src": "17799:6:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "*",
                          "rightExpression": {
                            "hexValue": "3078313030303030303030303030353842393042464245384538423244334434454445",
                            "id": 9561,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "17808:35:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_340282366920945167171561583507731730142_by_1",
                              "typeString": "int_const 3402...(31 digits omitted)...0142"
                            },
                            "value": "0x10000000000058B90BFBE8E8B2D3D4EDE"
                          },
                          "src": "17799:44:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">>",
                        "rightExpression": {
                          "hexValue": "313238",
                          "id": 9563,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "17847:3:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_128_by_1",
                            "typeString": "int_const 128"
                          },
                          "value": "128"
                        },
                        "src": "17799:51:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "src": "17790:60:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 9566,
                    "nodeType": "ExpressionStatement",
                    "src": "17790:60:38"
                  }
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_int128",
                      "typeString": "int128"
                    },
                    "id": 9572,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "commonType": {
                        "typeIdentifier": "t_int128",
                        "typeString": "int128"
                      },
                      "id": 9570,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "id": 9568,
                        "name": "x",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8916,
                        "src": "17860:1:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int128",
                          "typeString": "int128"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "&",
                      "rightExpression": {
                        "hexValue": "30783430303030",
                        "id": 9569,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "17864:7:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_262144_by_1",
                          "typeString": "int_const 262144"
                        },
                        "value": "0x40000"
                      },
                      "src": "17860:11:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int128",
                        "typeString": "int128"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">",
                    "rightExpression": {
                      "hexValue": "30",
                      "id": 9571,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "17874:1:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "17860:15:38",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 9581,
                  "nodeType": "IfStatement",
                  "src": "17856:87:38",
                  "trueBody": {
                    "expression": {
                      "id": 9579,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftHandSide": {
                        "id": 9573,
                        "name": "result",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8935,
                        "src": "17883:6:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "Assignment",
                      "operator": "=",
                      "rightHandSide": {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 9578,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 9576,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 9574,
                            "name": "result",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8935,
                            "src": "17892:6:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "*",
                          "rightExpression": {
                            "hexValue": "3078313030303030303030303030324335433835464446343734314245413645373745",
                            "id": 9575,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "17901:35:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_340282366920941815317468095453241730942_by_1",
                              "typeString": "int_const 3402...(31 digits omitted)...0942"
                            },
                            "value": "0x1000000000002C5C85FDF4741BEA6E77E"
                          },
                          "src": "17892:44:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">>",
                        "rightExpression": {
                          "hexValue": "313238",
                          "id": 9577,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "17940:3:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_128_by_1",
                            "typeString": "int_const 128"
                          },
                          "value": "128"
                        },
                        "src": "17892:51:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "src": "17883:60:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 9580,
                    "nodeType": "ExpressionStatement",
                    "src": "17883:60:38"
                  }
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_int128",
                      "typeString": "int128"
                    },
                    "id": 9586,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "commonType": {
                        "typeIdentifier": "t_int128",
                        "typeString": "int128"
                      },
                      "id": 9584,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "id": 9582,
                        "name": "x",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8916,
                        "src": "17953:1:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int128",
                          "typeString": "int128"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "&",
                      "rightExpression": {
                        "hexValue": "30783230303030",
                        "id": 9583,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "17957:7:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_131072_by_1",
                          "typeString": "int_const 131072"
                        },
                        "value": "0x20000"
                      },
                      "src": "17953:11:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int128",
                        "typeString": "int128"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">",
                    "rightExpression": {
                      "hexValue": "30",
                      "id": 9585,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "17967:1:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "17953:15:38",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 9595,
                  "nodeType": "IfStatement",
                  "src": "17949:87:38",
                  "trueBody": {
                    "expression": {
                      "id": 9593,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftHandSide": {
                        "id": 9587,
                        "name": "result",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8935,
                        "src": "17976:6:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "Assignment",
                      "operator": "=",
                      "rightHandSide": {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 9592,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 9590,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 9588,
                            "name": "result",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8935,
                            "src": "17985:6:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "*",
                          "rightExpression": {
                            "hexValue": "3078313030303030303030303030313632453432464546413339464539353538334332",
                            "id": 9589,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "17994:35:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_340282366920940139390421351438377911234_by_1",
                              "typeString": "int_const 3402...(31 digits omitted)...1234"
                            },
                            "value": "0x100000000000162E42FEFA39FE95583C2"
                          },
                          "src": "17985:44:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">>",
                        "rightExpression": {
                          "hexValue": "313238",
                          "id": 9591,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "18033:3:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_128_by_1",
                            "typeString": "int_const 128"
                          },
                          "value": "128"
                        },
                        "src": "17985:51:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "src": "17976:60:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 9594,
                    "nodeType": "ExpressionStatement",
                    "src": "17976:60:38"
                  }
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_int128",
                      "typeString": "int128"
                    },
                    "id": 9600,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "commonType": {
                        "typeIdentifier": "t_int128",
                        "typeString": "int128"
                      },
                      "id": 9598,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "id": 9596,
                        "name": "x",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8916,
                        "src": "18046:1:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int128",
                          "typeString": "int128"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "&",
                      "rightExpression": {
                        "hexValue": "30783130303030",
                        "id": 9597,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "18050:7:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_65536_by_1",
                          "typeString": "int_const 65536"
                        },
                        "value": "0x10000"
                      },
                      "src": "18046:11:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int128",
                        "typeString": "int128"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">",
                    "rightExpression": {
                      "hexValue": "30",
                      "id": 9599,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "18060:1:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "18046:15:38",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 9609,
                  "nodeType": "IfStatement",
                  "src": "18042:87:38",
                  "trueBody": {
                    "expression": {
                      "id": 9607,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftHandSide": {
                        "id": 9601,
                        "name": "result",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8935,
                        "src": "18069:6:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "Assignment",
                      "operator": "=",
                      "rightHandSide": {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 9606,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 9604,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 9602,
                            "name": "result",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8935,
                            "src": "18078:6:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "*",
                          "rightExpression": {
                            "hexValue": "3078313030303030303030303030304231373231374637443143464237324234354531",
                            "id": 9603,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "18087:35:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_340282366920939301426897979434041296353_by_1",
                              "typeString": "int_const 3402...(31 digits omitted)...6353"
                            },
                            "value": "0x1000000000000B17217F7D1CFB72B45E1"
                          },
                          "src": "18078:44:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">>",
                        "rightExpression": {
                          "hexValue": "313238",
                          "id": 9605,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "18126:3:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_128_by_1",
                            "typeString": "int_const 128"
                          },
                          "value": "128"
                        },
                        "src": "18078:51:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "src": "18069:60:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 9608,
                    "nodeType": "ExpressionStatement",
                    "src": "18069:60:38"
                  }
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_int128",
                      "typeString": "int128"
                    },
                    "id": 9614,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "commonType": {
                        "typeIdentifier": "t_int128",
                        "typeString": "int128"
                      },
                      "id": 9612,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "id": 9610,
                        "name": "x",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8916,
                        "src": "18139:1:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int128",
                          "typeString": "int128"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "&",
                      "rightExpression": {
                        "hexValue": "307838303030",
                        "id": 9611,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "18143:6:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_32768_by_1",
                          "typeString": "int_const 32768"
                        },
                        "value": "0x8000"
                      },
                      "src": "18139:10:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int128",
                        "typeString": "int128"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">",
                    "rightExpression": {
                      "hexValue": "30",
                      "id": 9613,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "18152:1:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "18139:14:38",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 9623,
                  "nodeType": "IfStatement",
                  "src": "18135:86:38",
                  "trueBody": {
                    "expression": {
                      "id": 9621,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftHandSide": {
                        "id": 9615,
                        "name": "result",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8935,
                        "src": "18161:6:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "Assignment",
                      "operator": "=",
                      "rightHandSide": {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 9620,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 9618,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 9616,
                            "name": "result",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8935,
                            "src": "18170:6:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "*",
                          "rightExpression": {
                            "hexValue": "3078313030303030303030303030303538423930424642453845374343333543334630",
                            "id": 9617,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "18179:35:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_340282366920938882445136293432646812656_by_1",
                              "typeString": "int_const 3402...(31 digits omitted)...2656"
                            },
                            "value": "0x100000000000058B90BFBE8E7CC35C3F0"
                          },
                          "src": "18170:44:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">>",
                        "rightExpression": {
                          "hexValue": "313238",
                          "id": 9619,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "18218:3:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_128_by_1",
                            "typeString": "int_const 128"
                          },
                          "value": "128"
                        },
                        "src": "18170:51:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "src": "18161:60:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 9622,
                    "nodeType": "ExpressionStatement",
                    "src": "18161:60:38"
                  }
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_int128",
                      "typeString": "int128"
                    },
                    "id": 9628,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "commonType": {
                        "typeIdentifier": "t_int128",
                        "typeString": "int128"
                      },
                      "id": 9626,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "id": 9624,
                        "name": "x",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8916,
                        "src": "18231:1:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int128",
                          "typeString": "int128"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "&",
                      "rightExpression": {
                        "hexValue": "307834303030",
                        "id": 9625,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "18235:6:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_16384_by_1",
                          "typeString": "int_const 16384"
                        },
                        "value": "0x4000"
                      },
                      "src": "18231:10:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int128",
                        "typeString": "int128"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">",
                    "rightExpression": {
                      "hexValue": "30",
                      "id": 9627,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "18244:1:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "18231:14:38",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 9637,
                  "nodeType": "IfStatement",
                  "src": "18227:86:38",
                  "trueBody": {
                    "expression": {
                      "id": 9635,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftHandSide": {
                        "id": 9629,
                        "name": "result",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8935,
                        "src": "18253:6:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "Assignment",
                      "operator": "=",
                      "rightHandSide": {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 9634,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 9632,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 9630,
                            "name": "result",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8935,
                            "src": "18262:6:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "*",
                          "rightExpression": {
                            "hexValue": "3078313030303030303030303030303243354338354644463437334532343245413338",
                            "id": 9631,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "18271:35:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_340282366920938672954255450432143026744_by_1",
                              "typeString": "int_const 3402...(31 digits omitted)...6744"
                            },
                            "value": "0x10000000000002C5C85FDF473E242EA38"
                          },
                          "src": "18262:44:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">>",
                        "rightExpression": {
                          "hexValue": "313238",
                          "id": 9633,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "18310:3:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_128_by_1",
                            "typeString": "int_const 128"
                          },
                          "value": "128"
                        },
                        "src": "18262:51:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "src": "18253:60:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 9636,
                    "nodeType": "ExpressionStatement",
                    "src": "18253:60:38"
                  }
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_int128",
                      "typeString": "int128"
                    },
                    "id": 9642,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "commonType": {
                        "typeIdentifier": "t_int128",
                        "typeString": "int128"
                      },
                      "id": 9640,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "id": 9638,
                        "name": "x",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8916,
                        "src": "18323:1:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int128",
                          "typeString": "int128"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "&",
                      "rightExpression": {
                        "hexValue": "307832303030",
                        "id": 9639,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "18327:6:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_8192_by_1",
                          "typeString": "int_const 8192"
                        },
                        "value": "0x2000"
                      },
                      "src": "18323:10:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int128",
                        "typeString": "int128"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">",
                    "rightExpression": {
                      "hexValue": "30",
                      "id": 9641,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "18336:1:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "18323:14:38",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 9651,
                  "nodeType": "IfStatement",
                  "src": "18319:86:38",
                  "trueBody": {
                    "expression": {
                      "id": 9649,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftHandSide": {
                        "id": 9643,
                        "name": "result",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8935,
                        "src": "18345:6:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "Assignment",
                      "operator": "=",
                      "rightHandSide": {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 9648,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 9646,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 9644,
                            "name": "result",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8935,
                            "src": "18354:6:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "*",
                          "rightExpression": {
                            "hexValue": "3078313030303030303030303030303136324534324645464133394630324237373243",
                            "id": 9645,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "18363:35:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_340282366920938568208815028931939497772_by_1",
                              "typeString": "int_const 3402...(31 digits omitted)...7772"
                            },
                            "value": "0x1000000000000162E42FEFA39F02B772C"
                          },
                          "src": "18354:44:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">>",
                        "rightExpression": {
                          "hexValue": "313238",
                          "id": 9647,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "18402:3:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_128_by_1",
                            "typeString": "int_const 128"
                          },
                          "value": "128"
                        },
                        "src": "18354:51:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "src": "18345:60:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 9650,
                    "nodeType": "ExpressionStatement",
                    "src": "18345:60:38"
                  }
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_int128",
                      "typeString": "int128"
                    },
                    "id": 9656,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "commonType": {
                        "typeIdentifier": "t_int128",
                        "typeString": "int128"
                      },
                      "id": 9654,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "id": 9652,
                        "name": "x",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8916,
                        "src": "18415:1:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int128",
                          "typeString": "int128"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "&",
                      "rightExpression": {
                        "hexValue": "307831303030",
                        "id": 9653,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "18419:6:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_4096_by_1",
                          "typeString": "int_const 4096"
                        },
                        "value": "0x1000"
                      },
                      "src": "18415:10:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int128",
                        "typeString": "int128"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">",
                    "rightExpression": {
                      "hexValue": "30",
                      "id": 9655,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "18428:1:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "18415:14:38",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 9665,
                  "nodeType": "IfStatement",
                  "src": "18411:86:38",
                  "trueBody": {
                    "expression": {
                      "id": 9663,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftHandSide": {
                        "id": 9657,
                        "name": "result",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8935,
                        "src": "18437:6:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "Assignment",
                      "operator": "=",
                      "rightHandSide": {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 9662,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 9660,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 9658,
                            "name": "result",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8935,
                            "src": "18446:6:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "*",
                          "rightExpression": {
                            "hexValue": "3078313030303030303030303030303042313732313746374431434637443833433141",
                            "id": 9659,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "18455:35:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_340282366920938515836094818181849824282_by_1",
                              "typeString": "int_const 3402...(31 digits omitted)...4282"
                            },
                            "value": "0x10000000000000B17217F7D1CF7D83C1A"
                          },
                          "src": "18446:44:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">>",
                        "rightExpression": {
                          "hexValue": "313238",
                          "id": 9661,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "18494:3:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_128_by_1",
                            "typeString": "int_const 128"
                          },
                          "value": "128"
                        },
                        "src": "18446:51:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "src": "18437:60:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 9664,
                    "nodeType": "ExpressionStatement",
                    "src": "18437:60:38"
                  }
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_int128",
                      "typeString": "int128"
                    },
                    "id": 9670,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "commonType": {
                        "typeIdentifier": "t_int128",
                        "typeString": "int128"
                      },
                      "id": 9668,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "id": 9666,
                        "name": "x",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8916,
                        "src": "18507:1:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int128",
                          "typeString": "int128"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "&",
                      "rightExpression": {
                        "hexValue": "3078383030",
                        "id": 9667,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "18511:5:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_2048_by_1",
                          "typeString": "int_const 2048"
                        },
                        "value": "0x800"
                      },
                      "src": "18507:9:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int128",
                        "typeString": "int128"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">",
                    "rightExpression": {
                      "hexValue": "30",
                      "id": 9669,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "18519:1:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "18507:13:38",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 9679,
                  "nodeType": "IfStatement",
                  "src": "18503:85:38",
                  "trueBody": {
                    "expression": {
                      "id": 9677,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftHandSide": {
                        "id": 9671,
                        "name": "result",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8935,
                        "src": "18528:6:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "Assignment",
                      "operator": "=",
                      "rightHandSide": {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 9676,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 9674,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 9672,
                            "name": "result",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8935,
                            "src": "18537:6:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "*",
                          "rightExpression": {
                            "hexValue": "3078313030303030303030303030303035384239304246424538453742444342453245",
                            "id": 9673,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "18546:35:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_340282366920938489649734712806808010286_by_1",
                              "typeString": "int_const 3402...(31 digits omitted)...0286"
                            },
                            "value": "0x1000000000000058B90BFBE8E7BDCBE2E"
                          },
                          "src": "18537:44:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">>",
                        "rightExpression": {
                          "hexValue": "313238",
                          "id": 9675,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "18585:3:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_128_by_1",
                            "typeString": "int_const 128"
                          },
                          "value": "128"
                        },
                        "src": "18537:51:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "src": "18528:60:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 9678,
                    "nodeType": "ExpressionStatement",
                    "src": "18528:60:38"
                  }
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_int128",
                      "typeString": "int128"
                    },
                    "id": 9684,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "commonType": {
                        "typeIdentifier": "t_int128",
                        "typeString": "int128"
                      },
                      "id": 9682,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "id": 9680,
                        "name": "x",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8916,
                        "src": "18598:1:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int128",
                          "typeString": "int128"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "&",
                      "rightExpression": {
                        "hexValue": "3078343030",
                        "id": 9681,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "18602:5:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_1024_by_1",
                          "typeString": "int_const 1024"
                        },
                        "value": "0x400"
                      },
                      "src": "18598:9:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int128",
                        "typeString": "int128"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">",
                    "rightExpression": {
                      "hexValue": "30",
                      "id": 9683,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "18610:1:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "18598:13:38",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 9693,
                  "nodeType": "IfStatement",
                  "src": "18594:85:38",
                  "trueBody": {
                    "expression": {
                      "id": 9691,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftHandSide": {
                        "id": 9685,
                        "name": "result",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8935,
                        "src": "18619:6:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "Assignment",
                      "operator": "=",
                      "rightHandSide": {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 9690,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 9688,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 9686,
                            "name": "result",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8935,
                            "src": "18628:6:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "*",
                          "rightExpression": {
                            "hexValue": "3078313030303030303030303030303032433543383546444634373344454138373146",
                            "id": 9687,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "18637:35:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_340282366920938476556554660119287858975_by_1",
                              "typeString": "int_const 3402...(31 digits omitted)...8975"
                            },
                            "value": "0x100000000000002C5C85FDF473DEA871F"
                          },
                          "src": "18628:44:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">>",
                        "rightExpression": {
                          "hexValue": "313238",
                          "id": 9689,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "18676:3:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_128_by_1",
                            "typeString": "int_const 128"
                          },
                          "value": "128"
                        },
                        "src": "18628:51:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "src": "18619:60:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 9692,
                    "nodeType": "ExpressionStatement",
                    "src": "18619:60:38"
                  }
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_int128",
                      "typeString": "int128"
                    },
                    "id": 9698,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "commonType": {
                        "typeIdentifier": "t_int128",
                        "typeString": "int128"
                      },
                      "id": 9696,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "id": 9694,
                        "name": "x",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8916,
                        "src": "18689:1:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int128",
                          "typeString": "int128"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "&",
                      "rightExpression": {
                        "hexValue": "3078323030",
                        "id": 9695,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "18693:5:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_512_by_1",
                          "typeString": "int_const 512"
                        },
                        "value": "0x200"
                      },
                      "src": "18689:9:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int128",
                        "typeString": "int128"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">",
                    "rightExpression": {
                      "hexValue": "30",
                      "id": 9697,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "18701:1:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "18689:13:38",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 9707,
                  "nodeType": "IfStatement",
                  "src": "18685:85:38",
                  "trueBody": {
                    "expression": {
                      "id": 9705,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftHandSide": {
                        "id": 9699,
                        "name": "result",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8935,
                        "src": "18710:6:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "Assignment",
                      "operator": "=",
                      "rightHandSide": {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 9704,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 9702,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 9700,
                            "name": "result",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8935,
                            "src": "18719:6:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "*",
                          "rightExpression": {
                            "hexValue": "3078313030303030303030303030303031363245343246454641333945463434443931",
                            "id": 9701,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "18728:35:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_340282366920938470009964633775527972241_by_1",
                              "typeString": "int_const 3402...(31 digits omitted)...2241"
                            },
                            "value": "0x10000000000000162E42FEFA39EF44D91"
                          },
                          "src": "18719:44:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">>",
                        "rightExpression": {
                          "hexValue": "313238",
                          "id": 9703,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "18767:3:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_128_by_1",
                            "typeString": "int_const 128"
                          },
                          "value": "128"
                        },
                        "src": "18719:51:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "src": "18710:60:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 9706,
                    "nodeType": "ExpressionStatement",
                    "src": "18710:60:38"
                  }
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_int128",
                      "typeString": "int128"
                    },
                    "id": 9712,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "commonType": {
                        "typeIdentifier": "t_int128",
                        "typeString": "int128"
                      },
                      "id": 9710,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "id": 9708,
                        "name": "x",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8916,
                        "src": "18780:1:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int128",
                          "typeString": "int128"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "&",
                      "rightExpression": {
                        "hexValue": "3078313030",
                        "id": 9709,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "18784:5:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_256_by_1",
                          "typeString": "int_const 256"
                        },
                        "value": "0x100"
                      },
                      "src": "18780:9:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int128",
                        "typeString": "int128"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">",
                    "rightExpression": {
                      "hexValue": "30",
                      "id": 9711,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "18792:1:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "18780:13:38",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 9721,
                  "nodeType": "IfStatement",
                  "src": "18776:85:38",
                  "trueBody": {
                    "expression": {
                      "id": 9719,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftHandSide": {
                        "id": 9713,
                        "name": "result",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8935,
                        "src": "18801:6:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "Assignment",
                      "operator": "=",
                      "rightHandSide": {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 9718,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 9716,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 9714,
                            "name": "result",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8935,
                            "src": "18810:6:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "*",
                          "rightExpression": {
                            "hexValue": "3078313030303030303030303030303030423137323137463744314346373945393439",
                            "id": 9715,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "18819:35:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_340282366920938466736669620603648076105_by_1",
                              "typeString": "int_const 3402...(31 digits omitted)...6105"
                            },
                            "value": "0x100000000000000B17217F7D1CF79E949"
                          },
                          "src": "18810:44:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">>",
                        "rightExpression": {
                          "hexValue": "313238",
                          "id": 9717,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "18858:3:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_128_by_1",
                            "typeString": "int_const 128"
                          },
                          "value": "128"
                        },
                        "src": "18810:51:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "src": "18801:60:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 9720,
                    "nodeType": "ExpressionStatement",
                    "src": "18801:60:38"
                  }
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_int128",
                      "typeString": "int128"
                    },
                    "id": 9726,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "commonType": {
                        "typeIdentifier": "t_int128",
                        "typeString": "int128"
                      },
                      "id": 9724,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "id": 9722,
                        "name": "x",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8916,
                        "src": "18871:1:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int128",
                          "typeString": "int128"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "&",
                      "rightExpression": {
                        "hexValue": "30783830",
                        "id": 9723,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "18875:4:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_128_by_1",
                          "typeString": "int_const 128"
                        },
                        "value": "0x80"
                      },
                      "src": "18871:8:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int128",
                        "typeString": "int128"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">",
                    "rightExpression": {
                      "hexValue": "30",
                      "id": 9725,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "18882:1:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "18871:12:38",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 9735,
                  "nodeType": "IfStatement",
                  "src": "18867:84:38",
                  "trueBody": {
                    "expression": {
                      "id": 9733,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftHandSide": {
                        "id": 9727,
                        "name": "result",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8935,
                        "src": "18891:6:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "Assignment",
                      "operator": "=",
                      "rightHandSide": {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 9732,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 9730,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 9728,
                            "name": "result",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8935,
                            "src": "18900:6:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "*",
                          "rightExpression": {
                            "hexValue": "3078313030303030303030303030303030353842393042464245384537424345353434",
                            "id": 9729,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "18909:35:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_340282366920938465100022114017708139844_by_1",
                              "typeString": "int_const 3402...(31 digits omitted)...9844"
                            },
                            "value": "0x10000000000000058B90BFBE8E7BCE544"
                          },
                          "src": "18900:44:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">>",
                        "rightExpression": {
                          "hexValue": "313238",
                          "id": 9731,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "18948:3:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_128_by_1",
                            "typeString": "int_const 128"
                          },
                          "value": "128"
                        },
                        "src": "18900:51:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "src": "18891:60:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 9734,
                    "nodeType": "ExpressionStatement",
                    "src": "18891:60:38"
                  }
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_int128",
                      "typeString": "int128"
                    },
                    "id": 9740,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "commonType": {
                        "typeIdentifier": "t_int128",
                        "typeString": "int128"
                      },
                      "id": 9738,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "id": 9736,
                        "name": "x",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8916,
                        "src": "18961:1:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int128",
                          "typeString": "int128"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "&",
                      "rightExpression": {
                        "hexValue": "30783430",
                        "id": 9737,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "18965:4:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_64_by_1",
                          "typeString": "int_const 64"
                        },
                        "value": "0x40"
                      },
                      "src": "18961:8:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int128",
                        "typeString": "int128"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">",
                    "rightExpression": {
                      "hexValue": "30",
                      "id": 9739,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "18972:1:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "18961:12:38",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 9749,
                  "nodeType": "IfStatement",
                  "src": "18957:84:38",
                  "trueBody": {
                    "expression": {
                      "id": 9747,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftHandSide": {
                        "id": 9741,
                        "name": "result",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8935,
                        "src": "18981:6:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "Assignment",
                      "operator": "=",
                      "rightHandSide": {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 9746,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 9744,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 9742,
                            "name": "result",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8935,
                            "src": "18990:6:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "*",
                          "rightExpression": {
                            "hexValue": "3078313030303030303030303030303030324335433835464446343733444536454341",
                            "id": 9743,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "18999:35:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_340282366920938464281698360724738174666_by_1",
                              "typeString": "int_const 3402...(31 digits omitted)...4666"
                            },
                            "value": "0x1000000000000002C5C85FDF473DE6ECA"
                          },
                          "src": "18990:44:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">>",
                        "rightExpression": {
                          "hexValue": "313238",
                          "id": 9745,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "19038:3:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_128_by_1",
                            "typeString": "int_const 128"
                          },
                          "value": "128"
                        },
                        "src": "18990:51:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "src": "18981:60:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 9748,
                    "nodeType": "ExpressionStatement",
                    "src": "18981:60:38"
                  }
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_int128",
                      "typeString": "int128"
                    },
                    "id": 9754,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "commonType": {
                        "typeIdentifier": "t_int128",
                        "typeString": "int128"
                      },
                      "id": 9752,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "id": 9750,
                        "name": "x",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8916,
                        "src": "19051:1:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int128",
                          "typeString": "int128"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "&",
                      "rightExpression": {
                        "hexValue": "30783230",
                        "id": 9751,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "19055:4:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_32_by_1",
                          "typeString": "int_const 32"
                        },
                        "value": "0x20"
                      },
                      "src": "19051:8:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int128",
                        "typeString": "int128"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">",
                    "rightExpression": {
                      "hexValue": "30",
                      "id": 9753,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "19062:1:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "19051:12:38",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 9763,
                  "nodeType": "IfStatement",
                  "src": "19047:84:38",
                  "trueBody": {
                    "expression": {
                      "id": 9761,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftHandSide": {
                        "id": 9755,
                        "name": "result",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8935,
                        "src": "19071:6:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "Assignment",
                      "operator": "=",
                      "rightHandSide": {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 9760,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 9758,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 9756,
                            "name": "result",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8935,
                            "src": "19080:6:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "*",
                          "rightExpression": {
                            "hexValue": "3078313030303030303030303030303030313632453432464546413339454633363646",
                            "id": 9757,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "19089:35:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_340282366920938463872536484078253192815_by_1",
                              "typeString": "int_const 3402...(31 digits omitted)...2815"
                            },
                            "value": "0x100000000000000162E42FEFA39EF366F"
                          },
                          "src": "19080:44:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">>",
                        "rightExpression": {
                          "hexValue": "313238",
                          "id": 9759,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "19128:3:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_128_by_1",
                            "typeString": "int_const 128"
                          },
                          "value": "128"
                        },
                        "src": "19080:51:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "src": "19071:60:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 9762,
                    "nodeType": "ExpressionStatement",
                    "src": "19071:60:38"
                  }
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_int128",
                      "typeString": "int128"
                    },
                    "id": 9768,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "commonType": {
                        "typeIdentifier": "t_int128",
                        "typeString": "int128"
                      },
                      "id": 9766,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "id": 9764,
                        "name": "x",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8916,
                        "src": "19141:1:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int128",
                          "typeString": "int128"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "&",
                      "rightExpression": {
                        "hexValue": "30783130",
                        "id": 9765,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "19145:4:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_16_by_1",
                          "typeString": "int_const 16"
                        },
                        "value": "0x10"
                      },
                      "src": "19141:8:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int128",
                        "typeString": "int128"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">",
                    "rightExpression": {
                      "hexValue": "30",
                      "id": 9767,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "19152:1:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "19141:12:38",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 9777,
                  "nodeType": "IfStatement",
                  "src": "19137:84:38",
                  "trueBody": {
                    "expression": {
                      "id": 9775,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftHandSide": {
                        "id": 9769,
                        "name": "result",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8935,
                        "src": "19161:6:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "Assignment",
                      "operator": "=",
                      "rightHandSide": {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 9774,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 9772,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 9770,
                            "name": "result",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8935,
                            "src": "19170:6:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "*",
                          "rightExpression": {
                            "hexValue": "3078313030303030303030303030303030304231373231374637443143463739414641",
                            "id": 9771,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "19179:35:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_340282366920938463667955545755010702074_by_1",
                              "typeString": "int_const 3402...(31 digits omitted)...2074"
                            },
                            "value": "0x1000000000000000B17217F7D1CF79AFA"
                          },
                          "src": "19170:44:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">>",
                        "rightExpression": {
                          "hexValue": "313238",
                          "id": 9773,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "19218:3:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_128_by_1",
                            "typeString": "int_const 128"
                          },
                          "value": "128"
                        },
                        "src": "19170:51:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "src": "19161:60:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 9776,
                    "nodeType": "ExpressionStatement",
                    "src": "19161:60:38"
                  }
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_int128",
                      "typeString": "int128"
                    },
                    "id": 9782,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "commonType": {
                        "typeIdentifier": "t_int128",
                        "typeString": "int128"
                      },
                      "id": 9780,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "id": 9778,
                        "name": "x",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8916,
                        "src": "19231:1:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int128",
                          "typeString": "int128"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "&",
                      "rightExpression": {
                        "hexValue": "307838",
                        "id": 9779,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "19235:3:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_8_by_1",
                          "typeString": "int_const 8"
                        },
                        "value": "0x8"
                      },
                      "src": "19231:7:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int128",
                        "typeString": "int128"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">",
                    "rightExpression": {
                      "hexValue": "30",
                      "id": 9781,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "19241:1:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "19231:11:38",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 9791,
                  "nodeType": "IfStatement",
                  "src": "19227:83:38",
                  "trueBody": {
                    "expression": {
                      "id": 9789,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftHandSide": {
                        "id": 9783,
                        "name": "result",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8935,
                        "src": "19250:6:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "Assignment",
                      "operator": "=",
                      "rightHandSide": {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 9788,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 9786,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 9784,
                            "name": "result",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8935,
                            "src": "19259:6:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "*",
                          "rightExpression": {
                            "hexValue": "3078313030303030303030303030303030303538423930424642453845374243443644",
                            "id": 9785,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "19268:35:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_340282366920938463565665076593389456749_by_1",
                              "typeString": "int_const 3402...(31 digits omitted)...6749"
                            },
                            "value": "0x100000000000000058B90BFBE8E7BCD6D"
                          },
                          "src": "19259:44:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">>",
                        "rightExpression": {
                          "hexValue": "313238",
                          "id": 9787,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "19307:3:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_128_by_1",
                            "typeString": "int_const 128"
                          },
                          "value": "128"
                        },
                        "src": "19259:51:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "src": "19250:60:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 9790,
                    "nodeType": "ExpressionStatement",
                    "src": "19250:60:38"
                  }
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_int128",
                      "typeString": "int128"
                    },
                    "id": 9796,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "commonType": {
                        "typeIdentifier": "t_int128",
                        "typeString": "int128"
                      },
                      "id": 9794,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "id": 9792,
                        "name": "x",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8916,
                        "src": "19320:1:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int128",
                          "typeString": "int128"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "&",
                      "rightExpression": {
                        "hexValue": "307834",
                        "id": 9793,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "19324:3:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_4_by_1",
                          "typeString": "int_const 4"
                        },
                        "value": "0x4"
                      },
                      "src": "19320:7:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int128",
                        "typeString": "int128"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">",
                    "rightExpression": {
                      "hexValue": "30",
                      "id": 9795,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "19330:1:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "19320:11:38",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 9805,
                  "nodeType": "IfStatement",
                  "src": "19316:83:38",
                  "trueBody": {
                    "expression": {
                      "id": 9803,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftHandSide": {
                        "id": 9797,
                        "name": "result",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8935,
                        "src": "19339:6:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "Assignment",
                      "operator": "=",
                      "rightHandSide": {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 9802,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 9800,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 9798,
                            "name": "result",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8935,
                            "src": "19348:6:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "*",
                          "rightExpression": {
                            "hexValue": "3078313030303030303030303030303030303243354338354644463437334445364232",
                            "id": 9799,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "19357:35:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_340282366920938463514519842012578834098_by_1",
                              "typeString": "int_const 3402...(31 digits omitted)...4098"
                            },
                            "value": "0x10000000000000002C5C85FDF473DE6B2"
                          },
                          "src": "19348:44:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">>",
                        "rightExpression": {
                          "hexValue": "313238",
                          "id": 9801,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "19396:3:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_128_by_1",
                            "typeString": "int_const 128"
                          },
                          "value": "128"
                        },
                        "src": "19348:51:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "src": "19339:60:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 9804,
                    "nodeType": "ExpressionStatement",
                    "src": "19339:60:38"
                  }
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_int128",
                      "typeString": "int128"
                    },
                    "id": 9810,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "commonType": {
                        "typeIdentifier": "t_int128",
                        "typeString": "int128"
                      },
                      "id": 9808,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "id": 9806,
                        "name": "x",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8916,
                        "src": "19409:1:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int128",
                          "typeString": "int128"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "&",
                      "rightExpression": {
                        "hexValue": "307832",
                        "id": 9807,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "19413:3:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_2_by_1",
                          "typeString": "int_const 2"
                        },
                        "value": "0x2"
                      },
                      "src": "19409:7:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int128",
                        "typeString": "int128"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">",
                    "rightExpression": {
                      "hexValue": "30",
                      "id": 9809,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "19419:1:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "19409:11:38",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 9819,
                  "nodeType": "IfStatement",
                  "src": "19405:83:38",
                  "trueBody": {
                    "expression": {
                      "id": 9817,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftHandSide": {
                        "id": 9811,
                        "name": "result",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8935,
                        "src": "19428:6:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "Assignment",
                      "operator": "=",
                      "rightHandSide": {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 9816,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 9814,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 9812,
                            "name": "result",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8935,
                            "src": "19437:6:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "*",
                          "rightExpression": {
                            "hexValue": "3078313030303030303030303030303030303136324534324645464133394546333538",
                            "id": 9813,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "19446:35:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_340282366920938463488947224722173522776_by_1",
                              "typeString": "int_const 3402...(31 digits omitted)...2776"
                            },
                            "value": "0x1000000000000000162E42FEFA39EF358"
                          },
                          "src": "19437:44:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">>",
                        "rightExpression": {
                          "hexValue": "313238",
                          "id": 9815,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "19485:3:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_128_by_1",
                            "typeString": "int_const 128"
                          },
                          "value": "128"
                        },
                        "src": "19437:51:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "src": "19428:60:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 9818,
                    "nodeType": "ExpressionStatement",
                    "src": "19428:60:38"
                  }
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_int128",
                      "typeString": "int128"
                    },
                    "id": 9824,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "commonType": {
                        "typeIdentifier": "t_int128",
                        "typeString": "int128"
                      },
                      "id": 9822,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "id": 9820,
                        "name": "x",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8916,
                        "src": "19498:1:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int128",
                          "typeString": "int128"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "&",
                      "rightExpression": {
                        "hexValue": "307831",
                        "id": 9821,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "19502:3:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_1_by_1",
                          "typeString": "int_const 1"
                        },
                        "value": "0x1"
                      },
                      "src": "19498:7:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int128",
                        "typeString": "int128"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">",
                    "rightExpression": {
                      "hexValue": "30",
                      "id": 9823,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "19508:1:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "19498:11:38",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 9833,
                  "nodeType": "IfStatement",
                  "src": "19494:83:38",
                  "trueBody": {
                    "expression": {
                      "id": 9831,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftHandSide": {
                        "id": 9825,
                        "name": "result",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8935,
                        "src": "19517:6:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "Assignment",
                      "operator": "=",
                      "rightHandSide": {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 9830,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 9828,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 9826,
                            "name": "result",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8935,
                            "src": "19526:6:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "*",
                          "rightExpression": {
                            "hexValue": "3078313030303030303030303030303030303042313732313746374431434637394142",
                            "id": 9827,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "19535:35:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_340282366920938463476160916076970867115_by_1",
                              "typeString": "int_const 3402...(31 digits omitted)...7115"
                            },
                            "value": "0x10000000000000000B17217F7D1CF79AB"
                          },
                          "src": "19526:44:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">>",
                        "rightExpression": {
                          "hexValue": "313238",
                          "id": 9829,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "19574:3:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_128_by_1",
                            "typeString": "int_const 128"
                          },
                          "value": "128"
                        },
                        "src": "19526:51:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "src": "19517:60:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 9832,
                    "nodeType": "ExpressionStatement",
                    "src": "19517:60:38"
                  }
                },
                {
                  "expression": {
                    "id": 9844,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 9834,
                      "name": "result",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 8935,
                      "src": "19584:6:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": ">>=",
                    "rightHandSide": {
                      "arguments": [
                        {
                          "commonType": {
                            "typeIdentifier": "t_int128",
                            "typeString": "int128"
                          },
                          "id": 9842,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "hexValue": "3633",
                            "id": 9837,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "19604:2:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_63_by_1",
                              "typeString": "int_const 63"
                            },
                            "value": "63"
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "-",
                          "rightExpression": {
                            "components": [
                              {
                                "commonType": {
                                  "typeIdentifier": "t_int128",
                                  "typeString": "int128"
                                },
                                "id": 9840,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "id": 9838,
                                  "name": "x",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 8916,
                                  "src": "19610:1:38",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_int128",
                                    "typeString": "int128"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": ">>",
                                "rightExpression": {
                                  "hexValue": "3634",
                                  "id": 9839,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "19615:2:38",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_64_by_1",
                                    "typeString": "int_const 64"
                                  },
                                  "value": "64"
                                },
                                "src": "19610:7:38",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_int128",
                                  "typeString": "int128"
                                }
                              }
                            ],
                            "id": 9841,
                            "isConstant": false,
                            "isInlineArray": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "TupleExpression",
                            "src": "19609:9:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_int128",
                              "typeString": "int128"
                            }
                          },
                          "src": "19604:14:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int128",
                            "typeString": "int128"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_int128",
                            "typeString": "int128"
                          }
                        ],
                        "id": 9836,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "19595:7:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_uint256_$",
                          "typeString": "type(uint256)"
                        },
                        "typeName": {
                          "id": 9835,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "19595:7:38",
                          "typeDescriptions": {}
                        }
                      },
                      "id": 9843,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "19595:24:38",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "19584:35:38",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 9845,
                  "nodeType": "ExpressionStatement",
                  "src": "19584:35:38"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 9852,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "id": 9847,
                          "name": "result",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 8935,
                          "src": "19634:6:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "<=",
                        "rightExpression": {
                          "arguments": [
                            {
                              "id": 9850,
                              "name": "MAX_64x64",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 7853,
                              "src": "19653:9:38",
                              "typeDescriptions": {
                                "typeIdentifier": "t_int128",
                                "typeString": "int128"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_int128",
                                "typeString": "int128"
                              }
                            ],
                            "id": 9849,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "19644:7:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_uint256_$",
                              "typeString": "type(uint256)"
                            },
                            "typeName": {
                              "id": 9848,
                              "name": "uint256",
                              "nodeType": "ElementaryTypeName",
                              "src": "19644:7:38",
                              "typeDescriptions": {}
                            }
                          },
                          "id": 9851,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "19644:19:38",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "19634:29:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 9846,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        4294967278,
                        4294967278
                      ],
                      "referencedDeclaration": 4294967278,
                      "src": "19625:7:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 9853,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "19625:39:38",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 9854,
                  "nodeType": "ExpressionStatement",
                  "src": "19625:39:38"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 9857,
                        "name": "result",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8935,
                        "src": "19686:6:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 9856,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "ElementaryTypeNameExpression",
                      "src": "19678:6:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_int128_$",
                        "typeString": "type(int128)"
                      },
                      "typeName": {
                        "id": 9855,
                        "name": "int128",
                        "nodeType": "ElementaryTypeName",
                        "src": "19678:6:38",
                        "typeDescriptions": {}
                      }
                    },
                    "id": 9858,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "typeConversion",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "19678:15:38",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_int128",
                      "typeString": "int128"
                    }
                  },
                  "functionReturnParameters": 8920,
                  "id": 9859,
                  "nodeType": "Return",
                  "src": "19671:22:38"
                }
              ]
            },
            "documentation": {
              "id": 8914,
              "nodeType": "StructuredDocumentation",
              "src": "13000:171:38",
              "text": " Calculate binary exponent of x.  Revert on overflow.\n @param x signed 64.64-bit fixed point number\n @return signed 64.64-bit fixed point number"
            },
            "id": 9861,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "exp_2",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 8917,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 8916,
                  "mutability": "mutable",
                  "name": "x",
                  "nodeType": "VariableDeclaration",
                  "scope": 9861,
                  "src": "13190:8:38",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_int128",
                    "typeString": "int128"
                  },
                  "typeName": {
                    "id": 8915,
                    "name": "int128",
                    "nodeType": "ElementaryTypeName",
                    "src": "13190:6:38",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int128",
                      "typeString": "int128"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "13189:10:38"
            },
            "returnParameters": {
              "id": 8920,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 8919,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 9861,
                  "src": "13223:6:38",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_int128",
                    "typeString": "int128"
                  },
                  "typeName": {
                    "id": 8918,
                    "name": "int128",
                    "nodeType": "ElementaryTypeName",
                    "src": "13223:6:38",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int128",
                      "typeString": "int128"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "13222:8:38"
            },
            "scope": 10621,
            "src": "13174:6524:38",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 9896,
              "nodeType": "Block",
              "src": "19932:211:38",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_int128",
                          "typeString": "int128"
                        },
                        "id": 9872,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "id": 9870,
                          "name": "x",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 9864,
                          "src": "19947:1:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int128",
                            "typeString": "int128"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "<",
                        "rightExpression": {
                          "hexValue": "3078343030303030303030303030303030303030",
                          "id": 9871,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "19951:20:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_1180591620717411303424_by_1",
                            "typeString": "int_const 1180591620717411303424"
                          },
                          "value": "0x400000000000000000"
                        },
                        "src": "19947:24:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 9869,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        4294967278,
                        4294967278
                      ],
                      "referencedDeclaration": 4294967278,
                      "src": "19938:7:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 9873,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "19938:34:38",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 9874,
                  "nodeType": "ExpressionStatement",
                  "src": "19938:34:38"
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_int128",
                      "typeString": "int128"
                    },
                    "id": 9878,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 9875,
                      "name": "x",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 9864,
                      "src": "19995:1:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int128",
                        "typeString": "int128"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "id": 9877,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "-",
                      "prefix": true,
                      "src": "19999:21:38",
                      "subExpression": {
                        "hexValue": "3078343030303030303030303030303030303030",
                        "id": 9876,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "20000:20:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_1180591620717411303424_by_1",
                          "typeString": "int_const 1180591620717411303424"
                        },
                        "value": "0x400000000000000000"
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_minus_1180591620717411303424_by_1",
                        "typeString": "int_const -1180591620717411303424"
                      }
                    },
                    "src": "19995:25:38",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 9881,
                  "nodeType": "IfStatement",
                  "src": "19991:39:38",
                  "trueBody": {
                    "expression": {
                      "hexValue": "30",
                      "id": 9879,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "20029:1:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "functionReturnParameters": 9868,
                    "id": 9880,
                    "nodeType": "Return",
                    "src": "20022:8:38"
                  }
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "commonType": {
                              "typeIdentifier": "t_int256",
                              "typeString": "int256"
                            },
                            "id": 9892,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "commonType": {
                                "typeIdentifier": "t_int256",
                                "typeString": "int256"
                              },
                              "id": 9890,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "arguments": [
                                  {
                                    "id": 9887,
                                    "name": "x",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 9864,
                                    "src": "20089:1:38",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_int128",
                                      "typeString": "int128"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_int128",
                                      "typeString": "int128"
                                    }
                                  ],
                                  "id": 9886,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "20081:6:38",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_int256_$",
                                    "typeString": "type(int256)"
                                  },
                                  "typeName": {
                                    "id": 9885,
                                    "name": "int256",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "20081:6:38",
                                    "typeDescriptions": {}
                                  }
                                },
                                "id": 9888,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "20081:10:38",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_int256",
                                  "typeString": "int256"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "*",
                              "rightExpression": {
                                "hexValue": "3078313731353437363532423832464531373737443046464441304432334137443132",
                                "id": 9889,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "20094:35:38",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_490923683258796565746369346286093237522_by_1",
                                  "typeString": "int_const 4909...(31 digits omitted)...7522"
                                },
                                "value": "0x171547652B82FE1777D0FFDA0D23A7D12"
                              },
                              "src": "20081:48:38",
                              "typeDescriptions": {
                                "typeIdentifier": "t_int256",
                                "typeString": "int256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": ">>",
                            "rightExpression": {
                              "hexValue": "313238",
                              "id": 9891,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "20133:3:38",
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_128_by_1",
                                "typeString": "int_const 128"
                              },
                              "value": "128"
                            },
                            "src": "20081:55:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_int256",
                              "typeString": "int256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_int256",
                              "typeString": "int256"
                            }
                          ],
                          "id": 9884,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "20073:6:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_int128_$",
                            "typeString": "type(int128)"
                          },
                          "typeName": {
                            "id": 9883,
                            "name": "int128",
                            "nodeType": "ElementaryTypeName",
                            "src": "20073:6:38",
                            "typeDescriptions": {}
                          }
                        },
                        "id": 9893,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "20073:64:38",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_int128",
                          "typeString": "int128"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_int128",
                          "typeString": "int128"
                        }
                      ],
                      "id": 9882,
                      "name": "exp_2",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 9861,
                      "src": "20057:5:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_int128_$returns$_t_int128_$",
                        "typeString": "function (int128) pure returns (int128)"
                      }
                    },
                    "id": 9894,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "20057:81:38",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_int128",
                      "typeString": "int128"
                    }
                  },
                  "functionReturnParameters": 9868,
                  "id": 9895,
                  "nodeType": "Return",
                  "src": "20050:88:38"
                }
              ]
            },
            "documentation": {
              "id": 9862,
              "nodeType": "StructuredDocumentation",
              "src": "19702:172:38",
              "text": " Calculate natural exponent of x.  Revert on overflow.\n @param x signed 64.64-bit fixed point number\n @return signed 64.64-bit fixed point number"
            },
            "id": 9897,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "exp",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 9865,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 9864,
                  "mutability": "mutable",
                  "name": "x",
                  "nodeType": "VariableDeclaration",
                  "scope": 9897,
                  "src": "19891:8:38",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_int128",
                    "typeString": "int128"
                  },
                  "typeName": {
                    "id": 9863,
                    "name": "int128",
                    "nodeType": "ElementaryTypeName",
                    "src": "19891:6:38",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int128",
                      "typeString": "int128"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "19890:10:38"
            },
            "returnParameters": {
              "id": 9868,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 9867,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 9897,
                  "src": "19924:6:38",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_int128",
                    "typeString": "int128"
                  },
                  "typeName": {
                    "id": 9866,
                    "name": "int128",
                    "nodeType": "ElementaryTypeName",
                    "src": "19924:6:38",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int128",
                      "typeString": "int128"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "19923:8:38"
            },
            "scope": 10621,
            "src": "19877:266:38",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 10125,
              "nodeType": "Block",
              "src": "20516:1149:38",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 9910,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "id": 9908,
                          "name": "y",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 9902,
                          "src": "20531:1:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "!=",
                        "rightExpression": {
                          "hexValue": "30",
                          "id": 9909,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "20536:1:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "20531:6:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 9907,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        4294967278,
                        4294967278
                      ],
                      "referencedDeclaration": 4294967278,
                      "src": "20522:7:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 9911,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "20522:16:38",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 9912,
                  "nodeType": "ExpressionStatement",
                  "src": "20522:16:38"
                },
                {
                  "assignments": [
                    9914
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 9914,
                      "mutability": "mutable",
                      "name": "result",
                      "nodeType": "VariableDeclaration",
                      "scope": 10125,
                      "src": "20545:14:38",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 9913,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "20545:7:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 9915,
                  "nodeType": "VariableDeclarationStatement",
                  "src": "20545:14:38"
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 9918,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 9916,
                      "name": "x",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 9900,
                      "src": "20570:1:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<=",
                    "rightExpression": {
                      "hexValue": "3078464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646",
                      "id": 9917,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "20575:50:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_6277101735386680763835789423207666416102355444464034512895_by_1",
                        "typeString": "int_const 6277...(50 digits omitted)...2895"
                      },
                      "value": "0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
                    },
                    "src": "20570:55:38",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "id": 10112,
                    "nodeType": "Block",
                    "src": "20666:905:38",
                    "statements": [
                      {
                        "assignments": [
                          9929
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 9929,
                            "mutability": "mutable",
                            "name": "msb",
                            "nodeType": "VariableDeclaration",
                            "scope": 10112,
                            "src": "20674:11:38",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "typeName": {
                              "id": 9928,
                              "name": "uint256",
                              "nodeType": "ElementaryTypeName",
                              "src": "20674:7:38",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "visibility": "internal"
                          }
                        ],
                        "id": 9931,
                        "initialValue": {
                          "hexValue": "313932",
                          "id": 9930,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "20688:3:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_192_by_1",
                            "typeString": "int_const 192"
                          },
                          "value": "192"
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "20674:17:38"
                      },
                      {
                        "assignments": [
                          9933
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 9933,
                            "mutability": "mutable",
                            "name": "xc",
                            "nodeType": "VariableDeclaration",
                            "scope": 10112,
                            "src": "20699:10:38",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "typeName": {
                              "id": 9932,
                              "name": "uint256",
                              "nodeType": "ElementaryTypeName",
                              "src": "20699:7:38",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "visibility": "internal"
                          }
                        ],
                        "id": 9937,
                        "initialValue": {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 9936,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 9934,
                            "name": "x",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 9900,
                            "src": "20712:1:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": ">>",
                          "rightExpression": {
                            "hexValue": "313932",
                            "id": 9935,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "20717:3:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_192_by_1",
                              "typeString": "int_const 192"
                            },
                            "value": "192"
                          },
                          "src": "20712:8:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "20699:21:38"
                      },
                      {
                        "condition": {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 9940,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 9938,
                            "name": "xc",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 9933,
                            "src": "20732:2:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": ">=",
                          "rightExpression": {
                            "hexValue": "3078313030303030303030",
                            "id": 9939,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "20738:11:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_4294967296_by_1",
                              "typeString": "int_const 4294967296"
                            },
                            "value": "0x100000000"
                          },
                          "src": "20732:17:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "id": 9950,
                        "nodeType": "IfStatement",
                        "src": "20728:48:38",
                        "trueBody": {
                          "id": 9949,
                          "nodeType": "Block",
                          "src": "20751:25:38",
                          "statements": [
                            {
                              "expression": {
                                "id": 9943,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "id": 9941,
                                  "name": "xc",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 9933,
                                  "src": "20753:2:38",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": ">>=",
                                "rightHandSide": {
                                  "hexValue": "3332",
                                  "id": 9942,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "20760:2:38",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_32_by_1",
                                    "typeString": "int_const 32"
                                  },
                                  "value": "32"
                                },
                                "src": "20753:9:38",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 9944,
                              "nodeType": "ExpressionStatement",
                              "src": "20753:9:38"
                            },
                            {
                              "expression": {
                                "id": 9947,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "id": 9945,
                                  "name": "msb",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 9929,
                                  "src": "20764:3:38",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "+=",
                                "rightHandSide": {
                                  "hexValue": "3332",
                                  "id": 9946,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "20771:2:38",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_32_by_1",
                                    "typeString": "int_const 32"
                                  },
                                  "value": "32"
                                },
                                "src": "20764:9:38",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 9948,
                              "nodeType": "ExpressionStatement",
                              "src": "20764:9:38"
                            }
                          ]
                        }
                      },
                      {
                        "condition": {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 9953,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 9951,
                            "name": "xc",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 9933,
                            "src": "20787:2:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": ">=",
                          "rightExpression": {
                            "hexValue": "30783130303030",
                            "id": 9952,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "20793:7:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_65536_by_1",
                              "typeString": "int_const 65536"
                            },
                            "value": "0x10000"
                          },
                          "src": "20787:13:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "id": 9963,
                        "nodeType": "IfStatement",
                        "src": "20783:44:38",
                        "trueBody": {
                          "id": 9962,
                          "nodeType": "Block",
                          "src": "20802:25:38",
                          "statements": [
                            {
                              "expression": {
                                "id": 9956,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "id": 9954,
                                  "name": "xc",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 9933,
                                  "src": "20804:2:38",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": ">>=",
                                "rightHandSide": {
                                  "hexValue": "3136",
                                  "id": 9955,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "20811:2:38",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_16_by_1",
                                    "typeString": "int_const 16"
                                  },
                                  "value": "16"
                                },
                                "src": "20804:9:38",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 9957,
                              "nodeType": "ExpressionStatement",
                              "src": "20804:9:38"
                            },
                            {
                              "expression": {
                                "id": 9960,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "id": 9958,
                                  "name": "msb",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 9929,
                                  "src": "20815:3:38",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "+=",
                                "rightHandSide": {
                                  "hexValue": "3136",
                                  "id": 9959,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "20822:2:38",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_16_by_1",
                                    "typeString": "int_const 16"
                                  },
                                  "value": "16"
                                },
                                "src": "20815:9:38",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 9961,
                              "nodeType": "ExpressionStatement",
                              "src": "20815:9:38"
                            }
                          ]
                        }
                      },
                      {
                        "condition": {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 9966,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 9964,
                            "name": "xc",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 9933,
                            "src": "20838:2:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": ">=",
                          "rightExpression": {
                            "hexValue": "3078313030",
                            "id": 9965,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "20844:5:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_256_by_1",
                              "typeString": "int_const 256"
                            },
                            "value": "0x100"
                          },
                          "src": "20838:11:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "id": 9976,
                        "nodeType": "IfStatement",
                        "src": "20834:40:38",
                        "trueBody": {
                          "id": 9975,
                          "nodeType": "Block",
                          "src": "20851:23:38",
                          "statements": [
                            {
                              "expression": {
                                "id": 9969,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "id": 9967,
                                  "name": "xc",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 9933,
                                  "src": "20853:2:38",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": ">>=",
                                "rightHandSide": {
                                  "hexValue": "38",
                                  "id": 9968,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "20860:1:38",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_8_by_1",
                                    "typeString": "int_const 8"
                                  },
                                  "value": "8"
                                },
                                "src": "20853:8:38",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 9970,
                              "nodeType": "ExpressionStatement",
                              "src": "20853:8:38"
                            },
                            {
                              "expression": {
                                "id": 9973,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "id": 9971,
                                  "name": "msb",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 9929,
                                  "src": "20863:3:38",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "+=",
                                "rightHandSide": {
                                  "hexValue": "38",
                                  "id": 9972,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "20870:1:38",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_8_by_1",
                                    "typeString": "int_const 8"
                                  },
                                  "value": "8"
                                },
                                "src": "20863:8:38",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 9974,
                              "nodeType": "ExpressionStatement",
                              "src": "20863:8:38"
                            }
                          ]
                        }
                      },
                      {
                        "condition": {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 9979,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 9977,
                            "name": "xc",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 9933,
                            "src": "20885:2:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": ">=",
                          "rightExpression": {
                            "hexValue": "30783130",
                            "id": 9978,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "20891:4:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_16_by_1",
                              "typeString": "int_const 16"
                            },
                            "value": "0x10"
                          },
                          "src": "20885:10:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "id": 9989,
                        "nodeType": "IfStatement",
                        "src": "20881:39:38",
                        "trueBody": {
                          "id": 9988,
                          "nodeType": "Block",
                          "src": "20897:23:38",
                          "statements": [
                            {
                              "expression": {
                                "id": 9982,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "id": 9980,
                                  "name": "xc",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 9933,
                                  "src": "20899:2:38",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": ">>=",
                                "rightHandSide": {
                                  "hexValue": "34",
                                  "id": 9981,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "20906:1:38",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_4_by_1",
                                    "typeString": "int_const 4"
                                  },
                                  "value": "4"
                                },
                                "src": "20899:8:38",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 9983,
                              "nodeType": "ExpressionStatement",
                              "src": "20899:8:38"
                            },
                            {
                              "expression": {
                                "id": 9986,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "id": 9984,
                                  "name": "msb",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 9929,
                                  "src": "20909:3:38",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "+=",
                                "rightHandSide": {
                                  "hexValue": "34",
                                  "id": 9985,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "20916:1:38",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_4_by_1",
                                    "typeString": "int_const 4"
                                  },
                                  "value": "4"
                                },
                                "src": "20909:8:38",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 9987,
                              "nodeType": "ExpressionStatement",
                              "src": "20909:8:38"
                            }
                          ]
                        }
                      },
                      {
                        "condition": {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 9992,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 9990,
                            "name": "xc",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 9933,
                            "src": "20931:2:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": ">=",
                          "rightExpression": {
                            "hexValue": "307834",
                            "id": 9991,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "20937:3:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_4_by_1",
                              "typeString": "int_const 4"
                            },
                            "value": "0x4"
                          },
                          "src": "20931:9:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "id": 10002,
                        "nodeType": "IfStatement",
                        "src": "20927:38:38",
                        "trueBody": {
                          "id": 10001,
                          "nodeType": "Block",
                          "src": "20942:23:38",
                          "statements": [
                            {
                              "expression": {
                                "id": 9995,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "id": 9993,
                                  "name": "xc",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 9933,
                                  "src": "20944:2:38",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": ">>=",
                                "rightHandSide": {
                                  "hexValue": "32",
                                  "id": 9994,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "20951:1:38",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_2_by_1",
                                    "typeString": "int_const 2"
                                  },
                                  "value": "2"
                                },
                                "src": "20944:8:38",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 9996,
                              "nodeType": "ExpressionStatement",
                              "src": "20944:8:38"
                            },
                            {
                              "expression": {
                                "id": 9999,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "id": 9997,
                                  "name": "msb",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 9929,
                                  "src": "20954:3:38",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "+=",
                                "rightHandSide": {
                                  "hexValue": "32",
                                  "id": 9998,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "20961:1:38",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_2_by_1",
                                    "typeString": "int_const 2"
                                  },
                                  "value": "2"
                                },
                                "src": "20954:8:38",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 10000,
                              "nodeType": "ExpressionStatement",
                              "src": "20954:8:38"
                            }
                          ]
                        }
                      },
                      {
                        "condition": {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 10005,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 10003,
                            "name": "xc",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 9933,
                            "src": "20976:2:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": ">=",
                          "rightExpression": {
                            "hexValue": "307832",
                            "id": 10004,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "20982:3:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_2_by_1",
                              "typeString": "int_const 2"
                            },
                            "value": "0x2"
                          },
                          "src": "20976:9:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "id": 10010,
                        "nodeType": "IfStatement",
                        "src": "20972:23:38",
                        "trueBody": {
                          "expression": {
                            "id": 10008,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftHandSide": {
                              "id": 10006,
                              "name": "msb",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 9929,
                              "src": "20987:3:38",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "Assignment",
                            "operator": "+=",
                            "rightHandSide": {
                              "hexValue": "31",
                              "id": 10007,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "20994:1:38",
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_1_by_1",
                                "typeString": "int_const 1"
                              },
                              "value": "1"
                            },
                            "src": "20987:8:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "id": 10009,
                          "nodeType": "ExpressionStatement",
                          "src": "20987:8:38"
                        }
                      },
                      {
                        "expression": {
                          "id": 10030,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "id": 10011,
                            "name": "result",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 9914,
                            "src": "21036:6:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 10029,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "components": [
                                {
                                  "commonType": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "id": 10016,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftExpression": {
                                    "id": 10012,
                                    "name": "x",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 9900,
                                    "src": "21046:1:38",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "nodeType": "BinaryOperation",
                                  "operator": "<<",
                                  "rightExpression": {
                                    "commonType": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    },
                                    "id": 10015,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "leftExpression": {
                                      "hexValue": "323535",
                                      "id": 10013,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "number",
                                      "lValueRequested": false,
                                      "nodeType": "Literal",
                                      "src": "21051:3:38",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_rational_255_by_1",
                                        "typeString": "int_const 255"
                                      },
                                      "value": "255"
                                    },
                                    "nodeType": "BinaryOperation",
                                    "operator": "-",
                                    "rightExpression": {
                                      "id": 10014,
                                      "name": "msb",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 9929,
                                      "src": "21057:3:38",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "src": "21051:9:38",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "src": "21046:14:38",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                }
                              ],
                              "id": 10017,
                              "isConstant": false,
                              "isInlineArray": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "TupleExpression",
                              "src": "21045:16:38",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "/",
                            "rightExpression": {
                              "components": [
                                {
                                  "commonType": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "id": 10027,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftExpression": {
                                    "components": [
                                      {
                                        "commonType": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        },
                                        "id": 10024,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftExpression": {
                                          "commonType": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          },
                                          "id": 10020,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "leftExpression": {
                                            "id": 10018,
                                            "name": "y",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 9902,
                                            "src": "21066:1:38",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_uint256",
                                              "typeString": "uint256"
                                            }
                                          },
                                          "nodeType": "BinaryOperation",
                                          "operator": "-",
                                          "rightExpression": {
                                            "hexValue": "31",
                                            "id": 10019,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "number",
                                            "lValueRequested": false,
                                            "nodeType": "Literal",
                                            "src": "21070:1:38",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_rational_1_by_1",
                                              "typeString": "int_const 1"
                                            },
                                            "value": "1"
                                          },
                                          "src": "21066:5:38",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        },
                                        "nodeType": "BinaryOperation",
                                        "operator": ">>",
                                        "rightExpression": {
                                          "commonType": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          },
                                          "id": 10023,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "leftExpression": {
                                            "id": 10021,
                                            "name": "msb",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 9929,
                                            "src": "21075:3:38",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_uint256",
                                              "typeString": "uint256"
                                            }
                                          },
                                          "nodeType": "BinaryOperation",
                                          "operator": "-",
                                          "rightExpression": {
                                            "hexValue": "313931",
                                            "id": 10022,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "number",
                                            "lValueRequested": false,
                                            "nodeType": "Literal",
                                            "src": "21081:3:38",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_rational_191_by_1",
                                              "typeString": "int_const 191"
                                            },
                                            "value": "191"
                                          },
                                          "src": "21075:9:38",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        },
                                        "src": "21066:18:38",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      }
                                    ],
                                    "id": 10025,
                                    "isConstant": false,
                                    "isInlineArray": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "nodeType": "TupleExpression",
                                    "src": "21065:20:38",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "nodeType": "BinaryOperation",
                                  "operator": "+",
                                  "rightExpression": {
                                    "hexValue": "31",
                                    "id": 10026,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "number",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "21088:1:38",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_rational_1_by_1",
                                      "typeString": "int_const 1"
                                    },
                                    "value": "1"
                                  },
                                  "src": "21065:24:38",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                }
                              ],
                              "id": 10028,
                              "isConstant": false,
                              "isInlineArray": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "TupleExpression",
                              "src": "21064:26:38",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "src": "21045:45:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "21036:54:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 10031,
                        "nodeType": "ExpressionStatement",
                        "src": "21036:54:38"
                      },
                      {
                        "expression": {
                          "arguments": [
                            {
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "id": 10035,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "id": 10033,
                                "name": "result",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 9914,
                                "src": "21107:6:38",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "<=",
                              "rightExpression": {
                                "hexValue": "30784646464646464646464646464646464646464646464646464646464646464646",
                                "id": 10034,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "21117:34:38",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_340282366920938463463374607431768211455_by_1",
                                  "typeString": "int_const 3402...(31 digits omitted)...1455"
                                },
                                "value": "0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
                              },
                              "src": "21107:44:38",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            ],
                            "id": 10032,
                            "name": "require",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [
                              4294967278,
                              4294967278
                            ],
                            "referencedDeclaration": 4294967278,
                            "src": "21098:7:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                              "typeString": "function (bool) pure"
                            }
                          },
                          "id": 10036,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "21098:54:38",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 10037,
                        "nodeType": "ExpressionStatement",
                        "src": "21098:54:38"
                      },
                      {
                        "assignments": [
                          10039
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 10039,
                            "mutability": "mutable",
                            "name": "hi",
                            "nodeType": "VariableDeclaration",
                            "scope": 10112,
                            "src": "21161:10:38",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "typeName": {
                              "id": 10038,
                              "name": "uint256",
                              "nodeType": "ElementaryTypeName",
                              "src": "21161:7:38",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "visibility": "internal"
                          }
                        ],
                        "id": 10046,
                        "initialValue": {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 10045,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 10040,
                            "name": "result",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 9914,
                            "src": "21174:6:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "*",
                          "rightExpression": {
                            "components": [
                              {
                                "commonType": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                "id": 10043,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "id": 10041,
                                  "name": "y",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 9902,
                                  "src": "21184:1:38",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": ">>",
                                "rightExpression": {
                                  "hexValue": "313238",
                                  "id": 10042,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "21189:3:38",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_128_by_1",
                                    "typeString": "int_const 128"
                                  },
                                  "value": "128"
                                },
                                "src": "21184:8:38",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "id": 10044,
                            "isConstant": false,
                            "isInlineArray": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "TupleExpression",
                            "src": "21183:10:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "21174:19:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "21161:32:38"
                      },
                      {
                        "assignments": [
                          10048
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 10048,
                            "mutability": "mutable",
                            "name": "lo",
                            "nodeType": "VariableDeclaration",
                            "scope": 10112,
                            "src": "21201:10:38",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "typeName": {
                              "id": 10047,
                              "name": "uint256",
                              "nodeType": "ElementaryTypeName",
                              "src": "21201:7:38",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "visibility": "internal"
                          }
                        ],
                        "id": 10055,
                        "initialValue": {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 10054,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 10049,
                            "name": "result",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 9914,
                            "src": "21214:6:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "*",
                          "rightExpression": {
                            "components": [
                              {
                                "commonType": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                "id": 10052,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "id": 10050,
                                  "name": "y",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 9902,
                                  "src": "21224:1:38",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "&",
                                "rightExpression": {
                                  "hexValue": "30784646464646464646464646464646464646464646464646464646464646464646",
                                  "id": 10051,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "21228:34:38",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_340282366920938463463374607431768211455_by_1",
                                    "typeString": "int_const 3402...(31 digits omitted)...1455"
                                  },
                                  "value": "0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
                                },
                                "src": "21224:38:38",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "id": 10053,
                            "isConstant": false,
                            "isInlineArray": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "TupleExpression",
                            "src": "21223:40:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "21214:49:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "21201:62:38"
                      },
                      {
                        "assignments": [
                          10057
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 10057,
                            "mutability": "mutable",
                            "name": "xh",
                            "nodeType": "VariableDeclaration",
                            "scope": 10112,
                            "src": "21272:10:38",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "typeName": {
                              "id": 10056,
                              "name": "uint256",
                              "nodeType": "ElementaryTypeName",
                              "src": "21272:7:38",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "visibility": "internal"
                          }
                        ],
                        "id": 10061,
                        "initialValue": {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 10060,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 10058,
                            "name": "x",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 9900,
                            "src": "21285:1:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": ">>",
                          "rightExpression": {
                            "hexValue": "313932",
                            "id": 10059,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "21290:3:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_192_by_1",
                              "typeString": "int_const 192"
                            },
                            "value": "192"
                          },
                          "src": "21285:8:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "21272:21:38"
                      },
                      {
                        "assignments": [
                          10063
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 10063,
                            "mutability": "mutable",
                            "name": "xl",
                            "nodeType": "VariableDeclaration",
                            "scope": 10112,
                            "src": "21301:10:38",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "typeName": {
                              "id": 10062,
                              "name": "uint256",
                              "nodeType": "ElementaryTypeName",
                              "src": "21301:7:38",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "visibility": "internal"
                          }
                        ],
                        "id": 10067,
                        "initialValue": {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 10066,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 10064,
                            "name": "x",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 9900,
                            "src": "21314:1:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "<<",
                          "rightExpression": {
                            "hexValue": "3634",
                            "id": 10065,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "21319:2:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_64_by_1",
                              "typeString": "int_const 64"
                            },
                            "value": "64"
                          },
                          "src": "21314:7:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "21301:20:38"
                      },
                      {
                        "condition": {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 10070,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 10068,
                            "name": "xl",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 10063,
                            "src": "21334:2:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "<",
                          "rightExpression": {
                            "id": 10069,
                            "name": "lo",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 10048,
                            "src": "21339:2:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "21334:7:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "id": 10075,
                        "nodeType": "IfStatement",
                        "src": "21330:20:38",
                        "trueBody": {
                          "expression": {
                            "id": 10073,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftHandSide": {
                              "id": 10071,
                              "name": "xh",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 10057,
                              "src": "21343:2:38",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "Assignment",
                            "operator": "-=",
                            "rightHandSide": {
                              "hexValue": "31",
                              "id": 10072,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "21349:1:38",
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_1_by_1",
                                "typeString": "int_const 1"
                              },
                              "value": "1"
                            },
                            "src": "21343:7:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "id": 10074,
                          "nodeType": "ExpressionStatement",
                          "src": "21343:7:38"
                        }
                      },
                      {
                        "expression": {
                          "id": 10078,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "id": 10076,
                            "name": "xl",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 10063,
                            "src": "21358:2:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "-=",
                          "rightHandSide": {
                            "id": 10077,
                            "name": "lo",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 10048,
                            "src": "21364:2:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "21358:8:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 10079,
                        "nodeType": "ExpressionStatement",
                        "src": "21358:8:38"
                      },
                      {
                        "expression": {
                          "id": 10084,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "id": 10080,
                            "name": "lo",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 10048,
                            "src": "21411:2:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 10083,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "id": 10081,
                              "name": "hi",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 10039,
                              "src": "21416:2:38",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "<<",
                            "rightExpression": {
                              "hexValue": "313238",
                              "id": 10082,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "21422:3:38",
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_128_by_1",
                                "typeString": "int_const 128"
                              },
                              "value": "128"
                            },
                            "src": "21416:9:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "21411:14:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 10085,
                        "nodeType": "ExpressionStatement",
                        "src": "21411:14:38"
                      },
                      {
                        "condition": {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 10088,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 10086,
                            "name": "xl",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 10063,
                            "src": "21437:2:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "<",
                          "rightExpression": {
                            "id": 10087,
                            "name": "lo",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 10048,
                            "src": "21442:2:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "21437:7:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "id": 10093,
                        "nodeType": "IfStatement",
                        "src": "21433:20:38",
                        "trueBody": {
                          "expression": {
                            "id": 10091,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftHandSide": {
                              "id": 10089,
                              "name": "xh",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 10057,
                              "src": "21446:2:38",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "Assignment",
                            "operator": "-=",
                            "rightHandSide": {
                              "hexValue": "31",
                              "id": 10090,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "21452:1:38",
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_1_by_1",
                                "typeString": "int_const 1"
                              },
                              "value": "1"
                            },
                            "src": "21446:7:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "id": 10092,
                          "nodeType": "ExpressionStatement",
                          "src": "21446:7:38"
                        }
                      },
                      {
                        "expression": {
                          "id": 10096,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "id": 10094,
                            "name": "xl",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 10063,
                            "src": "21461:2:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "-=",
                          "rightHandSide": {
                            "id": 10095,
                            "name": "lo",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 10048,
                            "src": "21467:2:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "21461:8:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 10097,
                        "nodeType": "ExpressionStatement",
                        "src": "21461:8:38"
                      },
                      {
                        "expression": {
                          "arguments": [
                            {
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "id": 10103,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "id": 10099,
                                "name": "xh",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 10057,
                                "src": "21523:2:38",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "==",
                              "rightExpression": {
                                "commonType": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                "id": 10102,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "id": 10100,
                                  "name": "hi",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 10039,
                                  "src": "21529:2:38",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": ">>",
                                "rightExpression": {
                                  "hexValue": "313238",
                                  "id": 10101,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "21535:3:38",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_128_by_1",
                                    "typeString": "int_const 128"
                                  },
                                  "value": "128"
                                },
                                "src": "21529:9:38",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "src": "21523:15:38",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            ],
                            "id": 10098,
                            "name": "assert",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4294967293,
                            "src": "21515:6:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$",
                              "typeString": "function (bool) pure"
                            }
                          },
                          "id": 10104,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "21515:24:38",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 10105,
                        "nodeType": "ExpressionStatement",
                        "src": "21515:24:38"
                      },
                      {
                        "expression": {
                          "id": 10110,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "id": 10106,
                            "name": "result",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 9914,
                            "src": "21548:6:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "+=",
                          "rightHandSide": {
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 10109,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "id": 10107,
                              "name": "xl",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 10063,
                              "src": "21558:2:38",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "/",
                            "rightExpression": {
                              "id": 10108,
                              "name": "y",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 9902,
                              "src": "21563:1:38",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "src": "21558:6:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "21548:16:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 10111,
                        "nodeType": "ExpressionStatement",
                        "src": "21548:16:38"
                      }
                    ]
                  },
                  "id": 10113,
                  "nodeType": "IfStatement",
                  "src": "20566:1005:38",
                  "trueBody": {
                    "expression": {
                      "id": 9926,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftHandSide": {
                        "id": 9919,
                        "name": "result",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 9914,
                        "src": "20633:6:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "Assignment",
                      "operator": "=",
                      "rightHandSide": {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 9925,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "components": [
                            {
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "id": 9922,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "id": 9920,
                                "name": "x",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 9900,
                                "src": "20643:1:38",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "<<",
                              "rightExpression": {
                                "hexValue": "3634",
                                "id": 9921,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "20648:2:38",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_64_by_1",
                                  "typeString": "int_const 64"
                                },
                                "value": "64"
                              },
                              "src": "20643:7:38",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "id": 9923,
                          "isConstant": false,
                          "isInlineArray": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "TupleExpression",
                          "src": "20642:9:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "/",
                        "rightExpression": {
                          "id": 9924,
                          "name": "y",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 9902,
                          "src": "20654:1:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "20642:13:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "src": "20633:22:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 9927,
                    "nodeType": "ExpressionStatement",
                    "src": "20633:22:38"
                  }
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 10117,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "id": 10115,
                          "name": "result",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 9914,
                          "src": "21586:6:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "<=",
                        "rightExpression": {
                          "hexValue": "30784646464646464646464646464646464646464646464646464646464646464646",
                          "id": 10116,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "21596:34:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_340282366920938463463374607431768211455_by_1",
                            "typeString": "int_const 3402...(31 digits omitted)...1455"
                          },
                          "value": "0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
                        },
                        "src": "21586:44:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 10114,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        4294967278,
                        4294967278
                      ],
                      "referencedDeclaration": 4294967278,
                      "src": "21577:7:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 10118,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "21577:54:38",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 10119,
                  "nodeType": "ExpressionStatement",
                  "src": "21577:54:38"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 10122,
                        "name": "result",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 9914,
                        "src": "21653:6:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 10121,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "ElementaryTypeNameExpression",
                      "src": "21644:7:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_uint128_$",
                        "typeString": "type(uint128)"
                      },
                      "typeName": {
                        "id": 10120,
                        "name": "uint128",
                        "nodeType": "ElementaryTypeName",
                        "src": "21644:7:38",
                        "typeDescriptions": {}
                      }
                    },
                    "id": 10123,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "typeConversion",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "21644:16:38",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint128",
                      "typeString": "uint128"
                    }
                  },
                  "functionReturnParameters": 9906,
                  "id": 10124,
                  "nodeType": "Return",
                  "src": "21637:23:38"
                }
              ]
            },
            "documentation": {
              "id": 9898,
              "nodeType": "StructuredDocumentation",
              "src": "20147:297:38",
              "text": " Calculate x / y rounding towards zero, where x and y are unsigned 256-bit\n integer numbers.  Revert on overflow or when y is zero.\n @param x unsigned 256-bit integer number\n @param y unsigned 256-bit integer number\n @return unsigned 64.64-bit fixed point number"
            },
            "id": 10126,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "divuu",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 9903,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 9900,
                  "mutability": "mutable",
                  "name": "x",
                  "nodeType": "VariableDeclaration",
                  "scope": 10126,
                  "src": "20463:9:38",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 9899,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "20463:7:38",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 9902,
                  "mutability": "mutable",
                  "name": "y",
                  "nodeType": "VariableDeclaration",
                  "scope": 10126,
                  "src": "20474:9:38",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 9901,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "20474:7:38",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "20462:22:38"
            },
            "returnParameters": {
              "id": 9906,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 9905,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 10126,
                  "src": "20507:7:38",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint128",
                    "typeString": "uint128"
                  },
                  "typeName": {
                    "id": 9904,
                    "name": "uint128",
                    "nodeType": "ElementaryTypeName",
                    "src": "20507:7:38",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint128",
                      "typeString": "uint128"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "20506:9:38"
            },
            "scope": 10621,
            "src": "20447:1218:38",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "private"
          },
          {
            "body": {
              "id": 10415,
              "nodeType": "Block",
              "src": "22042:1656:38",
              "statements": [
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 10138,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 10136,
                      "name": "y",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 10131,
                      "src": "22052:1:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "hexValue": "30",
                      "id": 10137,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "22057:1:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "22052:6:38",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "condition": {
                      "commonType": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "id": 10143,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "id": 10141,
                        "name": "x",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 10129,
                        "src": "22116:1:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "==",
                      "rightExpression": {
                        "hexValue": "30",
                        "id": 10142,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "22121:1:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      },
                      "src": "22116:6:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "falseBody": {
                      "id": 10412,
                      "nodeType": "Block",
                      "src": "22143:1551:38",
                      "statements": [
                        {
                          "assignments": [
                            10147
                          ],
                          "declarations": [
                            {
                              "constant": false,
                              "id": 10147,
                              "mutability": "mutable",
                              "name": "msb",
                              "nodeType": "VariableDeclaration",
                              "scope": 10412,
                              "src": "22151:10:38",
                              "stateVariable": false,
                              "storageLocation": "default",
                              "typeDescriptions": {
                                "typeIdentifier": "t_int256",
                                "typeString": "int256"
                              },
                              "typeName": {
                                "id": 10146,
                                "name": "int256",
                                "nodeType": "ElementaryTypeName",
                                "src": "22151:6:38",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_int256",
                                  "typeString": "int256"
                                }
                              },
                              "visibility": "internal"
                            }
                          ],
                          "id": 10149,
                          "initialValue": {
                            "hexValue": "30",
                            "id": 10148,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "22164:1:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0"
                          },
                          "nodeType": "VariableDeclarationStatement",
                          "src": "22151:14:38"
                        },
                        {
                          "assignments": [
                            10151
                          ],
                          "declarations": [
                            {
                              "constant": false,
                              "id": 10151,
                              "mutability": "mutable",
                              "name": "xc",
                              "nodeType": "VariableDeclaration",
                              "scope": 10412,
                              "src": "22173:10:38",
                              "stateVariable": false,
                              "storageLocation": "default",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "typeName": {
                                "id": 10150,
                                "name": "uint256",
                                "nodeType": "ElementaryTypeName",
                                "src": "22173:7:38",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "visibility": "internal"
                            }
                          ],
                          "id": 10153,
                          "initialValue": {
                            "id": 10152,
                            "name": "x",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 10129,
                            "src": "22186:1:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "VariableDeclarationStatement",
                          "src": "22173:14:38"
                        },
                        {
                          "condition": {
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 10156,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "id": 10154,
                              "name": "xc",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 10151,
                              "src": "22199:2:38",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": ">=",
                            "rightExpression": {
                              "hexValue": "3078313030303030303030303030303030303030303030303030303030303030303030",
                              "id": 10155,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "22205:35:38",
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_340282366920938463463374607431768211456_by_1",
                                "typeString": "int_const 3402...(31 digits omitted)...1456"
                              },
                              "value": "0x100000000000000000000000000000000"
                            },
                            "src": "22199:41:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "id": 10166,
                          "nodeType": "IfStatement",
                          "src": "22195:74:38",
                          "trueBody": {
                            "id": 10165,
                            "nodeType": "Block",
                            "src": "22242:27:38",
                            "statements": [
                              {
                                "expression": {
                                  "id": 10159,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftHandSide": {
                                    "id": 10157,
                                    "name": "xc",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 10151,
                                    "src": "22244:2:38",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "nodeType": "Assignment",
                                  "operator": ">>=",
                                  "rightHandSide": {
                                    "hexValue": "313238",
                                    "id": 10158,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "number",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "22251:3:38",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_rational_128_by_1",
                                      "typeString": "int_const 128"
                                    },
                                    "value": "128"
                                  },
                                  "src": "22244:10:38",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "id": 10160,
                                "nodeType": "ExpressionStatement",
                                "src": "22244:10:38"
                              },
                              {
                                "expression": {
                                  "id": 10163,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftHandSide": {
                                    "id": 10161,
                                    "name": "msb",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 10147,
                                    "src": "22256:3:38",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_int256",
                                      "typeString": "int256"
                                    }
                                  },
                                  "nodeType": "Assignment",
                                  "operator": "+=",
                                  "rightHandSide": {
                                    "hexValue": "313238",
                                    "id": 10162,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "number",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "22263:3:38",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_rational_128_by_1",
                                      "typeString": "int_const 128"
                                    },
                                    "value": "128"
                                  },
                                  "src": "22256:10:38",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_int256",
                                    "typeString": "int256"
                                  }
                                },
                                "id": 10164,
                                "nodeType": "ExpressionStatement",
                                "src": "22256:10:38"
                              }
                            ]
                          }
                        },
                        {
                          "condition": {
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 10169,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "id": 10167,
                              "name": "xc",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 10151,
                              "src": "22280:2:38",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": ">=",
                            "rightExpression": {
                              "hexValue": "30783130303030303030303030303030303030",
                              "id": 10168,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "22286:19:38",
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_18446744073709551616_by_1",
                                "typeString": "int_const 18446744073709551616"
                              },
                              "value": "0x10000000000000000"
                            },
                            "src": "22280:25:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "id": 10179,
                          "nodeType": "IfStatement",
                          "src": "22276:56:38",
                          "trueBody": {
                            "id": 10178,
                            "nodeType": "Block",
                            "src": "22307:25:38",
                            "statements": [
                              {
                                "expression": {
                                  "id": 10172,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftHandSide": {
                                    "id": 10170,
                                    "name": "xc",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 10151,
                                    "src": "22309:2:38",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "nodeType": "Assignment",
                                  "operator": ">>=",
                                  "rightHandSide": {
                                    "hexValue": "3634",
                                    "id": 10171,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "number",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "22316:2:38",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_rational_64_by_1",
                                      "typeString": "int_const 64"
                                    },
                                    "value": "64"
                                  },
                                  "src": "22309:9:38",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "id": 10173,
                                "nodeType": "ExpressionStatement",
                                "src": "22309:9:38"
                              },
                              {
                                "expression": {
                                  "id": 10176,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftHandSide": {
                                    "id": 10174,
                                    "name": "msb",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 10147,
                                    "src": "22320:3:38",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_int256",
                                      "typeString": "int256"
                                    }
                                  },
                                  "nodeType": "Assignment",
                                  "operator": "+=",
                                  "rightHandSide": {
                                    "hexValue": "3634",
                                    "id": 10175,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "number",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "22327:2:38",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_rational_64_by_1",
                                      "typeString": "int_const 64"
                                    },
                                    "value": "64"
                                  },
                                  "src": "22320:9:38",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_int256",
                                    "typeString": "int256"
                                  }
                                },
                                "id": 10177,
                                "nodeType": "ExpressionStatement",
                                "src": "22320:9:38"
                              }
                            ]
                          }
                        },
                        {
                          "condition": {
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 10182,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "id": 10180,
                              "name": "xc",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 10151,
                              "src": "22343:2:38",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": ">=",
                            "rightExpression": {
                              "hexValue": "3078313030303030303030",
                              "id": 10181,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "22349:11:38",
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_4294967296_by_1",
                                "typeString": "int_const 4294967296"
                              },
                              "value": "0x100000000"
                            },
                            "src": "22343:17:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "id": 10192,
                          "nodeType": "IfStatement",
                          "src": "22339:48:38",
                          "trueBody": {
                            "id": 10191,
                            "nodeType": "Block",
                            "src": "22362:25:38",
                            "statements": [
                              {
                                "expression": {
                                  "id": 10185,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftHandSide": {
                                    "id": 10183,
                                    "name": "xc",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 10151,
                                    "src": "22364:2:38",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "nodeType": "Assignment",
                                  "operator": ">>=",
                                  "rightHandSide": {
                                    "hexValue": "3332",
                                    "id": 10184,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "number",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "22371:2:38",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_rational_32_by_1",
                                      "typeString": "int_const 32"
                                    },
                                    "value": "32"
                                  },
                                  "src": "22364:9:38",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "id": 10186,
                                "nodeType": "ExpressionStatement",
                                "src": "22364:9:38"
                              },
                              {
                                "expression": {
                                  "id": 10189,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftHandSide": {
                                    "id": 10187,
                                    "name": "msb",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 10147,
                                    "src": "22375:3:38",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_int256",
                                      "typeString": "int256"
                                    }
                                  },
                                  "nodeType": "Assignment",
                                  "operator": "+=",
                                  "rightHandSide": {
                                    "hexValue": "3332",
                                    "id": 10188,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "number",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "22382:2:38",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_rational_32_by_1",
                                      "typeString": "int_const 32"
                                    },
                                    "value": "32"
                                  },
                                  "src": "22375:9:38",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_int256",
                                    "typeString": "int256"
                                  }
                                },
                                "id": 10190,
                                "nodeType": "ExpressionStatement",
                                "src": "22375:9:38"
                              }
                            ]
                          }
                        },
                        {
                          "condition": {
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 10195,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "id": 10193,
                              "name": "xc",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 10151,
                              "src": "22398:2:38",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": ">=",
                            "rightExpression": {
                              "hexValue": "30783130303030",
                              "id": 10194,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "22404:7:38",
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_65536_by_1",
                                "typeString": "int_const 65536"
                              },
                              "value": "0x10000"
                            },
                            "src": "22398:13:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "id": 10205,
                          "nodeType": "IfStatement",
                          "src": "22394:44:38",
                          "trueBody": {
                            "id": 10204,
                            "nodeType": "Block",
                            "src": "22413:25:38",
                            "statements": [
                              {
                                "expression": {
                                  "id": 10198,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftHandSide": {
                                    "id": 10196,
                                    "name": "xc",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 10151,
                                    "src": "22415:2:38",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "nodeType": "Assignment",
                                  "operator": ">>=",
                                  "rightHandSide": {
                                    "hexValue": "3136",
                                    "id": 10197,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "number",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "22422:2:38",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_rational_16_by_1",
                                      "typeString": "int_const 16"
                                    },
                                    "value": "16"
                                  },
                                  "src": "22415:9:38",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "id": 10199,
                                "nodeType": "ExpressionStatement",
                                "src": "22415:9:38"
                              },
                              {
                                "expression": {
                                  "id": 10202,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftHandSide": {
                                    "id": 10200,
                                    "name": "msb",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 10147,
                                    "src": "22426:3:38",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_int256",
                                      "typeString": "int256"
                                    }
                                  },
                                  "nodeType": "Assignment",
                                  "operator": "+=",
                                  "rightHandSide": {
                                    "hexValue": "3136",
                                    "id": 10201,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "number",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "22433:2:38",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_rational_16_by_1",
                                      "typeString": "int_const 16"
                                    },
                                    "value": "16"
                                  },
                                  "src": "22426:9:38",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_int256",
                                    "typeString": "int256"
                                  }
                                },
                                "id": 10203,
                                "nodeType": "ExpressionStatement",
                                "src": "22426:9:38"
                              }
                            ]
                          }
                        },
                        {
                          "condition": {
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 10208,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "id": 10206,
                              "name": "xc",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 10151,
                              "src": "22449:2:38",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": ">=",
                            "rightExpression": {
                              "hexValue": "3078313030",
                              "id": 10207,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "22455:5:38",
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_256_by_1",
                                "typeString": "int_const 256"
                              },
                              "value": "0x100"
                            },
                            "src": "22449:11:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "id": 10218,
                          "nodeType": "IfStatement",
                          "src": "22445:40:38",
                          "trueBody": {
                            "id": 10217,
                            "nodeType": "Block",
                            "src": "22462:23:38",
                            "statements": [
                              {
                                "expression": {
                                  "id": 10211,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftHandSide": {
                                    "id": 10209,
                                    "name": "xc",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 10151,
                                    "src": "22464:2:38",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "nodeType": "Assignment",
                                  "operator": ">>=",
                                  "rightHandSide": {
                                    "hexValue": "38",
                                    "id": 10210,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "number",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "22471:1:38",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_rational_8_by_1",
                                      "typeString": "int_const 8"
                                    },
                                    "value": "8"
                                  },
                                  "src": "22464:8:38",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "id": 10212,
                                "nodeType": "ExpressionStatement",
                                "src": "22464:8:38"
                              },
                              {
                                "expression": {
                                  "id": 10215,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftHandSide": {
                                    "id": 10213,
                                    "name": "msb",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 10147,
                                    "src": "22474:3:38",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_int256",
                                      "typeString": "int256"
                                    }
                                  },
                                  "nodeType": "Assignment",
                                  "operator": "+=",
                                  "rightHandSide": {
                                    "hexValue": "38",
                                    "id": 10214,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "number",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "22481:1:38",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_rational_8_by_1",
                                      "typeString": "int_const 8"
                                    },
                                    "value": "8"
                                  },
                                  "src": "22474:8:38",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_int256",
                                    "typeString": "int256"
                                  }
                                },
                                "id": 10216,
                                "nodeType": "ExpressionStatement",
                                "src": "22474:8:38"
                              }
                            ]
                          }
                        },
                        {
                          "condition": {
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 10221,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "id": 10219,
                              "name": "xc",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 10151,
                              "src": "22496:2:38",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": ">=",
                            "rightExpression": {
                              "hexValue": "30783130",
                              "id": 10220,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "22502:4:38",
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_16_by_1",
                                "typeString": "int_const 16"
                              },
                              "value": "0x10"
                            },
                            "src": "22496:10:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "id": 10231,
                          "nodeType": "IfStatement",
                          "src": "22492:39:38",
                          "trueBody": {
                            "id": 10230,
                            "nodeType": "Block",
                            "src": "22508:23:38",
                            "statements": [
                              {
                                "expression": {
                                  "id": 10224,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftHandSide": {
                                    "id": 10222,
                                    "name": "xc",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 10151,
                                    "src": "22510:2:38",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "nodeType": "Assignment",
                                  "operator": ">>=",
                                  "rightHandSide": {
                                    "hexValue": "34",
                                    "id": 10223,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "number",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "22517:1:38",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_rational_4_by_1",
                                      "typeString": "int_const 4"
                                    },
                                    "value": "4"
                                  },
                                  "src": "22510:8:38",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "id": 10225,
                                "nodeType": "ExpressionStatement",
                                "src": "22510:8:38"
                              },
                              {
                                "expression": {
                                  "id": 10228,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftHandSide": {
                                    "id": 10226,
                                    "name": "msb",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 10147,
                                    "src": "22520:3:38",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_int256",
                                      "typeString": "int256"
                                    }
                                  },
                                  "nodeType": "Assignment",
                                  "operator": "+=",
                                  "rightHandSide": {
                                    "hexValue": "34",
                                    "id": 10227,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "number",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "22527:1:38",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_rational_4_by_1",
                                      "typeString": "int_const 4"
                                    },
                                    "value": "4"
                                  },
                                  "src": "22520:8:38",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_int256",
                                    "typeString": "int256"
                                  }
                                },
                                "id": 10229,
                                "nodeType": "ExpressionStatement",
                                "src": "22520:8:38"
                              }
                            ]
                          }
                        },
                        {
                          "condition": {
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 10234,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "id": 10232,
                              "name": "xc",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 10151,
                              "src": "22542:2:38",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": ">=",
                            "rightExpression": {
                              "hexValue": "307834",
                              "id": 10233,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "22548:3:38",
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_4_by_1",
                                "typeString": "int_const 4"
                              },
                              "value": "0x4"
                            },
                            "src": "22542:9:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "id": 10244,
                          "nodeType": "IfStatement",
                          "src": "22538:38:38",
                          "trueBody": {
                            "id": 10243,
                            "nodeType": "Block",
                            "src": "22553:23:38",
                            "statements": [
                              {
                                "expression": {
                                  "id": 10237,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftHandSide": {
                                    "id": 10235,
                                    "name": "xc",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 10151,
                                    "src": "22555:2:38",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "nodeType": "Assignment",
                                  "operator": ">>=",
                                  "rightHandSide": {
                                    "hexValue": "32",
                                    "id": 10236,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "number",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "22562:1:38",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_rational_2_by_1",
                                      "typeString": "int_const 2"
                                    },
                                    "value": "2"
                                  },
                                  "src": "22555:8:38",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "id": 10238,
                                "nodeType": "ExpressionStatement",
                                "src": "22555:8:38"
                              },
                              {
                                "expression": {
                                  "id": 10241,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftHandSide": {
                                    "id": 10239,
                                    "name": "msb",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 10147,
                                    "src": "22565:3:38",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_int256",
                                      "typeString": "int256"
                                    }
                                  },
                                  "nodeType": "Assignment",
                                  "operator": "+=",
                                  "rightHandSide": {
                                    "hexValue": "32",
                                    "id": 10240,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "number",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "22572:1:38",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_rational_2_by_1",
                                      "typeString": "int_const 2"
                                    },
                                    "value": "2"
                                  },
                                  "src": "22565:8:38",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_int256",
                                    "typeString": "int256"
                                  }
                                },
                                "id": 10242,
                                "nodeType": "ExpressionStatement",
                                "src": "22565:8:38"
                              }
                            ]
                          }
                        },
                        {
                          "condition": {
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 10247,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "id": 10245,
                              "name": "xc",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 10151,
                              "src": "22587:2:38",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": ">=",
                            "rightExpression": {
                              "hexValue": "307832",
                              "id": 10246,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "22593:3:38",
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_2_by_1",
                                "typeString": "int_const 2"
                              },
                              "value": "0x2"
                            },
                            "src": "22587:9:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "id": 10252,
                          "nodeType": "IfStatement",
                          "src": "22583:23:38",
                          "trueBody": {
                            "expression": {
                              "id": 10250,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftHandSide": {
                                "id": 10248,
                                "name": "msb",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 10147,
                                "src": "22598:3:38",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_int256",
                                  "typeString": "int256"
                                }
                              },
                              "nodeType": "Assignment",
                              "operator": "+=",
                              "rightHandSide": {
                                "hexValue": "31",
                                "id": 10249,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "22605:1:38",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_1_by_1",
                                  "typeString": "int_const 1"
                                },
                                "value": "1"
                              },
                              "src": "22598:8:38",
                              "typeDescriptions": {
                                "typeIdentifier": "t_int256",
                                "typeString": "int256"
                              }
                            },
                            "id": 10251,
                            "nodeType": "ExpressionStatement",
                            "src": "22598:8:38"
                          }
                        },
                        {
                          "assignments": [
                            10254
                          ],
                          "declarations": [
                            {
                              "constant": false,
                              "id": 10254,
                              "mutability": "mutable",
                              "name": "xe",
                              "nodeType": "VariableDeclaration",
                              "scope": 10412,
                              "src": "22647:9:38",
                              "stateVariable": false,
                              "storageLocation": "default",
                              "typeDescriptions": {
                                "typeIdentifier": "t_int256",
                                "typeString": "int256"
                              },
                              "typeName": {
                                "id": 10253,
                                "name": "int256",
                                "nodeType": "ElementaryTypeName",
                                "src": "22647:6:38",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_int256",
                                  "typeString": "int256"
                                }
                              },
                              "visibility": "internal"
                            }
                          ],
                          "id": 10258,
                          "initialValue": {
                            "commonType": {
                              "typeIdentifier": "t_int256",
                              "typeString": "int256"
                            },
                            "id": 10257,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "id": 10255,
                              "name": "msb",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 10147,
                              "src": "22659:3:38",
                              "typeDescriptions": {
                                "typeIdentifier": "t_int256",
                                "typeString": "int256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "-",
                            "rightExpression": {
                              "hexValue": "313237",
                              "id": 10256,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "22665:3:38",
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_127_by_1",
                                "typeString": "int_const 127"
                              },
                              "value": "127"
                            },
                            "src": "22659:9:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_int256",
                              "typeString": "int256"
                            }
                          },
                          "nodeType": "VariableDeclarationStatement",
                          "src": "22647:21:38"
                        },
                        {
                          "condition": {
                            "commonType": {
                              "typeIdentifier": "t_int256",
                              "typeString": "int256"
                            },
                            "id": 10261,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "id": 10259,
                              "name": "xe",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 10254,
                              "src": "22680:2:38",
                              "typeDescriptions": {
                                "typeIdentifier": "t_int256",
                                "typeString": "int256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": ">",
                            "rightExpression": {
                              "hexValue": "30",
                              "id": 10260,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "22685:1:38",
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              },
                              "value": "0"
                            },
                            "src": "22680:6:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "falseBody": {
                            "expression": {
                              "id": 10275,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftHandSide": {
                                "id": 10269,
                                "name": "x",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 10129,
                                "src": "22719:1:38",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "Assignment",
                              "operator": "<<=",
                              "rightHandSide": {
                                "arguments": [
                                  {
                                    "id": 10273,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "nodeType": "UnaryOperation",
                                    "operator": "-",
                                    "prefix": true,
                                    "src": "22734:3:38",
                                    "subExpression": {
                                      "id": 10272,
                                      "name": "xe",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 10254,
                                      "src": "22735:2:38",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_int256",
                                        "typeString": "int256"
                                      }
                                    },
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_int256",
                                      "typeString": "int256"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_int256",
                                      "typeString": "int256"
                                    }
                                  ],
                                  "id": 10271,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "22725:7:38",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_uint256_$",
                                    "typeString": "type(uint256)"
                                  },
                                  "typeName": {
                                    "id": 10270,
                                    "name": "uint256",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "22725:7:38",
                                    "typeDescriptions": {}
                                  }
                                },
                                "id": 10274,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "22725:13:38",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "src": "22719:19:38",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "id": 10276,
                            "nodeType": "ExpressionStatement",
                            "src": "22719:19:38"
                          },
                          "id": 10277,
                          "nodeType": "IfStatement",
                          "src": "22676:62:38",
                          "trueBody": {
                            "expression": {
                              "id": 10267,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftHandSide": {
                                "id": 10262,
                                "name": "x",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 10129,
                                "src": "22688:1:38",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "Assignment",
                              "operator": ">>=",
                              "rightHandSide": {
                                "arguments": [
                                  {
                                    "id": 10265,
                                    "name": "xe",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 10254,
                                    "src": "22703:2:38",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_int256",
                                      "typeString": "int256"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_int256",
                                      "typeString": "int256"
                                    }
                                  ],
                                  "id": 10264,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "22694:7:38",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_uint256_$",
                                    "typeString": "type(uint256)"
                                  },
                                  "typeName": {
                                    "id": 10263,
                                    "name": "uint256",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "22694:7:38",
                                    "typeDescriptions": {}
                                  }
                                },
                                "id": 10266,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "22694:12:38",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "src": "22688:18:38",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "id": 10268,
                            "nodeType": "ExpressionStatement",
                            "src": "22688:18:38"
                          }
                        },
                        {
                          "assignments": [
                            10279
                          ],
                          "declarations": [
                            {
                              "constant": false,
                              "id": 10279,
                              "mutability": "mutable",
                              "name": "result",
                              "nodeType": "VariableDeclaration",
                              "scope": 10412,
                              "src": "22747:14:38",
                              "stateVariable": false,
                              "storageLocation": "default",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "typeName": {
                                "id": 10278,
                                "name": "uint256",
                                "nodeType": "ElementaryTypeName",
                                "src": "22747:7:38",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "visibility": "internal"
                            }
                          ],
                          "id": 10281,
                          "initialValue": {
                            "hexValue": "30783830303030303030303030303030303030303030303030303030303030303030",
                            "id": 10280,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "22764:34:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_170141183460469231731687303715884105728_by_1",
                              "typeString": "int_const 1701...(31 digits omitted)...5728"
                            },
                            "value": "0x80000000000000000000000000000000"
                          },
                          "nodeType": "VariableDeclarationStatement",
                          "src": "22747:51:38"
                        },
                        {
                          "assignments": [
                            10283
                          ],
                          "declarations": [
                            {
                              "constant": false,
                              "id": 10283,
                              "mutability": "mutable",
                              "name": "re",
                              "nodeType": "VariableDeclaration",
                              "scope": 10412,
                              "src": "22806:9:38",
                              "stateVariable": false,
                              "storageLocation": "default",
                              "typeDescriptions": {
                                "typeIdentifier": "t_int256",
                                "typeString": "int256"
                              },
                              "typeName": {
                                "id": 10282,
                                "name": "int256",
                                "nodeType": "ElementaryTypeName",
                                "src": "22806:6:38",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_int256",
                                  "typeString": "int256"
                                }
                              },
                              "visibility": "internal"
                            }
                          ],
                          "id": 10285,
                          "initialValue": {
                            "hexValue": "30",
                            "id": 10284,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "22818:1:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0"
                          },
                          "nodeType": "VariableDeclarationStatement",
                          "src": "22806:13:38"
                        },
                        {
                          "body": {
                            "id": 10385,
                            "nodeType": "Block",
                            "src": "22842:731:38",
                            "statements": [
                              {
                                "condition": {
                                  "commonType": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "id": 10293,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftExpression": {
                                    "commonType": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    },
                                    "id": 10291,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "leftExpression": {
                                      "id": 10289,
                                      "name": "y",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 10131,
                                      "src": "22856:1:38",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "nodeType": "BinaryOperation",
                                    "operator": "&",
                                    "rightExpression": {
                                      "hexValue": "31",
                                      "id": 10290,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "number",
                                      "lValueRequested": false,
                                      "nodeType": "Literal",
                                      "src": "22860:1:38",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_rational_1_by_1",
                                        "typeString": "int_const 1"
                                      },
                                      "value": "1"
                                    },
                                    "src": "22856:5:38",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "nodeType": "BinaryOperation",
                                  "operator": ">",
                                  "rightExpression": {
                                    "hexValue": "30",
                                    "id": 10292,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "number",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "22864:1:38",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_rational_0_by_1",
                                      "typeString": "int_const 0"
                                    },
                                    "value": "0"
                                  },
                                  "src": "22856:9:38",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bool",
                                    "typeString": "bool"
                                  }
                                },
                                "falseBody": {
                                  "id": 10383,
                                  "nodeType": "Block",
                                  "src": "23231:334:38",
                                  "statements": [
                                    {
                                      "expression": {
                                        "id": 10343,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftHandSide": {
                                          "id": 10339,
                                          "name": "x",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 10129,
                                          "src": "23243:1:38",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        },
                                        "nodeType": "Assignment",
                                        "operator": "=",
                                        "rightHandSide": {
                                          "commonType": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          },
                                          "id": 10342,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "leftExpression": {
                                            "id": 10340,
                                            "name": "x",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 10129,
                                            "src": "23247:1:38",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_uint256",
                                              "typeString": "uint256"
                                            }
                                          },
                                          "nodeType": "BinaryOperation",
                                          "operator": "*",
                                          "rightExpression": {
                                            "id": 10341,
                                            "name": "x",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 10129,
                                            "src": "23251:1:38",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_uint256",
                                              "typeString": "uint256"
                                            }
                                          },
                                          "src": "23247:5:38",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        },
                                        "src": "23243:9:38",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      },
                                      "id": 10344,
                                      "nodeType": "ExpressionStatement",
                                      "src": "23243:9:38"
                                    },
                                    {
                                      "expression": {
                                        "id": 10347,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftHandSide": {
                                          "id": 10345,
                                          "name": "y",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 10131,
                                          "src": "23264:1:38",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        },
                                        "nodeType": "Assignment",
                                        "operator": ">>=",
                                        "rightHandSide": {
                                          "hexValue": "31",
                                          "id": 10346,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "kind": "number",
                                          "lValueRequested": false,
                                          "nodeType": "Literal",
                                          "src": "23270:1:38",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_rational_1_by_1",
                                            "typeString": "int_const 1"
                                          },
                                          "value": "1"
                                        },
                                        "src": "23264:7:38",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      },
                                      "id": 10348,
                                      "nodeType": "ExpressionStatement",
                                      "src": "23264:7:38"
                                    },
                                    {
                                      "expression": {
                                        "id": 10351,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftHandSide": {
                                          "id": 10349,
                                          "name": "xe",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 10254,
                                          "src": "23283:2:38",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_int256",
                                            "typeString": "int256"
                                          }
                                        },
                                        "nodeType": "Assignment",
                                        "operator": "<<=",
                                        "rightHandSide": {
                                          "hexValue": "31",
                                          "id": 10350,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "kind": "number",
                                          "lValueRequested": false,
                                          "nodeType": "Literal",
                                          "src": "23290:1:38",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_rational_1_by_1",
                                            "typeString": "int_const 1"
                                          },
                                          "value": "1"
                                        },
                                        "src": "23283:8:38",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_int256",
                                          "typeString": "int256"
                                        }
                                      },
                                      "id": 10352,
                                      "nodeType": "ExpressionStatement",
                                      "src": "23283:8:38"
                                    },
                                    {
                                      "condition": {
                                        "commonType": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        },
                                        "id": 10355,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftExpression": {
                                          "id": 10353,
                                          "name": "x",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 10129,
                                          "src": "23307:1:38",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        },
                                        "nodeType": "BinaryOperation",
                                        "operator": ">=",
                                        "rightExpression": {
                                          "hexValue": "307838303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030",
                                          "id": 10354,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "kind": "number",
                                          "lValueRequested": false,
                                          "nodeType": "Literal",
                                          "src": "23324:66:38",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_rational_57896044618658097711785492504343953926634992332820282019728792003956564819968_by_1",
                                            "typeString": "int_const 5789...(69 digits omitted)...9968"
                                          },
                                          "value": "0x8000000000000000000000000000000000000000000000000000000000000000"
                                        },
                                        "src": "23307:83:38",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_bool",
                                          "typeString": "bool"
                                        }
                                      },
                                      "falseBody": {
                                        "expression": {
                                          "id": 10367,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "leftHandSide": {
                                            "id": 10365,
                                            "name": "x",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 10129,
                                            "src": "23455:1:38",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_uint256",
                                              "typeString": "uint256"
                                            }
                                          },
                                          "nodeType": "Assignment",
                                          "operator": ">>=",
                                          "rightHandSide": {
                                            "hexValue": "313237",
                                            "id": 10366,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "number",
                                            "lValueRequested": false,
                                            "nodeType": "Literal",
                                            "src": "23461:3:38",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_rational_127_by_1",
                                              "typeString": "int_const 127"
                                            },
                                            "value": "127"
                                          },
                                          "src": "23455:9:38",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        },
                                        "id": 10368,
                                        "nodeType": "ExpressionStatement",
                                        "src": "23455:9:38"
                                      },
                                      "id": 10369,
                                      "nodeType": "IfStatement",
                                      "src": "23303:161:38",
                                      "trueBody": {
                                        "id": 10364,
                                        "nodeType": "Block",
                                        "src": "23392:57:38",
                                        "statements": [
                                          {
                                            "expression": {
                                              "id": 10358,
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": false,
                                              "lValueRequested": false,
                                              "leftHandSide": {
                                                "id": 10356,
                                                "name": "x",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 10129,
                                                "src": "23406:1:38",
                                                "typeDescriptions": {
                                                  "typeIdentifier": "t_uint256",
                                                  "typeString": "uint256"
                                                }
                                              },
                                              "nodeType": "Assignment",
                                              "operator": ">>=",
                                              "rightHandSide": {
                                                "hexValue": "313238",
                                                "id": 10357,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "kind": "number",
                                                "lValueRequested": false,
                                                "nodeType": "Literal",
                                                "src": "23412:3:38",
                                                "typeDescriptions": {
                                                  "typeIdentifier": "t_rational_128_by_1",
                                                  "typeString": "int_const 128"
                                                },
                                                "value": "128"
                                              },
                                              "src": "23406:9:38",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                              }
                                            },
                                            "id": 10359,
                                            "nodeType": "ExpressionStatement",
                                            "src": "23406:9:38"
                                          },
                                          {
                                            "expression": {
                                              "id": 10362,
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": false,
                                              "lValueRequested": false,
                                              "leftHandSide": {
                                                "id": 10360,
                                                "name": "xe",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 10254,
                                                "src": "23429:2:38",
                                                "typeDescriptions": {
                                                  "typeIdentifier": "t_int256",
                                                  "typeString": "int256"
                                                }
                                              },
                                              "nodeType": "Assignment",
                                              "operator": "+=",
                                              "rightHandSide": {
                                                "hexValue": "31",
                                                "id": 10361,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "kind": "number",
                                                "lValueRequested": false,
                                                "nodeType": "Literal",
                                                "src": "23435:1:38",
                                                "typeDescriptions": {
                                                  "typeIdentifier": "t_rational_1_by_1",
                                                  "typeString": "int_const 1"
                                                },
                                                "value": "1"
                                              },
                                              "src": "23429:7:38",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_int256",
                                                "typeString": "int256"
                                              }
                                            },
                                            "id": 10363,
                                            "nodeType": "ExpressionStatement",
                                            "src": "23429:7:38"
                                          }
                                        ]
                                      }
                                    },
                                    {
                                      "condition": {
                                        "commonType": {
                                          "typeIdentifier": "t_int256",
                                          "typeString": "int256"
                                        },
                                        "id": 10373,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftExpression": {
                                          "id": 10370,
                                          "name": "xe",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 10254,
                                          "src": "23480:2:38",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_int256",
                                            "typeString": "int256"
                                          }
                                        },
                                        "nodeType": "BinaryOperation",
                                        "operator": "<",
                                        "rightExpression": {
                                          "id": 10372,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "nodeType": "UnaryOperation",
                                          "operator": "-",
                                          "prefix": true,
                                          "src": "23485:4:38",
                                          "subExpression": {
                                            "hexValue": "313237",
                                            "id": 10371,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "number",
                                            "lValueRequested": false,
                                            "nodeType": "Literal",
                                            "src": "23486:3:38",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_rational_127_by_1",
                                              "typeString": "int_const 127"
                                            },
                                            "value": "127"
                                          },
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_rational_minus_127_by_1",
                                            "typeString": "int_const -127"
                                          }
                                        },
                                        "src": "23480:9:38",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_bool",
                                          "typeString": "bool"
                                        }
                                      },
                                      "id": 10376,
                                      "nodeType": "IfStatement",
                                      "src": "23476:23:38",
                                      "trueBody": {
                                        "expression": {
                                          "hexValue": "30",
                                          "id": 10374,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "kind": "number",
                                          "lValueRequested": false,
                                          "nodeType": "Literal",
                                          "src": "23498:1:38",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_rational_0_by_1",
                                            "typeString": "int_const 0"
                                          },
                                          "value": "0"
                                        },
                                        "functionReturnParameters": 10135,
                                        "id": 10375,
                                        "nodeType": "Return",
                                        "src": "23491:8:38"
                                      }
                                    },
                                    {
                                      "expression": {
                                        "arguments": [
                                          {
                                            "commonType": {
                                              "typeIdentifier": "t_int256",
                                              "typeString": "int256"
                                            },
                                            "id": 10380,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "leftExpression": {
                                              "id": 10378,
                                              "name": "xe",
                                              "nodeType": "Identifier",
                                              "overloadedDeclarations": [],
                                              "referencedDeclaration": 10254,
                                              "src": "23533:2:38",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_int256",
                                                "typeString": "int256"
                                              }
                                            },
                                            "nodeType": "BinaryOperation",
                                            "operator": "<",
                                            "rightExpression": {
                                              "hexValue": "313238",
                                              "id": 10379,
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "kind": "number",
                                              "lValueRequested": false,
                                              "nodeType": "Literal",
                                              "src": "23538:3:38",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_rational_128_by_1",
                                                "typeString": "int_const 128"
                                              },
                                              "value": "128"
                                            },
                                            "src": "23533:8:38",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_bool",
                                              "typeString": "bool"
                                            }
                                          }
                                        ],
                                        "expression": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_bool",
                                              "typeString": "bool"
                                            }
                                          ],
                                          "id": 10377,
                                          "name": "require",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [
                                            4294967278,
                                            4294967278
                                          ],
                                          "referencedDeclaration": 4294967278,
                                          "src": "23524:7:38",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                                            "typeString": "function (bool) pure"
                                          }
                                        },
                                        "id": 10381,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "23524:18:38",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_tuple$__$",
                                          "typeString": "tuple()"
                                        }
                                      },
                                      "id": 10382,
                                      "nodeType": "ExpressionStatement",
                                      "src": "23524:18:38"
                                    }
                                  ]
                                },
                                "id": 10384,
                                "nodeType": "IfStatement",
                                "src": "22852:713:38",
                                "trueBody": {
                                  "id": 10338,
                                  "nodeType": "Block",
                                  "src": "22867:358:38",
                                  "statements": [
                                    {
                                      "expression": {
                                        "id": 10298,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftHandSide": {
                                          "id": 10294,
                                          "name": "result",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 10279,
                                          "src": "22879:6:38",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        },
                                        "nodeType": "Assignment",
                                        "operator": "=",
                                        "rightHandSide": {
                                          "commonType": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          },
                                          "id": 10297,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "leftExpression": {
                                            "id": 10295,
                                            "name": "result",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 10279,
                                            "src": "22888:6:38",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_uint256",
                                              "typeString": "uint256"
                                            }
                                          },
                                          "nodeType": "BinaryOperation",
                                          "operator": "*",
                                          "rightExpression": {
                                            "id": 10296,
                                            "name": "x",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 10129,
                                            "src": "22897:1:38",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_uint256",
                                              "typeString": "uint256"
                                            }
                                          },
                                          "src": "22888:10:38",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        },
                                        "src": "22879:19:38",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      },
                                      "id": 10299,
                                      "nodeType": "ExpressionStatement",
                                      "src": "22879:19:38"
                                    },
                                    {
                                      "expression": {
                                        "id": 10302,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftHandSide": {
                                          "id": 10300,
                                          "name": "y",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 10131,
                                          "src": "22910:1:38",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        },
                                        "nodeType": "Assignment",
                                        "operator": "-=",
                                        "rightHandSide": {
                                          "hexValue": "31",
                                          "id": 10301,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "kind": "number",
                                          "lValueRequested": false,
                                          "nodeType": "Literal",
                                          "src": "22915:1:38",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_rational_1_by_1",
                                            "typeString": "int_const 1"
                                          },
                                          "value": "1"
                                        },
                                        "src": "22910:6:38",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      },
                                      "id": 10303,
                                      "nodeType": "ExpressionStatement",
                                      "src": "22910:6:38"
                                    },
                                    {
                                      "expression": {
                                        "id": 10306,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftHandSide": {
                                          "id": 10304,
                                          "name": "re",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 10283,
                                          "src": "22928:2:38",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_int256",
                                            "typeString": "int256"
                                          }
                                        },
                                        "nodeType": "Assignment",
                                        "operator": "+=",
                                        "rightHandSide": {
                                          "id": 10305,
                                          "name": "xe",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 10254,
                                          "src": "22934:2:38",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_int256",
                                            "typeString": "int256"
                                          }
                                        },
                                        "src": "22928:8:38",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_int256",
                                          "typeString": "int256"
                                        }
                                      },
                                      "id": 10307,
                                      "nodeType": "ExpressionStatement",
                                      "src": "22928:8:38"
                                    },
                                    {
                                      "condition": {
                                        "commonType": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        },
                                        "id": 10310,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftExpression": {
                                          "id": 10308,
                                          "name": "result",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 10279,
                                          "src": "22952:6:38",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        },
                                        "nodeType": "BinaryOperation",
                                        "operator": ">=",
                                        "rightExpression": {
                                          "hexValue": "307838303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030",
                                          "id": 10309,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "kind": "number",
                                          "lValueRequested": false,
                                          "nodeType": "Literal",
                                          "src": "22974:66:38",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_rational_57896044618658097711785492504343953926634992332820282019728792003956564819968_by_1",
                                            "typeString": "int_const 5789...(69 digits omitted)...9968"
                                          },
                                          "value": "0x8000000000000000000000000000000000000000000000000000000000000000"
                                        },
                                        "src": "22952:88:38",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_bool",
                                          "typeString": "bool"
                                        }
                                      },
                                      "falseBody": {
                                        "expression": {
                                          "id": 10322,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "leftHandSide": {
                                            "id": 10320,
                                            "name": "result",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 10279,
                                            "src": "23110:6:38",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_uint256",
                                              "typeString": "uint256"
                                            }
                                          },
                                          "nodeType": "Assignment",
                                          "operator": ">>=",
                                          "rightHandSide": {
                                            "hexValue": "313237",
                                            "id": 10321,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "number",
                                            "lValueRequested": false,
                                            "nodeType": "Literal",
                                            "src": "23121:3:38",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_rational_127_by_1",
                                              "typeString": "int_const 127"
                                            },
                                            "value": "127"
                                          },
                                          "src": "23110:14:38",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        },
                                        "id": 10323,
                                        "nodeType": "ExpressionStatement",
                                        "src": "23110:14:38"
                                      },
                                      "id": 10324,
                                      "nodeType": "IfStatement",
                                      "src": "22948:176:38",
                                      "trueBody": {
                                        "id": 10319,
                                        "nodeType": "Block",
                                        "src": "23042:62:38",
                                        "statements": [
                                          {
                                            "expression": {
                                              "id": 10313,
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": false,
                                              "lValueRequested": false,
                                              "leftHandSide": {
                                                "id": 10311,
                                                "name": "result",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 10279,
                                                "src": "23056:6:38",
                                                "typeDescriptions": {
                                                  "typeIdentifier": "t_uint256",
                                                  "typeString": "uint256"
                                                }
                                              },
                                              "nodeType": "Assignment",
                                              "operator": ">>=",
                                              "rightHandSide": {
                                                "hexValue": "313238",
                                                "id": 10312,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "kind": "number",
                                                "lValueRequested": false,
                                                "nodeType": "Literal",
                                                "src": "23067:3:38",
                                                "typeDescriptions": {
                                                  "typeIdentifier": "t_rational_128_by_1",
                                                  "typeString": "int_const 128"
                                                },
                                                "value": "128"
                                              },
                                              "src": "23056:14:38",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                              }
                                            },
                                            "id": 10314,
                                            "nodeType": "ExpressionStatement",
                                            "src": "23056:14:38"
                                          },
                                          {
                                            "expression": {
                                              "id": 10317,
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": false,
                                              "lValueRequested": false,
                                              "leftHandSide": {
                                                "id": 10315,
                                                "name": "re",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 10283,
                                                "src": "23084:2:38",
                                                "typeDescriptions": {
                                                  "typeIdentifier": "t_int256",
                                                  "typeString": "int256"
                                                }
                                              },
                                              "nodeType": "Assignment",
                                              "operator": "+=",
                                              "rightHandSide": {
                                                "hexValue": "31",
                                                "id": 10316,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "kind": "number",
                                                "lValueRequested": false,
                                                "nodeType": "Literal",
                                                "src": "23090:1:38",
                                                "typeDescriptions": {
                                                  "typeIdentifier": "t_rational_1_by_1",
                                                  "typeString": "int_const 1"
                                                },
                                                "value": "1"
                                              },
                                              "src": "23084:7:38",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_int256",
                                                "typeString": "int256"
                                              }
                                            },
                                            "id": 10318,
                                            "nodeType": "ExpressionStatement",
                                            "src": "23084:7:38"
                                          }
                                        ]
                                      }
                                    },
                                    {
                                      "condition": {
                                        "commonType": {
                                          "typeIdentifier": "t_int256",
                                          "typeString": "int256"
                                        },
                                        "id": 10328,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftExpression": {
                                          "id": 10325,
                                          "name": "re",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 10283,
                                          "src": "23140:2:38",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_int256",
                                            "typeString": "int256"
                                          }
                                        },
                                        "nodeType": "BinaryOperation",
                                        "operator": "<",
                                        "rightExpression": {
                                          "id": 10327,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "nodeType": "UnaryOperation",
                                          "operator": "-",
                                          "prefix": true,
                                          "src": "23145:4:38",
                                          "subExpression": {
                                            "hexValue": "313237",
                                            "id": 10326,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "number",
                                            "lValueRequested": false,
                                            "nodeType": "Literal",
                                            "src": "23146:3:38",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_rational_127_by_1",
                                              "typeString": "int_const 127"
                                            },
                                            "value": "127"
                                          },
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_rational_minus_127_by_1",
                                            "typeString": "int_const -127"
                                          }
                                        },
                                        "src": "23140:9:38",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_bool",
                                          "typeString": "bool"
                                        }
                                      },
                                      "id": 10331,
                                      "nodeType": "IfStatement",
                                      "src": "23136:23:38",
                                      "trueBody": {
                                        "expression": {
                                          "hexValue": "30",
                                          "id": 10329,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "kind": "number",
                                          "lValueRequested": false,
                                          "nodeType": "Literal",
                                          "src": "23158:1:38",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_rational_0_by_1",
                                            "typeString": "int_const 0"
                                          },
                                          "value": "0"
                                        },
                                        "functionReturnParameters": 10135,
                                        "id": 10330,
                                        "nodeType": "Return",
                                        "src": "23151:8:38"
                                      }
                                    },
                                    {
                                      "expression": {
                                        "arguments": [
                                          {
                                            "commonType": {
                                              "typeIdentifier": "t_int256",
                                              "typeString": "int256"
                                            },
                                            "id": 10335,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "leftExpression": {
                                              "id": 10333,
                                              "name": "re",
                                              "nodeType": "Identifier",
                                              "overloadedDeclarations": [],
                                              "referencedDeclaration": 10283,
                                              "src": "23193:2:38",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_int256",
                                                "typeString": "int256"
                                              }
                                            },
                                            "nodeType": "BinaryOperation",
                                            "operator": "<",
                                            "rightExpression": {
                                              "hexValue": "313238",
                                              "id": 10334,
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "kind": "number",
                                              "lValueRequested": false,
                                              "nodeType": "Literal",
                                              "src": "23198:3:38",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_rational_128_by_1",
                                                "typeString": "int_const 128"
                                              },
                                              "value": "128"
                                            },
                                            "src": "23193:8:38",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_bool",
                                              "typeString": "bool"
                                            }
                                          }
                                        ],
                                        "expression": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_bool",
                                              "typeString": "bool"
                                            }
                                          ],
                                          "id": 10332,
                                          "name": "require",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [
                                            4294967278,
                                            4294967278
                                          ],
                                          "referencedDeclaration": 4294967278,
                                          "src": "23184:7:38",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                                            "typeString": "function (bool) pure"
                                          }
                                        },
                                        "id": 10336,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "23184:18:38",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_tuple$__$",
                                          "typeString": "tuple()"
                                        }
                                      },
                                      "id": 10337,
                                      "nodeType": "ExpressionStatement",
                                      "src": "23184:18:38"
                                    }
                                  ]
                                }
                              }
                            ]
                          },
                          "condition": {
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 10288,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "id": 10286,
                              "name": "y",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 10131,
                              "src": "22835:1:38",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": ">",
                            "rightExpression": {
                              "hexValue": "30",
                              "id": 10287,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "22839:1:38",
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              },
                              "value": "0"
                            },
                            "src": "22835:5:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "id": 10386,
                          "nodeType": "WhileStatement",
                          "src": "22828:745:38"
                        },
                        {
                          "condition": {
                            "commonType": {
                              "typeIdentifier": "t_int256",
                              "typeString": "int256"
                            },
                            "id": 10389,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "id": 10387,
                              "name": "re",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 10283,
                              "src": "23585:2:38",
                              "typeDescriptions": {
                                "typeIdentifier": "t_int256",
                                "typeString": "int256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": ">",
                            "rightExpression": {
                              "hexValue": "30",
                              "id": 10388,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "23590:1:38",
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              },
                              "value": "0"
                            },
                            "src": "23585:6:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "falseBody": {
                            "condition": {
                              "commonType": {
                                "typeIdentifier": "t_int256",
                                "typeString": "int256"
                              },
                              "id": 10399,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "id": 10397,
                                "name": "re",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 10283,
                                "src": "23633:2:38",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_int256",
                                  "typeString": "int256"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "<",
                              "rightExpression": {
                                "hexValue": "30",
                                "id": 10398,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "23638:1:38",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_0_by_1",
                                  "typeString": "int_const 0"
                                },
                                "value": "0"
                              },
                              "src": "23633:6:38",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            "id": 10408,
                            "nodeType": "IfStatement",
                            "src": "23629:36:38",
                            "trueBody": {
                              "expression": {
                                "id": 10406,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "id": 10400,
                                  "name": "result",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 10279,
                                  "src": "23641:6:38",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": ">>=",
                                "rightHandSide": {
                                  "arguments": [
                                    {
                                      "id": 10404,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "nodeType": "UnaryOperation",
                                      "operator": "-",
                                      "prefix": true,
                                      "src": "23661:3:38",
                                      "subExpression": {
                                        "id": 10403,
                                        "name": "re",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 10283,
                                        "src": "23662:2:38",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_int256",
                                          "typeString": "int256"
                                        }
                                      },
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_int256",
                                        "typeString": "int256"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_int256",
                                        "typeString": "int256"
                                      }
                                    ],
                                    "id": 10402,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "lValueRequested": false,
                                    "nodeType": "ElementaryTypeNameExpression",
                                    "src": "23652:7:38",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_uint256_$",
                                      "typeString": "type(uint256)"
                                    },
                                    "typeName": {
                                      "id": 10401,
                                      "name": "uint256",
                                      "nodeType": "ElementaryTypeName",
                                      "src": "23652:7:38",
                                      "typeDescriptions": {}
                                    }
                                  },
                                  "id": 10405,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "typeConversion",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "23652:13:38",
                                  "tryCall": false,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "src": "23641:24:38",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 10407,
                              "nodeType": "ExpressionStatement",
                              "src": "23641:24:38"
                            }
                          },
                          "id": 10409,
                          "nodeType": "IfStatement",
                          "src": "23581:84:38",
                          "trueBody": {
                            "expression": {
                              "id": 10395,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftHandSide": {
                                "id": 10390,
                                "name": "result",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 10279,
                                "src": "23593:6:38",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "Assignment",
                              "operator": "<<=",
                              "rightHandSide": {
                                "arguments": [
                                  {
                                    "id": 10393,
                                    "name": "re",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 10283,
                                    "src": "23613:2:38",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_int256",
                                      "typeString": "int256"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_int256",
                                      "typeString": "int256"
                                    }
                                  ],
                                  "id": 10392,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "23604:7:38",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_uint256_$",
                                    "typeString": "type(uint256)"
                                  },
                                  "typeName": {
                                    "id": 10391,
                                    "name": "uint256",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "23604:7:38",
                                    "typeDescriptions": {}
                                  }
                                },
                                "id": 10394,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "23604:12:38",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "src": "23593:23:38",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "id": 10396,
                            "nodeType": "ExpressionStatement",
                            "src": "23593:23:38"
                          }
                        },
                        {
                          "expression": {
                            "id": 10410,
                            "name": "result",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 10279,
                            "src": "23681:6:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "functionReturnParameters": 10135,
                          "id": 10411,
                          "nodeType": "Return",
                          "src": "23674:13:38"
                        }
                      ]
                    },
                    "id": 10413,
                    "nodeType": "IfStatement",
                    "src": "22112:1582:38",
                    "trueBody": {
                      "expression": {
                        "hexValue": "30",
                        "id": 10144,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "22131:1:38",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      },
                      "functionReturnParameters": 10135,
                      "id": 10145,
                      "nodeType": "Return",
                      "src": "22124:8:38"
                    }
                  },
                  "id": 10414,
                  "nodeType": "IfStatement",
                  "src": "22048:1646:38",
                  "trueBody": {
                    "expression": {
                      "hexValue": "30783830303030303030303030303030303030303030303030303030303030303030",
                      "id": 10139,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "22067:34:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_170141183460469231731687303715884105728_by_1",
                        "typeString": "int_const 1701...(31 digits omitted)...5728"
                      },
                      "value": "0x80000000000000000000000000000000"
                    },
                    "functionReturnParameters": 10135,
                    "id": 10140,
                    "nodeType": "Return",
                    "src": "22060:41:38"
                  }
                }
              ]
            },
            "documentation": {
              "id": 10127,
              "nodeType": "StructuredDocumentation",
              "src": "21669:302:38",
              "text": " Calculate x^y assuming 0^0 is 1, where x is unsigned 129.127 fixed point\n number and y is unsigned 256-bit integer number.  Revert on overflow.\n @param x unsigned 129.127-bit fixed point number\n @param y uint256 value\n @return unsigned 129.127-bit fixed point number"
            },
            "id": 10416,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "powu",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 10132,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10129,
                  "mutability": "mutable",
                  "name": "x",
                  "nodeType": "VariableDeclaration",
                  "scope": 10416,
                  "src": "21989:9:38",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 10128,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "21989:7:38",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 10131,
                  "mutability": "mutable",
                  "name": "y",
                  "nodeType": "VariableDeclaration",
                  "scope": 10416,
                  "src": "22000:9:38",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 10130,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "22000:7:38",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "21988:22:38"
            },
            "returnParameters": {
              "id": 10135,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10134,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 10416,
                  "src": "22033:7:38",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 10133,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "22033:7:38",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "22032:9:38"
            },
            "scope": 10621,
            "src": "21974:1724:38",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "private"
          },
          {
            "body": {
              "id": 10619,
              "nodeType": "Block",
              "src": "23956:759:38",
              "statements": [
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 10426,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 10424,
                      "name": "x",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 10419,
                      "src": "23966:1:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "hexValue": "30",
                      "id": 10425,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "23971:1:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "23966:6:38",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "id": 10617,
                    "nodeType": "Block",
                    "src": "23993:718:38",
                    "statements": [
                      {
                        "assignments": [
                          10430
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 10430,
                            "mutability": "mutable",
                            "name": "xx",
                            "nodeType": "VariableDeclaration",
                            "scope": 10617,
                            "src": "24001:10:38",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "typeName": {
                              "id": 10429,
                              "name": "uint256",
                              "nodeType": "ElementaryTypeName",
                              "src": "24001:7:38",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "visibility": "internal"
                          }
                        ],
                        "id": 10432,
                        "initialValue": {
                          "id": 10431,
                          "name": "x",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 10419,
                          "src": "24014:1:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "24001:14:38"
                      },
                      {
                        "assignments": [
                          10434
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 10434,
                            "mutability": "mutable",
                            "name": "r",
                            "nodeType": "VariableDeclaration",
                            "scope": 10617,
                            "src": "24023:9:38",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "typeName": {
                              "id": 10433,
                              "name": "uint256",
                              "nodeType": "ElementaryTypeName",
                              "src": "24023:7:38",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "visibility": "internal"
                          }
                        ],
                        "id": 10436,
                        "initialValue": {
                          "hexValue": "31",
                          "id": 10435,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "24035:1:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_1_by_1",
                            "typeString": "int_const 1"
                          },
                          "value": "1"
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "24023:13:38"
                      },
                      {
                        "condition": {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 10439,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 10437,
                            "name": "xx",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 10430,
                            "src": "24048:2:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": ">=",
                          "rightExpression": {
                            "hexValue": "3078313030303030303030303030303030303030303030303030303030303030303030",
                            "id": 10438,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "24054:35:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_340282366920938463463374607431768211456_by_1",
                              "typeString": "int_const 3402...(31 digits omitted)...1456"
                            },
                            "value": "0x100000000000000000000000000000000"
                          },
                          "src": "24048:41:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "id": 10449,
                        "nodeType": "IfStatement",
                        "src": "24044:72:38",
                        "trueBody": {
                          "id": 10448,
                          "nodeType": "Block",
                          "src": "24091:25:38",
                          "statements": [
                            {
                              "expression": {
                                "id": 10442,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "id": 10440,
                                  "name": "xx",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 10430,
                                  "src": "24093:2:38",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": ">>=",
                                "rightHandSide": {
                                  "hexValue": "313238",
                                  "id": 10441,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "24100:3:38",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_128_by_1",
                                    "typeString": "int_const 128"
                                  },
                                  "value": "128"
                                },
                                "src": "24093:10:38",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 10443,
                              "nodeType": "ExpressionStatement",
                              "src": "24093:10:38"
                            },
                            {
                              "expression": {
                                "id": 10446,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "id": 10444,
                                  "name": "r",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 10434,
                                  "src": "24105:1:38",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "<<=",
                                "rightHandSide": {
                                  "hexValue": "3634",
                                  "id": 10445,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "24111:2:38",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_64_by_1",
                                    "typeString": "int_const 64"
                                  },
                                  "value": "64"
                                },
                                "src": "24105:8:38",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 10447,
                              "nodeType": "ExpressionStatement",
                              "src": "24105:8:38"
                            }
                          ]
                        }
                      },
                      {
                        "condition": {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 10452,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 10450,
                            "name": "xx",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 10430,
                            "src": "24127:2:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": ">=",
                          "rightExpression": {
                            "hexValue": "30783130303030303030303030303030303030",
                            "id": 10451,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "24133:19:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_18446744073709551616_by_1",
                              "typeString": "int_const 18446744073709551616"
                            },
                            "value": "0x10000000000000000"
                          },
                          "src": "24127:25:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "id": 10462,
                        "nodeType": "IfStatement",
                        "src": "24123:55:38",
                        "trueBody": {
                          "id": 10461,
                          "nodeType": "Block",
                          "src": "24154:24:38",
                          "statements": [
                            {
                              "expression": {
                                "id": 10455,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "id": 10453,
                                  "name": "xx",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 10430,
                                  "src": "24156:2:38",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": ">>=",
                                "rightHandSide": {
                                  "hexValue": "3634",
                                  "id": 10454,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "24163:2:38",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_64_by_1",
                                    "typeString": "int_const 64"
                                  },
                                  "value": "64"
                                },
                                "src": "24156:9:38",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 10456,
                              "nodeType": "ExpressionStatement",
                              "src": "24156:9:38"
                            },
                            {
                              "expression": {
                                "id": 10459,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "id": 10457,
                                  "name": "r",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 10434,
                                  "src": "24167:1:38",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "<<=",
                                "rightHandSide": {
                                  "hexValue": "3332",
                                  "id": 10458,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "24173:2:38",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_32_by_1",
                                    "typeString": "int_const 32"
                                  },
                                  "value": "32"
                                },
                                "src": "24167:8:38",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 10460,
                              "nodeType": "ExpressionStatement",
                              "src": "24167:8:38"
                            }
                          ]
                        }
                      },
                      {
                        "condition": {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 10465,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 10463,
                            "name": "xx",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 10430,
                            "src": "24189:2:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": ">=",
                          "rightExpression": {
                            "hexValue": "3078313030303030303030",
                            "id": 10464,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "24195:11:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_4294967296_by_1",
                              "typeString": "int_const 4294967296"
                            },
                            "value": "0x100000000"
                          },
                          "src": "24189:17:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "id": 10475,
                        "nodeType": "IfStatement",
                        "src": "24185:47:38",
                        "trueBody": {
                          "id": 10474,
                          "nodeType": "Block",
                          "src": "24208:24:38",
                          "statements": [
                            {
                              "expression": {
                                "id": 10468,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "id": 10466,
                                  "name": "xx",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 10430,
                                  "src": "24210:2:38",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": ">>=",
                                "rightHandSide": {
                                  "hexValue": "3332",
                                  "id": 10467,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "24217:2:38",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_32_by_1",
                                    "typeString": "int_const 32"
                                  },
                                  "value": "32"
                                },
                                "src": "24210:9:38",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 10469,
                              "nodeType": "ExpressionStatement",
                              "src": "24210:9:38"
                            },
                            {
                              "expression": {
                                "id": 10472,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "id": 10470,
                                  "name": "r",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 10434,
                                  "src": "24221:1:38",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "<<=",
                                "rightHandSide": {
                                  "hexValue": "3136",
                                  "id": 10471,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "24227:2:38",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_16_by_1",
                                    "typeString": "int_const 16"
                                  },
                                  "value": "16"
                                },
                                "src": "24221:8:38",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 10473,
                              "nodeType": "ExpressionStatement",
                              "src": "24221:8:38"
                            }
                          ]
                        }
                      },
                      {
                        "condition": {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 10478,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 10476,
                            "name": "xx",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 10430,
                            "src": "24243:2:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": ">=",
                          "rightExpression": {
                            "hexValue": "30783130303030",
                            "id": 10477,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "24249:7:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_65536_by_1",
                              "typeString": "int_const 65536"
                            },
                            "value": "0x10000"
                          },
                          "src": "24243:13:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "id": 10488,
                        "nodeType": "IfStatement",
                        "src": "24239:42:38",
                        "trueBody": {
                          "id": 10487,
                          "nodeType": "Block",
                          "src": "24258:23:38",
                          "statements": [
                            {
                              "expression": {
                                "id": 10481,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "id": 10479,
                                  "name": "xx",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 10430,
                                  "src": "24260:2:38",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": ">>=",
                                "rightHandSide": {
                                  "hexValue": "3136",
                                  "id": 10480,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "24267:2:38",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_16_by_1",
                                    "typeString": "int_const 16"
                                  },
                                  "value": "16"
                                },
                                "src": "24260:9:38",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 10482,
                              "nodeType": "ExpressionStatement",
                              "src": "24260:9:38"
                            },
                            {
                              "expression": {
                                "id": 10485,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "id": 10483,
                                  "name": "r",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 10434,
                                  "src": "24271:1:38",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "<<=",
                                "rightHandSide": {
                                  "hexValue": "38",
                                  "id": 10484,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "24277:1:38",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_8_by_1",
                                    "typeString": "int_const 8"
                                  },
                                  "value": "8"
                                },
                                "src": "24271:7:38",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 10486,
                              "nodeType": "ExpressionStatement",
                              "src": "24271:7:38"
                            }
                          ]
                        }
                      },
                      {
                        "condition": {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 10491,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 10489,
                            "name": "xx",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 10430,
                            "src": "24292:2:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": ">=",
                          "rightExpression": {
                            "hexValue": "3078313030",
                            "id": 10490,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "24298:5:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_256_by_1",
                              "typeString": "int_const 256"
                            },
                            "value": "0x100"
                          },
                          "src": "24292:11:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "id": 10501,
                        "nodeType": "IfStatement",
                        "src": "24288:39:38",
                        "trueBody": {
                          "id": 10500,
                          "nodeType": "Block",
                          "src": "24305:22:38",
                          "statements": [
                            {
                              "expression": {
                                "id": 10494,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "id": 10492,
                                  "name": "xx",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 10430,
                                  "src": "24307:2:38",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": ">>=",
                                "rightHandSide": {
                                  "hexValue": "38",
                                  "id": 10493,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "24314:1:38",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_8_by_1",
                                    "typeString": "int_const 8"
                                  },
                                  "value": "8"
                                },
                                "src": "24307:8:38",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 10495,
                              "nodeType": "ExpressionStatement",
                              "src": "24307:8:38"
                            },
                            {
                              "expression": {
                                "id": 10498,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "id": 10496,
                                  "name": "r",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 10434,
                                  "src": "24317:1:38",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "<<=",
                                "rightHandSide": {
                                  "hexValue": "34",
                                  "id": 10497,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "24323:1:38",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_4_by_1",
                                    "typeString": "int_const 4"
                                  },
                                  "value": "4"
                                },
                                "src": "24317:7:38",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 10499,
                              "nodeType": "ExpressionStatement",
                              "src": "24317:7:38"
                            }
                          ]
                        }
                      },
                      {
                        "condition": {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 10504,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 10502,
                            "name": "xx",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 10430,
                            "src": "24338:2:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": ">=",
                          "rightExpression": {
                            "hexValue": "30783130",
                            "id": 10503,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "24344:4:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_16_by_1",
                              "typeString": "int_const 16"
                            },
                            "value": "0x10"
                          },
                          "src": "24338:10:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "id": 10514,
                        "nodeType": "IfStatement",
                        "src": "24334:38:38",
                        "trueBody": {
                          "id": 10513,
                          "nodeType": "Block",
                          "src": "24350:22:38",
                          "statements": [
                            {
                              "expression": {
                                "id": 10507,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "id": 10505,
                                  "name": "xx",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 10430,
                                  "src": "24352:2:38",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": ">>=",
                                "rightHandSide": {
                                  "hexValue": "34",
                                  "id": 10506,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "24359:1:38",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_4_by_1",
                                    "typeString": "int_const 4"
                                  },
                                  "value": "4"
                                },
                                "src": "24352:8:38",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 10508,
                              "nodeType": "ExpressionStatement",
                              "src": "24352:8:38"
                            },
                            {
                              "expression": {
                                "id": 10511,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "id": 10509,
                                  "name": "r",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 10434,
                                  "src": "24362:1:38",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "<<=",
                                "rightHandSide": {
                                  "hexValue": "32",
                                  "id": 10510,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "24368:1:38",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_2_by_1",
                                    "typeString": "int_const 2"
                                  },
                                  "value": "2"
                                },
                                "src": "24362:7:38",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 10512,
                              "nodeType": "ExpressionStatement",
                              "src": "24362:7:38"
                            }
                          ]
                        }
                      },
                      {
                        "condition": {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 10517,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 10515,
                            "name": "xx",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 10430,
                            "src": "24383:2:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": ">=",
                          "rightExpression": {
                            "hexValue": "307838",
                            "id": 10516,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "24389:3:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_8_by_1",
                              "typeString": "int_const 8"
                            },
                            "value": "0x8"
                          },
                          "src": "24383:9:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "id": 10523,
                        "nodeType": "IfStatement",
                        "src": "24379:27:38",
                        "trueBody": {
                          "id": 10522,
                          "nodeType": "Block",
                          "src": "24394:12:38",
                          "statements": [
                            {
                              "expression": {
                                "id": 10520,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "id": 10518,
                                  "name": "r",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 10434,
                                  "src": "24396:1:38",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "<<=",
                                "rightHandSide": {
                                  "hexValue": "31",
                                  "id": 10519,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "24402:1:38",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_1_by_1",
                                    "typeString": "int_const 1"
                                  },
                                  "value": "1"
                                },
                                "src": "24396:7:38",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 10521,
                              "nodeType": "ExpressionStatement",
                              "src": "24396:7:38"
                            }
                          ]
                        }
                      },
                      {
                        "expression": {
                          "id": 10533,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "id": 10524,
                            "name": "r",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 10434,
                            "src": "24413:1:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 10532,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "components": [
                                {
                                  "commonType": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "id": 10529,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftExpression": {
                                    "id": 10525,
                                    "name": "r",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 10434,
                                    "src": "24418:1:38",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "nodeType": "BinaryOperation",
                                  "operator": "+",
                                  "rightExpression": {
                                    "commonType": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    },
                                    "id": 10528,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "leftExpression": {
                                      "id": 10526,
                                      "name": "x",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 10419,
                                      "src": "24422:1:38",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "nodeType": "BinaryOperation",
                                    "operator": "/",
                                    "rightExpression": {
                                      "id": 10527,
                                      "name": "r",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 10434,
                                      "src": "24426:1:38",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "src": "24422:5:38",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "src": "24418:9:38",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                }
                              ],
                              "id": 10530,
                              "isConstant": false,
                              "isInlineArray": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "TupleExpression",
                              "src": "24417:11:38",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": ">>",
                            "rightExpression": {
                              "hexValue": "31",
                              "id": 10531,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "24432:1:38",
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_1_by_1",
                                "typeString": "int_const 1"
                              },
                              "value": "1"
                            },
                            "src": "24417:16:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "24413:20:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 10534,
                        "nodeType": "ExpressionStatement",
                        "src": "24413:20:38"
                      },
                      {
                        "expression": {
                          "id": 10544,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "id": 10535,
                            "name": "r",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 10434,
                            "src": "24441:1:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 10543,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "components": [
                                {
                                  "commonType": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "id": 10540,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftExpression": {
                                    "id": 10536,
                                    "name": "r",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 10434,
                                    "src": "24446:1:38",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "nodeType": "BinaryOperation",
                                  "operator": "+",
                                  "rightExpression": {
                                    "commonType": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    },
                                    "id": 10539,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "leftExpression": {
                                      "id": 10537,
                                      "name": "x",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 10419,
                                      "src": "24450:1:38",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "nodeType": "BinaryOperation",
                                    "operator": "/",
                                    "rightExpression": {
                                      "id": 10538,
                                      "name": "r",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 10434,
                                      "src": "24454:1:38",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "src": "24450:5:38",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "src": "24446:9:38",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                }
                              ],
                              "id": 10541,
                              "isConstant": false,
                              "isInlineArray": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "TupleExpression",
                              "src": "24445:11:38",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": ">>",
                            "rightExpression": {
                              "hexValue": "31",
                              "id": 10542,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "24460:1:38",
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_1_by_1",
                                "typeString": "int_const 1"
                              },
                              "value": "1"
                            },
                            "src": "24445:16:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "24441:20:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 10545,
                        "nodeType": "ExpressionStatement",
                        "src": "24441:20:38"
                      },
                      {
                        "expression": {
                          "id": 10555,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "id": 10546,
                            "name": "r",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 10434,
                            "src": "24469:1:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 10554,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "components": [
                                {
                                  "commonType": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "id": 10551,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftExpression": {
                                    "id": 10547,
                                    "name": "r",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 10434,
                                    "src": "24474:1:38",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "nodeType": "BinaryOperation",
                                  "operator": "+",
                                  "rightExpression": {
                                    "commonType": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    },
                                    "id": 10550,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "leftExpression": {
                                      "id": 10548,
                                      "name": "x",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 10419,
                                      "src": "24478:1:38",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "nodeType": "BinaryOperation",
                                    "operator": "/",
                                    "rightExpression": {
                                      "id": 10549,
                                      "name": "r",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 10434,
                                      "src": "24482:1:38",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "src": "24478:5:38",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "src": "24474:9:38",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                }
                              ],
                              "id": 10552,
                              "isConstant": false,
                              "isInlineArray": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "TupleExpression",
                              "src": "24473:11:38",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": ">>",
                            "rightExpression": {
                              "hexValue": "31",
                              "id": 10553,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "24488:1:38",
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_1_by_1",
                                "typeString": "int_const 1"
                              },
                              "value": "1"
                            },
                            "src": "24473:16:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "24469:20:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 10556,
                        "nodeType": "ExpressionStatement",
                        "src": "24469:20:38"
                      },
                      {
                        "expression": {
                          "id": 10566,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "id": 10557,
                            "name": "r",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 10434,
                            "src": "24497:1:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 10565,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "components": [
                                {
                                  "commonType": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "id": 10562,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftExpression": {
                                    "id": 10558,
                                    "name": "r",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 10434,
                                    "src": "24502:1:38",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "nodeType": "BinaryOperation",
                                  "operator": "+",
                                  "rightExpression": {
                                    "commonType": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    },
                                    "id": 10561,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "leftExpression": {
                                      "id": 10559,
                                      "name": "x",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 10419,
                                      "src": "24506:1:38",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "nodeType": "BinaryOperation",
                                    "operator": "/",
                                    "rightExpression": {
                                      "id": 10560,
                                      "name": "r",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 10434,
                                      "src": "24510:1:38",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "src": "24506:5:38",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "src": "24502:9:38",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                }
                              ],
                              "id": 10563,
                              "isConstant": false,
                              "isInlineArray": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "TupleExpression",
                              "src": "24501:11:38",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": ">>",
                            "rightExpression": {
                              "hexValue": "31",
                              "id": 10564,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "24516:1:38",
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_1_by_1",
                                "typeString": "int_const 1"
                              },
                              "value": "1"
                            },
                            "src": "24501:16:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "24497:20:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 10567,
                        "nodeType": "ExpressionStatement",
                        "src": "24497:20:38"
                      },
                      {
                        "expression": {
                          "id": 10577,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "id": 10568,
                            "name": "r",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 10434,
                            "src": "24525:1:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 10576,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "components": [
                                {
                                  "commonType": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "id": 10573,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftExpression": {
                                    "id": 10569,
                                    "name": "r",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 10434,
                                    "src": "24530:1:38",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "nodeType": "BinaryOperation",
                                  "operator": "+",
                                  "rightExpression": {
                                    "commonType": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    },
                                    "id": 10572,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "leftExpression": {
                                      "id": 10570,
                                      "name": "x",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 10419,
                                      "src": "24534:1:38",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "nodeType": "BinaryOperation",
                                    "operator": "/",
                                    "rightExpression": {
                                      "id": 10571,
                                      "name": "r",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 10434,
                                      "src": "24538:1:38",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "src": "24534:5:38",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "src": "24530:9:38",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                }
                              ],
                              "id": 10574,
                              "isConstant": false,
                              "isInlineArray": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "TupleExpression",
                              "src": "24529:11:38",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": ">>",
                            "rightExpression": {
                              "hexValue": "31",
                              "id": 10575,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "24544:1:38",
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_1_by_1",
                                "typeString": "int_const 1"
                              },
                              "value": "1"
                            },
                            "src": "24529:16:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "24525:20:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 10578,
                        "nodeType": "ExpressionStatement",
                        "src": "24525:20:38"
                      },
                      {
                        "expression": {
                          "id": 10588,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "id": 10579,
                            "name": "r",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 10434,
                            "src": "24553:1:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 10587,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "components": [
                                {
                                  "commonType": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "id": 10584,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftExpression": {
                                    "id": 10580,
                                    "name": "r",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 10434,
                                    "src": "24558:1:38",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "nodeType": "BinaryOperation",
                                  "operator": "+",
                                  "rightExpression": {
                                    "commonType": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    },
                                    "id": 10583,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "leftExpression": {
                                      "id": 10581,
                                      "name": "x",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 10419,
                                      "src": "24562:1:38",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "nodeType": "BinaryOperation",
                                    "operator": "/",
                                    "rightExpression": {
                                      "id": 10582,
                                      "name": "r",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 10434,
                                      "src": "24566:1:38",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "src": "24562:5:38",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "src": "24558:9:38",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                }
                              ],
                              "id": 10585,
                              "isConstant": false,
                              "isInlineArray": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "TupleExpression",
                              "src": "24557:11:38",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": ">>",
                            "rightExpression": {
                              "hexValue": "31",
                              "id": 10586,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "24572:1:38",
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_1_by_1",
                                "typeString": "int_const 1"
                              },
                              "value": "1"
                            },
                            "src": "24557:16:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "24553:20:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 10589,
                        "nodeType": "ExpressionStatement",
                        "src": "24553:20:38"
                      },
                      {
                        "expression": {
                          "id": 10599,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "id": 10590,
                            "name": "r",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 10434,
                            "src": "24581:1:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 10598,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "components": [
                                {
                                  "commonType": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "id": 10595,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftExpression": {
                                    "id": 10591,
                                    "name": "r",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 10434,
                                    "src": "24586:1:38",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "nodeType": "BinaryOperation",
                                  "operator": "+",
                                  "rightExpression": {
                                    "commonType": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    },
                                    "id": 10594,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "leftExpression": {
                                      "id": 10592,
                                      "name": "x",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 10419,
                                      "src": "24590:1:38",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "nodeType": "BinaryOperation",
                                    "operator": "/",
                                    "rightExpression": {
                                      "id": 10593,
                                      "name": "r",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 10434,
                                      "src": "24594:1:38",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "src": "24590:5:38",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "src": "24586:9:38",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                }
                              ],
                              "id": 10596,
                              "isConstant": false,
                              "isInlineArray": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "TupleExpression",
                              "src": "24585:11:38",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": ">>",
                            "rightExpression": {
                              "hexValue": "31",
                              "id": 10597,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "24600:1:38",
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_1_by_1",
                                "typeString": "int_const 1"
                              },
                              "value": "1"
                            },
                            "src": "24585:16:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "24581:20:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 10600,
                        "nodeType": "ExpressionStatement",
                        "src": "24581:20:38"
                      },
                      {
                        "assignments": [
                          10602
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 10602,
                            "mutability": "mutable",
                            "name": "r1",
                            "nodeType": "VariableDeclaration",
                            "scope": 10617,
                            "src": "24646:10:38",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "typeName": {
                              "id": 10601,
                              "name": "uint256",
                              "nodeType": "ElementaryTypeName",
                              "src": "24646:7:38",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "visibility": "internal"
                          }
                        ],
                        "id": 10606,
                        "initialValue": {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 10605,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 10603,
                            "name": "x",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 10419,
                            "src": "24659:1:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "/",
                          "rightExpression": {
                            "id": 10604,
                            "name": "r",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 10434,
                            "src": "24663:1:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "24659:5:38",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "24646:18:38"
                      },
                      {
                        "expression": {
                          "arguments": [
                            {
                              "condition": {
                                "commonType": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                "id": 10611,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "id": 10609,
                                  "name": "r",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 10434,
                                  "src": "24688:1:38",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "<",
                                "rightExpression": {
                                  "id": 10610,
                                  "name": "r1",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 10602,
                                  "src": "24692:2:38",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "src": "24688:6:38",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              },
                              "falseExpression": {
                                "id": 10613,
                                "name": "r1",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 10602,
                                "src": "24701:2:38",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 10614,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "Conditional",
                              "src": "24688:15:38",
                              "trueExpression": {
                                "id": 10612,
                                "name": "r",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 10434,
                                "src": "24697:1:38",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "id": 10608,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "24679:7:38",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_uint128_$",
                              "typeString": "type(uint128)"
                            },
                            "typeName": {
                              "id": 10607,
                              "name": "uint128",
                              "nodeType": "ElementaryTypeName",
                              "src": "24679:7:38",
                              "typeDescriptions": {}
                            }
                          },
                          "id": 10615,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "24679:25:38",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint128",
                            "typeString": "uint128"
                          }
                        },
                        "functionReturnParameters": 10423,
                        "id": 10616,
                        "nodeType": "Return",
                        "src": "24672:32:38"
                      }
                    ]
                  },
                  "id": 10618,
                  "nodeType": "IfStatement",
                  "src": "23962:749:38",
                  "trueBody": {
                    "expression": {
                      "hexValue": "30",
                      "id": 10427,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "23981:1:38",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "functionReturnParameters": 10423,
                    "id": 10428,
                    "nodeType": "Return",
                    "src": "23974:8:38"
                  }
                }
              ]
            },
            "documentation": {
              "id": 10417,
              "nodeType": "StructuredDocumentation",
              "src": "23702:193:38",
              "text": " Calculate sqrt (x) rounding down, where x is unsigned 256-bit integer\n number.\n @param x unsigned 256-bit integer number\n @return unsigned 128-bit integer number"
            },
            "id": 10620,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "sqrtu",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 10420,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10419,
                  "mutability": "mutable",
                  "name": "x",
                  "nodeType": "VariableDeclaration",
                  "scope": 10620,
                  "src": "23914:9:38",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 10418,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "23914:7:38",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "23913:11:38"
            },
            "returnParameters": {
              "id": 10423,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10422,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 10620,
                  "src": "23947:7:38",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint128",
                    "typeString": "uint128"
                  },
                  "typeName": {
                    "id": 10421,
                    "name": "uint128",
                    "nodeType": "ElementaryTypeName",
                    "src": "23947:7:38",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint128",
                      "typeString": "uint128"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "23946:9:38"
            },
            "scope": 10621,
            "src": "23898:817:38",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "private"
          }
        ],
        "scope": 10622,
        "src": "686:24031:38"
      }
    ],
    "src": "191:24527:38"
  },
  "legacyAST": {
    "attributes": {
      "absolutePath": "abdk-libraries-solidity/ABDKMath64x64.sol",
      "exportedSymbols": {
        "ABDKMath64x64": [
          10621
        ]
      },
      "license": "BSD-4-Clause"
    },
    "children": [
      {
        "attributes": {
          "literals": [
            "solidity",
            "^",
            "0.5",
            ".0",
            "||",
            "^",
            "0.6",
            ".0",
            "||",
            "^",
            "0.7",
            ".0"
          ]
        },
        "id": 7845,
        "name": "PragmaDirective",
        "src": "191:43:38"
      },
      {
        "attributes": {
          "abstract": false,
          "baseContracts": [
            null
          ],
          "contractDependencies": [
            null
          ],
          "contractKind": "library",
          "fullyImplemented": true,
          "linearizedBaseContracts": [
            10621
          ],
          "name": "ABDKMath64x64",
          "scope": 10622
        },
        "children": [
          {
            "attributes": {
              "text": " Smart contract library of mathematical functions operating with signed\n 64.64-bit fixed point numbers.  Signed 64.64-bit fixed point number is\n basically a simple fraction whose numerator is signed 128-bit integer and\n denominator is 2^64.  As long as denominator is always the same, there is no\n need to store it, thus in Solidity signed 64.64-bit fixed point numbers are\n represented by int128 type holding only the numerator."
            },
            "id": 7846,
            "name": "StructuredDocumentation",
            "src": "236:449:38"
          },
          {
            "attributes": {
              "constant": true,
              "mutability": "constant",
              "name": "MIN_64x64",
              "scope": 10621,
              "stateVariable": true,
              "storageLocation": "default",
              "type": "int128",
              "visibility": "private"
            },
            "children": [
              {
                "attributes": {
                  "name": "int128",
                  "type": "int128"
                },
                "id": 7847,
                "name": "ElementaryTypeName",
                "src": "789:6:38"
              },
              {
                "attributes": {
                  "isConstant": false,
                  "isLValue": false,
                  "isPure": true,
                  "lValueRequested": false,
                  "operator": "-",
                  "prefix": true,
                  "type": "int_const -170...(32 digits omitted)...5728"
                },
                "children": [
                  {
                    "attributes": {
                      "hexvalue": "30783830303030303030303030303030303030303030303030303030303030303030",
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "token": "number",
                      "type": "int_const 1701...(31 digits omitted)...5728",
                      "value": "0x80000000000000000000000000000000"
                    },
                    "id": 7848,
                    "name": "Literal",
                    "src": "826:34:38"
                  }
                ],
                "id": 7849,
                "name": "UnaryOperation",
                "src": "825:35:38"
              }
            ],
            "id": 7850,
            "name": "VariableDeclaration",
            "src": "789:71:38"
          },
          {
            "attributes": {
              "constant": true,
              "mutability": "constant",
              "name": "MAX_64x64",
              "scope": 10621,
              "stateVariable": true,
              "storageLocation": "default",
              "type": "int128",
              "visibility": "private"
            },
            "children": [
              {
                "attributes": {
                  "name": "int128",
                  "type": "int128"
                },
                "id": 7851,
                "name": "ElementaryTypeName",
                "src": "942:6:38"
              },
              {
                "attributes": {
                  "hexvalue": "30783746464646464646464646464646464646464646464646464646464646464646",
                  "isConstant": false,
                  "isLValue": false,
                  "isPure": true,
                  "lValueRequested": false,
                  "token": "number",
                  "type": "int_const 1701...(31 digits omitted)...5727",
                  "value": "0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
                },
                "id": 7852,
                "name": "Literal",
                "src": "978:34:38"
              }
            ],
            "id": 7853,
            "name": "VariableDeclaration",
            "src": "942:70:38"
          },
          {
            "attributes": {
              "implemented": true,
              "isConstructor": false,
              "kind": "function",
              "modifiers": [
                null
              ],
              "name": "fromInt",
              "scope": 10621,
              "stateMutability": "pure",
              "virtual": false,
              "visibility": "internal"
            },
            "children": [
              {
                "attributes": {
                  "text": " Convert signed 256-bit integer number into signed 64.64-bit fixed point\n number.  Revert on overflow.\n @param x signed 256-bit integer number\n @return signed 64.64-bit fixed point number"
                },
                "id": 7854,
                "name": "StructuredDocumentation",
                "src": "1017:218:38"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "x",
                      "scope": 7880,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "int256",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "int256",
                          "type": "int256"
                        },
                        "id": 7855,
                        "name": "ElementaryTypeName",
                        "src": "1256:6:38"
                      }
                    ],
                    "id": 7856,
                    "name": "VariableDeclaration",
                    "src": "1256:8:38"
                  }
                ],
                "id": 7857,
                "name": "ParameterList",
                "src": "1255:10:38"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "",
                      "scope": 7880,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "int128",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "int128",
                          "type": "int128"
                        },
                        "id": 7858,
                        "name": "ElementaryTypeName",
                        "src": "1289:6:38"
                      }
                    ],
                    "id": 7859,
                    "name": "VariableDeclaration",
                    "src": "1289:6:38"
                  }
                ],
                "id": 7860,
                "name": "ParameterList",
                "src": "1288:8:38"
              },
              {
                "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"
                                }
                              ],
                              "overloadedDeclarations": [
                                4294967278,
                                4294967278
                              ],
                              "referencedDeclaration": 4294967278,
                              "type": "function (bool) pure",
                              "value": "require"
                            },
                            "id": 7861,
                            "name": "Identifier",
                            "src": "1303:7:38"
                          },
                          {
                            "attributes": {
                              "commonType": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "&&",
                              "type": "bool"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "commonType": {
                                    "typeIdentifier": "t_int256",
                                    "typeString": "int256"
                                  },
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": ">=",
                                  "type": "bool"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 7856,
                                      "type": "int256",
                                      "value": "x"
                                    },
                                    "id": 7862,
                                    "name": "Identifier",
                                    "src": "1312:1:38"
                                  },
                                  {
                                    "attributes": {
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "operator": "-",
                                      "prefix": true,
                                      "type": "int_const -9223372036854775808"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "hexvalue": "307838303030303030303030303030303030",
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "token": "number",
                                          "type": "int_const 9223372036854775808",
                                          "value": "0x8000000000000000"
                                        },
                                        "id": 7863,
                                        "name": "Literal",
                                        "src": "1318:18:38"
                                      }
                                    ],
                                    "id": 7864,
                                    "name": "UnaryOperation",
                                    "src": "1317:19:38"
                                  }
                                ],
                                "id": 7865,
                                "name": "BinaryOperation",
                                "src": "1312:24:38"
                              },
                              {
                                "attributes": {
                                  "commonType": {
                                    "typeIdentifier": "t_int256",
                                    "typeString": "int256"
                                  },
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": "<=",
                                  "type": "bool"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 7856,
                                      "type": "int256",
                                      "value": "x"
                                    },
                                    "id": 7866,
                                    "name": "Identifier",
                                    "src": "1340:1:38"
                                  },
                                  {
                                    "attributes": {
                                      "hexvalue": "307837464646464646464646464646464646",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "token": "number",
                                      "type": "int_const 9223372036854775807",
                                      "value": "0x7FFFFFFFFFFFFFFF"
                                    },
                                    "id": 7867,
                                    "name": "Literal",
                                    "src": "1345:18:38"
                                  }
                                ],
                                "id": 7868,
                                "name": "BinaryOperation",
                                "src": "1340:23:38"
                              }
                            ],
                            "id": 7869,
                            "name": "BinaryOperation",
                            "src": "1312:51:38"
                          }
                        ],
                        "id": 7870,
                        "name": "FunctionCall",
                        "src": "1303:61:38"
                      }
                    ],
                    "id": 7871,
                    "name": "ExpressionStatement",
                    "src": "1303:61:38"
                  },
                  {
                    "attributes": {
                      "functionReturnParameters": 7860
                    },
                    "children": [
                      {
                        "attributes": {
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "tryCall": false,
                          "type": "int128",
                          "type_conversion": true
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_int256",
                                  "typeString": "int256"
                                }
                              ],
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "type": "type(int128)"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "name": "int128"
                                },
                                "id": 7872,
                                "name": "ElementaryTypeName",
                                "src": "1377:6:38"
                              }
                            ],
                            "id": 7873,
                            "name": "ElementaryTypeNameExpression",
                            "src": "1377:6:38"
                          },
                          {
                            "attributes": {
                              "commonType": {
                                "typeIdentifier": "t_int256",
                                "typeString": "int256"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "<<",
                              "type": "int256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 7856,
                                  "type": "int256",
                                  "value": "x"
                                },
                                "id": 7874,
                                "name": "Identifier",
                                "src": "1385:1:38"
                              },
                              {
                                "attributes": {
                                  "hexvalue": "3634",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "token": "number",
                                  "type": "int_const 64",
                                  "value": "64"
                                },
                                "id": 7875,
                                "name": "Literal",
                                "src": "1390:2:38"
                              }
                            ],
                            "id": 7876,
                            "name": "BinaryOperation",
                            "src": "1385:7:38"
                          }
                        ],
                        "id": 7877,
                        "name": "FunctionCall",
                        "src": "1377:16:38"
                      }
                    ],
                    "id": 7878,
                    "name": "Return",
                    "src": "1370:23:38"
                  }
                ],
                "id": 7879,
                "name": "Block",
                "src": "1297:101:38"
              }
            ],
            "id": 7880,
            "name": "FunctionDefinition",
            "src": "1238:160:38"
          },
          {
            "attributes": {
              "implemented": true,
              "isConstructor": false,
              "kind": "function",
              "modifiers": [
                null
              ],
              "name": "toInt",
              "scope": 10621,
              "stateMutability": "pure",
              "virtual": false,
              "visibility": "internal"
            },
            "children": [
              {
                "attributes": {
                  "text": " Convert signed 64.64 fixed point number into signed 64-bit integer number\n rounding down.\n @param x signed 64.64-bit fixed point number\n @return signed 64-bit integer number"
                },
                "id": 7881,
                "name": "StructuredDocumentation",
                "src": "1402:205:38"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "x",
                      "scope": 7896,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "int128",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "int128",
                          "type": "int128"
                        },
                        "id": 7882,
                        "name": "ElementaryTypeName",
                        "src": "1626:6:38"
                      }
                    ],
                    "id": 7883,
                    "name": "VariableDeclaration",
                    "src": "1626:8:38"
                  }
                ],
                "id": 7884,
                "name": "ParameterList",
                "src": "1625:10:38"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "",
                      "scope": 7896,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "int64",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "int64",
                          "type": "int64"
                        },
                        "id": 7885,
                        "name": "ElementaryTypeName",
                        "src": "1659:5:38"
                      }
                    ],
                    "id": 7886,
                    "name": "VariableDeclaration",
                    "src": "1659:5:38"
                  }
                ],
                "id": 7887,
                "name": "ParameterList",
                "src": "1658:7:38"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "functionReturnParameters": 7887
                    },
                    "children": [
                      {
                        "attributes": {
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "tryCall": false,
                          "type": "int64",
                          "type_conversion": true
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_int128",
                                  "typeString": "int128"
                                }
                              ],
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "type": "type(int64)"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "name": "int64"
                                },
                                "id": 7888,
                                "name": "ElementaryTypeName",
                                "src": "1679:5:38"
                              }
                            ],
                            "id": 7889,
                            "name": "ElementaryTypeNameExpression",
                            "src": "1679:5:38"
                          },
                          {
                            "attributes": {
                              "commonType": {
                                "typeIdentifier": "t_int128",
                                "typeString": "int128"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": ">>",
                              "type": "int128"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 7883,
                                  "type": "int128",
                                  "value": "x"
                                },
                                "id": 7890,
                                "name": "Identifier",
                                "src": "1686:1:38"
                              },
                              {
                                "attributes": {
                                  "hexvalue": "3634",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "token": "number",
                                  "type": "int_const 64",
                                  "value": "64"
                                },
                                "id": 7891,
                                "name": "Literal",
                                "src": "1691:2:38"
                              }
                            ],
                            "id": 7892,
                            "name": "BinaryOperation",
                            "src": "1686:7:38"
                          }
                        ],
                        "id": 7893,
                        "name": "FunctionCall",
                        "src": "1679:15:38"
                      }
                    ],
                    "id": 7894,
                    "name": "Return",
                    "src": "1672:22:38"
                  }
                ],
                "id": 7895,
                "name": "Block",
                "src": "1666:33:38"
              }
            ],
            "id": 7896,
            "name": "FunctionDefinition",
            "src": "1610:89:38"
          },
          {
            "attributes": {
              "implemented": true,
              "isConstructor": false,
              "kind": "function",
              "modifiers": [
                null
              ],
              "name": "fromUInt",
              "scope": 10621,
              "stateMutability": "pure",
              "virtual": false,
              "visibility": "internal"
            },
            "children": [
              {
                "attributes": {
                  "text": " Convert unsigned 256-bit integer number into signed 64.64-bit fixed point\n number.  Revert on overflow.\n @param x unsigned 256-bit integer number\n @return signed 64.64-bit fixed point number"
                },
                "id": 7897,
                "name": "StructuredDocumentation",
                "src": "1703:222:38"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "x",
                      "scope": 7918,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint256",
                          "type": "uint256"
                        },
                        "id": 7898,
                        "name": "ElementaryTypeName",
                        "src": "1947:7:38"
                      }
                    ],
                    "id": 7899,
                    "name": "VariableDeclaration",
                    "src": "1947:9:38"
                  }
                ],
                "id": 7900,
                "name": "ParameterList",
                "src": "1946:11:38"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "",
                      "scope": 7918,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "int128",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "int128",
                          "type": "int128"
                        },
                        "id": 7901,
                        "name": "ElementaryTypeName",
                        "src": "1981:6:38"
                      }
                    ],
                    "id": 7902,
                    "name": "VariableDeclaration",
                    "src": "1981:6:38"
                  }
                ],
                "id": 7903,
                "name": "ParameterList",
                "src": "1980:8:38"
              },
              {
                "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"
                                }
                              ],
                              "overloadedDeclarations": [
                                4294967278,
                                4294967278
                              ],
                              "referencedDeclaration": 4294967278,
                              "type": "function (bool) pure",
                              "value": "require"
                            },
                            "id": 7904,
                            "name": "Identifier",
                            "src": "1995:7:38"
                          },
                          {
                            "attributes": {
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "<=",
                              "type": "bool"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 7899,
                                  "type": "uint256",
                                  "value": "x"
                                },
                                "id": 7905,
                                "name": "Identifier",
                                "src": "2004:1:38"
                              },
                              {
                                "attributes": {
                                  "hexvalue": "307837464646464646464646464646464646",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "token": "number",
                                  "type": "int_const 9223372036854775807",
                                  "value": "0x7FFFFFFFFFFFFFFF"
                                },
                                "id": 7906,
                                "name": "Literal",
                                "src": "2009:18:38"
                              }
                            ],
                            "id": 7907,
                            "name": "BinaryOperation",
                            "src": "2004:23:38"
                          }
                        ],
                        "id": 7908,
                        "name": "FunctionCall",
                        "src": "1995:33:38"
                      }
                    ],
                    "id": 7909,
                    "name": "ExpressionStatement",
                    "src": "1995:33:38"
                  },
                  {
                    "attributes": {
                      "functionReturnParameters": 7903
                    },
                    "children": [
                      {
                        "attributes": {
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "tryCall": false,
                          "type": "int128",
                          "type_conversion": true
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "type": "type(int128)"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "name": "int128"
                                },
                                "id": 7910,
                                "name": "ElementaryTypeName",
                                "src": "2041:6:38"
                              }
                            ],
                            "id": 7911,
                            "name": "ElementaryTypeNameExpression",
                            "src": "2041:6:38"
                          },
                          {
                            "attributes": {
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "<<",
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 7899,
                                  "type": "uint256",
                                  "value": "x"
                                },
                                "id": 7912,
                                "name": "Identifier",
                                "src": "2049:1:38"
                              },
                              {
                                "attributes": {
                                  "hexvalue": "3634",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "token": "number",
                                  "type": "int_const 64",
                                  "value": "64"
                                },
                                "id": 7913,
                                "name": "Literal",
                                "src": "2054:2:38"
                              }
                            ],
                            "id": 7914,
                            "name": "BinaryOperation",
                            "src": "2049:7:38"
                          }
                        ],
                        "id": 7915,
                        "name": "FunctionCall",
                        "src": "2041:16:38"
                      }
                    ],
                    "id": 7916,
                    "name": "Return",
                    "src": "2034:23:38"
                  }
                ],
                "id": 7917,
                "name": "Block",
                "src": "1989:73:38"
              }
            ],
            "id": 7918,
            "name": "FunctionDefinition",
            "src": "1928:134:38"
          },
          {
            "attributes": {
              "implemented": true,
              "isConstructor": false,
              "kind": "function",
              "modifiers": [
                null
              ],
              "name": "toUInt",
              "scope": 10621,
              "stateMutability": "pure",
              "virtual": false,
              "visibility": "internal"
            },
            "children": [
              {
                "attributes": {
                  "text": " Convert signed 64.64 fixed point number into unsigned 64-bit integer\n number rounding down.  Revert on underflow.\n @param x signed 64.64-bit fixed point number\n @return unsigned 64-bit integer number"
                },
                "id": 7919,
                "name": "StructuredDocumentation",
                "src": "2066:231:38"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "x",
                      "scope": 7940,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "int128",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "int128",
                          "type": "int128"
                        },
                        "id": 7920,
                        "name": "ElementaryTypeName",
                        "src": "2317:6:38"
                      }
                    ],
                    "id": 7921,
                    "name": "VariableDeclaration",
                    "src": "2317:8:38"
                  }
                ],
                "id": 7922,
                "name": "ParameterList",
                "src": "2316:10:38"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "",
                      "scope": 7940,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint64",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint64",
                          "type": "uint64"
                        },
                        "id": 7923,
                        "name": "ElementaryTypeName",
                        "src": "2350:6:38"
                      }
                    ],
                    "id": 7924,
                    "name": "VariableDeclaration",
                    "src": "2350:6:38"
                  }
                ],
                "id": 7925,
                "name": "ParameterList",
                "src": "2349:8:38"
              },
              {
                "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"
                                }
                              ],
                              "overloadedDeclarations": [
                                4294967278,
                                4294967278
                              ],
                              "referencedDeclaration": 4294967278,
                              "type": "function (bool) pure",
                              "value": "require"
                            },
                            "id": 7926,
                            "name": "Identifier",
                            "src": "2364:7:38"
                          },
                          {
                            "attributes": {
                              "commonType": {
                                "typeIdentifier": "t_int128",
                                "typeString": "int128"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": ">=",
                              "type": "bool"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 7921,
                                  "type": "int128",
                                  "value": "x"
                                },
                                "id": 7927,
                                "name": "Identifier",
                                "src": "2373:1:38"
                              },
                              {
                                "attributes": {
                                  "hexvalue": "30",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "token": "number",
                                  "type": "int_const 0",
                                  "value": "0"
                                },
                                "id": 7928,
                                "name": "Literal",
                                "src": "2378:1:38"
                              }
                            ],
                            "id": 7929,
                            "name": "BinaryOperation",
                            "src": "2373:6:38"
                          }
                        ],
                        "id": 7930,
                        "name": "FunctionCall",
                        "src": "2364:16:38"
                      }
                    ],
                    "id": 7931,
                    "name": "ExpressionStatement",
                    "src": "2364:16:38"
                  },
                  {
                    "attributes": {
                      "functionReturnParameters": 7925
                    },
                    "children": [
                      {
                        "attributes": {
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "tryCall": false,
                          "type": "uint64",
                          "type_conversion": true
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_int128",
                                  "typeString": "int128"
                                }
                              ],
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "type": "type(uint64)"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "name": "uint64"
                                },
                                "id": 7932,
                                "name": "ElementaryTypeName",
                                "src": "2393:6:38"
                              }
                            ],
                            "id": 7933,
                            "name": "ElementaryTypeNameExpression",
                            "src": "2393:6:38"
                          },
                          {
                            "attributes": {
                              "commonType": {
                                "typeIdentifier": "t_int128",
                                "typeString": "int128"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": ">>",
                              "type": "int128"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 7921,
                                  "type": "int128",
                                  "value": "x"
                                },
                                "id": 7934,
                                "name": "Identifier",
                                "src": "2401:1:38"
                              },
                              {
                                "attributes": {
                                  "hexvalue": "3634",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "token": "number",
                                  "type": "int_const 64",
                                  "value": "64"
                                },
                                "id": 7935,
                                "name": "Literal",
                                "src": "2406:2:38"
                              }
                            ],
                            "id": 7936,
                            "name": "BinaryOperation",
                            "src": "2401:7:38"
                          }
                        ],
                        "id": 7937,
                        "name": "FunctionCall",
                        "src": "2393:16:38"
                      }
                    ],
                    "id": 7938,
                    "name": "Return",
                    "src": "2386:23:38"
                  }
                ],
                "id": 7939,
                "name": "Block",
                "src": "2358:56:38"
              }
            ],
            "id": 7940,
            "name": "FunctionDefinition",
            "src": "2300:114:38"
          },
          {
            "attributes": {
              "implemented": true,
              "isConstructor": false,
              "kind": "function",
              "modifiers": [
                null
              ],
              "name": "from128x128",
              "scope": 10621,
              "stateMutability": "pure",
              "virtual": false,
              "visibility": "internal"
            },
            "children": [
              {
                "attributes": {
                  "text": " Convert signed 128.128 fixed point number into signed 64.64-bit fixed point\n number rounding down.  Revert on overflow.\n @param x signed 128.128-bin fixed point number\n @return signed 64.64-bit fixed point number"
                },
                "id": 7941,
                "name": "StructuredDocumentation",
                "src": "2418:244:38"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "x",
                      "scope": 7970,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "int256",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "int256",
                          "type": "int256"
                        },
                        "id": 7942,
                        "name": "ElementaryTypeName",
                        "src": "2687:6:38"
                      }
                    ],
                    "id": 7943,
                    "name": "VariableDeclaration",
                    "src": "2687:8:38"
                  }
                ],
                "id": 7944,
                "name": "ParameterList",
                "src": "2686:10:38"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "",
                      "scope": 7970,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "int128",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "int128",
                          "type": "int128"
                        },
                        "id": 7945,
                        "name": "ElementaryTypeName",
                        "src": "2720:6:38"
                      }
                    ],
                    "id": 7946,
                    "name": "VariableDeclaration",
                    "src": "2720:6:38"
                  }
                ],
                "id": 7947,
                "name": "ParameterList",
                "src": "2719:8:38"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "assignments": [
                        7949
                      ]
                    },
                    "children": [
                      {
                        "attributes": {
                          "constant": false,
                          "mutability": "mutable",
                          "name": "result",
                          "scope": 7969,
                          "stateVariable": false,
                          "storageLocation": "default",
                          "type": "int256",
                          "visibility": "internal"
                        },
                        "children": [
                          {
                            "attributes": {
                              "name": "int256",
                              "type": "int256"
                            },
                            "id": 7948,
                            "name": "ElementaryTypeName",
                            "src": "2734:6:38"
                          }
                        ],
                        "id": 7949,
                        "name": "VariableDeclaration",
                        "src": "2734:13:38"
                      },
                      {
                        "attributes": {
                          "commonType": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          },
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": ">>",
                          "type": "int256"
                        },
                        "children": [
                          {
                            "attributes": {
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 7943,
                              "type": "int256",
                              "value": "x"
                            },
                            "id": 7950,
                            "name": "Identifier",
                            "src": "2750:1:38"
                          },
                          {
                            "attributes": {
                              "hexvalue": "3634",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "token": "number",
                              "type": "int_const 64",
                              "value": "64"
                            },
                            "id": 7951,
                            "name": "Literal",
                            "src": "2755:2:38"
                          }
                        ],
                        "id": 7952,
                        "name": "BinaryOperation",
                        "src": "2750:7:38"
                      }
                    ],
                    "id": 7953,
                    "name": "VariableDeclarationStatement",
                    "src": "2734:23:38"
                  },
                  {
                    "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"
                                }
                              ],
                              "overloadedDeclarations": [
                                4294967278,
                                4294967278
                              ],
                              "referencedDeclaration": 4294967278,
                              "type": "function (bool) pure",
                              "value": "require"
                            },
                            "id": 7954,
                            "name": "Identifier",
                            "src": "2763:7:38"
                          },
                          {
                            "attributes": {
                              "commonType": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "&&",
                              "type": "bool"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "commonType": {
                                    "typeIdentifier": "t_int256",
                                    "typeString": "int256"
                                  },
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": ">=",
                                  "type": "bool"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 7949,
                                      "type": "int256",
                                      "value": "result"
                                    },
                                    "id": 7955,
                                    "name": "Identifier",
                                    "src": "2772:6:38"
                                  },
                                  {
                                    "attributes": {
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 7850,
                                      "type": "int128",
                                      "value": "MIN_64x64"
                                    },
                                    "id": 7956,
                                    "name": "Identifier",
                                    "src": "2782:9:38"
                                  }
                                ],
                                "id": 7957,
                                "name": "BinaryOperation",
                                "src": "2772:19:38"
                              },
                              {
                                "attributes": {
                                  "commonType": {
                                    "typeIdentifier": "t_int256",
                                    "typeString": "int256"
                                  },
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": "<=",
                                  "type": "bool"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 7949,
                                      "type": "int256",
                                      "value": "result"
                                    },
                                    "id": 7958,
                                    "name": "Identifier",
                                    "src": "2795:6:38"
                                  },
                                  {
                                    "attributes": {
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 7853,
                                      "type": "int128",
                                      "value": "MAX_64x64"
                                    },
                                    "id": 7959,
                                    "name": "Identifier",
                                    "src": "2805:9:38"
                                  }
                                ],
                                "id": 7960,
                                "name": "BinaryOperation",
                                "src": "2795:19:38"
                              }
                            ],
                            "id": 7961,
                            "name": "BinaryOperation",
                            "src": "2772:42:38"
                          }
                        ],
                        "id": 7962,
                        "name": "FunctionCall",
                        "src": "2763:52:38"
                      }
                    ],
                    "id": 7963,
                    "name": "ExpressionStatement",
                    "src": "2763:52:38"
                  },
                  {
                    "attributes": {
                      "functionReturnParameters": 7947
                    },
                    "children": [
                      {
                        "attributes": {
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "tryCall": false,
                          "type": "int128",
                          "type_conversion": true
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_int256",
                                  "typeString": "int256"
                                }
                              ],
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "type": "type(int128)"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "name": "int128"
                                },
                                "id": 7964,
                                "name": "ElementaryTypeName",
                                "src": "2828:6:38"
                              }
                            ],
                            "id": 7965,
                            "name": "ElementaryTypeNameExpression",
                            "src": "2828:6:38"
                          },
                          {
                            "attributes": {
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 7949,
                              "type": "int256",
                              "value": "result"
                            },
                            "id": 7966,
                            "name": "Identifier",
                            "src": "2836:6:38"
                          }
                        ],
                        "id": 7967,
                        "name": "FunctionCall",
                        "src": "2828:15:38"
                      }
                    ],
                    "id": 7968,
                    "name": "Return",
                    "src": "2821:22:38"
                  }
                ],
                "id": 7969,
                "name": "Block",
                "src": "2728:120:38"
              }
            ],
            "id": 7970,
            "name": "FunctionDefinition",
            "src": "2665:183:38"
          },
          {
            "attributes": {
              "implemented": true,
              "isConstructor": false,
              "kind": "function",
              "modifiers": [
                null
              ],
              "name": "to128x128",
              "scope": 10621,
              "stateMutability": "pure",
              "virtual": false,
              "visibility": "internal"
            },
            "children": [
              {
                "attributes": {
                  "text": " Convert signed 64.64 fixed point number into signed 128.128 fixed point\n number.\n @param x signed 64.64-bit fixed point number\n @return signed 128.128 fixed point number"
                },
                "id": 7971,
                "name": "StructuredDocumentation",
                "src": "2852:201:38"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "x",
                      "scope": 7986,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "int128",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "int128",
                          "type": "int128"
                        },
                        "id": 7972,
                        "name": "ElementaryTypeName",
                        "src": "3076:6:38"
                      }
                    ],
                    "id": 7973,
                    "name": "VariableDeclaration",
                    "src": "3076:8:38"
                  }
                ],
                "id": 7974,
                "name": "ParameterList",
                "src": "3075:10:38"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "",
                      "scope": 7986,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "int256",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "int256",
                          "type": "int256"
                        },
                        "id": 7975,
                        "name": "ElementaryTypeName",
                        "src": "3109:6:38"
                      }
                    ],
                    "id": 7976,
                    "name": "VariableDeclaration",
                    "src": "3109:6:38"
                  }
                ],
                "id": 7977,
                "name": "ParameterList",
                "src": "3108:8:38"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "functionReturnParameters": 7977
                    },
                    "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_int128",
                                      "typeString": "int128"
                                    }
                                  ],
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "type": "type(int256)"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "name": "int256"
                                    },
                                    "id": 7978,
                                    "name": "ElementaryTypeName",
                                    "src": "3130:6:38"
                                  }
                                ],
                                "id": 7979,
                                "name": "ElementaryTypeNameExpression",
                                "src": "3130:6:38"
                              },
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 7973,
                                  "type": "int128",
                                  "value": "x"
                                },
                                "id": 7980,
                                "name": "Identifier",
                                "src": "3138:1:38"
                              }
                            ],
                            "id": 7981,
                            "name": "FunctionCall",
                            "src": "3130:10:38"
                          },
                          {
                            "attributes": {
                              "hexvalue": "3634",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "token": "number",
                              "type": "int_const 64",
                              "value": "64"
                            },
                            "id": 7982,
                            "name": "Literal",
                            "src": "3144:2:38"
                          }
                        ],
                        "id": 7983,
                        "name": "BinaryOperation",
                        "src": "3130:16:38"
                      }
                    ],
                    "id": 7984,
                    "name": "Return",
                    "src": "3123:23:38"
                  }
                ],
                "id": 7985,
                "name": "Block",
                "src": "3117:34:38"
              }
            ],
            "id": 7986,
            "name": "FunctionDefinition",
            "src": "3056:95:38"
          },
          {
            "attributes": {
              "implemented": true,
              "isConstructor": false,
              "kind": "function",
              "modifiers": [
                null
              ],
              "name": "add",
              "scope": 10621,
              "stateMutability": "pure",
              "virtual": false,
              "visibility": "internal"
            },
            "children": [
              {
                "attributes": {
                  "text": " Calculate x + y.  Revert on overflow.\n @param x signed 64.64-bit fixed point number\n @param y signed 64.64-bit fixed point number\n @return signed 64.64-bit fixed point number"
                },
                "id": 7987,
                "name": "StructuredDocumentation",
                "src": "3155:206:38"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "x",
                      "scope": 8021,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "int128",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "int128",
                          "type": "int128"
                        },
                        "id": 7988,
                        "name": "ElementaryTypeName",
                        "src": "3378:6:38"
                      }
                    ],
                    "id": 7989,
                    "name": "VariableDeclaration",
                    "src": "3378:8:38"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "y",
                      "scope": 8021,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "int128",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "int128",
                          "type": "int128"
                        },
                        "id": 7990,
                        "name": "ElementaryTypeName",
                        "src": "3388:6:38"
                      }
                    ],
                    "id": 7991,
                    "name": "VariableDeclaration",
                    "src": "3388:8:38"
                  }
                ],
                "id": 7992,
                "name": "ParameterList",
                "src": "3377:20:38"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "",
                      "scope": 8021,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "int128",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "int128",
                          "type": "int128"
                        },
                        "id": 7993,
                        "name": "ElementaryTypeName",
                        "src": "3421:6:38"
                      }
                    ],
                    "id": 7994,
                    "name": "VariableDeclaration",
                    "src": "3421:6:38"
                  }
                ],
                "id": 7995,
                "name": "ParameterList",
                "src": "3420:8:38"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "assignments": [
                        7997
                      ]
                    },
                    "children": [
                      {
                        "attributes": {
                          "constant": false,
                          "mutability": "mutable",
                          "name": "result",
                          "scope": 8020,
                          "stateVariable": false,
                          "storageLocation": "default",
                          "type": "int256",
                          "visibility": "internal"
                        },
                        "children": [
                          {
                            "attributes": {
                              "name": "int256",
                              "type": "int256"
                            },
                            "id": 7996,
                            "name": "ElementaryTypeName",
                            "src": "3435:6:38"
                          }
                        ],
                        "id": 7997,
                        "name": "VariableDeclaration",
                        "src": "3435:13:38"
                      },
                      {
                        "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_int128",
                                      "typeString": "int128"
                                    }
                                  ],
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "type": "type(int256)"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "name": "int256"
                                    },
                                    "id": 7998,
                                    "name": "ElementaryTypeName",
                                    "src": "3451:6:38"
                                  }
                                ],
                                "id": 7999,
                                "name": "ElementaryTypeNameExpression",
                                "src": "3451:6:38"
                              },
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 7989,
                                  "type": "int128",
                                  "value": "x"
                                },
                                "id": 8000,
                                "name": "Identifier",
                                "src": "3458:1:38"
                              }
                            ],
                            "id": 8001,
                            "name": "FunctionCall",
                            "src": "3451:9:38"
                          },
                          {
                            "attributes": {
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 7991,
                              "type": "int128",
                              "value": "y"
                            },
                            "id": 8002,
                            "name": "Identifier",
                            "src": "3463:1:38"
                          }
                        ],
                        "id": 8003,
                        "name": "BinaryOperation",
                        "src": "3451:13:38"
                      }
                    ],
                    "id": 8004,
                    "name": "VariableDeclarationStatement",
                    "src": "3435:29:38"
                  },
                  {
                    "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"
                                }
                              ],
                              "overloadedDeclarations": [
                                4294967278,
                                4294967278
                              ],
                              "referencedDeclaration": 4294967278,
                              "type": "function (bool) pure",
                              "value": "require"
                            },
                            "id": 8005,
                            "name": "Identifier",
                            "src": "3470:7:38"
                          },
                          {
                            "attributes": {
                              "commonType": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "&&",
                              "type": "bool"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "commonType": {
                                    "typeIdentifier": "t_int256",
                                    "typeString": "int256"
                                  },
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": ">=",
                                  "type": "bool"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 7997,
                                      "type": "int256",
                                      "value": "result"
                                    },
                                    "id": 8006,
                                    "name": "Identifier",
                                    "src": "3479:6:38"
                                  },
                                  {
                                    "attributes": {
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 7850,
                                      "type": "int128",
                                      "value": "MIN_64x64"
                                    },
                                    "id": 8007,
                                    "name": "Identifier",
                                    "src": "3489:9:38"
                                  }
                                ],
                                "id": 8008,
                                "name": "BinaryOperation",
                                "src": "3479:19:38"
                              },
                              {
                                "attributes": {
                                  "commonType": {
                                    "typeIdentifier": "t_int256",
                                    "typeString": "int256"
                                  },
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": "<=",
                                  "type": "bool"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 7997,
                                      "type": "int256",
                                      "value": "result"
                                    },
                                    "id": 8009,
                                    "name": "Identifier",
                                    "src": "3502:6:38"
                                  },
                                  {
                                    "attributes": {
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 7853,
                                      "type": "int128",
                                      "value": "MAX_64x64"
                                    },
                                    "id": 8010,
                                    "name": "Identifier",
                                    "src": "3512:9:38"
                                  }
                                ],
                                "id": 8011,
                                "name": "BinaryOperation",
                                "src": "3502:19:38"
                              }
                            ],
                            "id": 8012,
                            "name": "BinaryOperation",
                            "src": "3479:42:38"
                          }
                        ],
                        "id": 8013,
                        "name": "FunctionCall",
                        "src": "3470:52:38"
                      }
                    ],
                    "id": 8014,
                    "name": "ExpressionStatement",
                    "src": "3470:52:38"
                  },
                  {
                    "attributes": {
                      "functionReturnParameters": 7995
                    },
                    "children": [
                      {
                        "attributes": {
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "tryCall": false,
                          "type": "int128",
                          "type_conversion": true
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_int256",
                                  "typeString": "int256"
                                }
                              ],
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "type": "type(int128)"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "name": "int128"
                                },
                                "id": 8015,
                                "name": "ElementaryTypeName",
                                "src": "3535:6:38"
                              }
                            ],
                            "id": 8016,
                            "name": "ElementaryTypeNameExpression",
                            "src": "3535:6:38"
                          },
                          {
                            "attributes": {
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 7997,
                              "type": "int256",
                              "value": "result"
                            },
                            "id": 8017,
                            "name": "Identifier",
                            "src": "3543:6:38"
                          }
                        ],
                        "id": 8018,
                        "name": "FunctionCall",
                        "src": "3535:15:38"
                      }
                    ],
                    "id": 8019,
                    "name": "Return",
                    "src": "3528:22:38"
                  }
                ],
                "id": 8020,
                "name": "Block",
                "src": "3429:126:38"
              }
            ],
            "id": 8021,
            "name": "FunctionDefinition",
            "src": "3364:191:38"
          },
          {
            "attributes": {
              "implemented": true,
              "isConstructor": false,
              "kind": "function",
              "modifiers": [
                null
              ],
              "name": "sub",
              "scope": 10621,
              "stateMutability": "pure",
              "virtual": false,
              "visibility": "internal"
            },
            "children": [
              {
                "attributes": {
                  "text": " Calculate x - y.  Revert on overflow.\n @param x signed 64.64-bit fixed point number\n @param y signed 64.64-bit fixed point number\n @return signed 64.64-bit fixed point number"
                },
                "id": 8022,
                "name": "StructuredDocumentation",
                "src": "3559:206:38"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "x",
                      "scope": 8056,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "int128",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "int128",
                          "type": "int128"
                        },
                        "id": 8023,
                        "name": "ElementaryTypeName",
                        "src": "3782:6:38"
                      }
                    ],
                    "id": 8024,
                    "name": "VariableDeclaration",
                    "src": "3782:8:38"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "y",
                      "scope": 8056,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "int128",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "int128",
                          "type": "int128"
                        },
                        "id": 8025,
                        "name": "ElementaryTypeName",
                        "src": "3792:6:38"
                      }
                    ],
                    "id": 8026,
                    "name": "VariableDeclaration",
                    "src": "3792:8:38"
                  }
                ],
                "id": 8027,
                "name": "ParameterList",
                "src": "3781:20:38"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "",
                      "scope": 8056,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "int128",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "int128",
                          "type": "int128"
                        },
                        "id": 8028,
                        "name": "ElementaryTypeName",
                        "src": "3825:6:38"
                      }
                    ],
                    "id": 8029,
                    "name": "VariableDeclaration",
                    "src": "3825:6:38"
                  }
                ],
                "id": 8030,
                "name": "ParameterList",
                "src": "3824:8:38"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "assignments": [
                        8032
                      ]
                    },
                    "children": [
                      {
                        "attributes": {
                          "constant": false,
                          "mutability": "mutable",
                          "name": "result",
                          "scope": 8055,
                          "stateVariable": false,
                          "storageLocation": "default",
                          "type": "int256",
                          "visibility": "internal"
                        },
                        "children": [
                          {
                            "attributes": {
                              "name": "int256",
                              "type": "int256"
                            },
                            "id": 8031,
                            "name": "ElementaryTypeName",
                            "src": "3839:6:38"
                          }
                        ],
                        "id": 8032,
                        "name": "VariableDeclaration",
                        "src": "3839:13:38"
                      },
                      {
                        "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_int128",
                                      "typeString": "int128"
                                    }
                                  ],
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "type": "type(int256)"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "name": "int256"
                                    },
                                    "id": 8033,
                                    "name": "ElementaryTypeName",
                                    "src": "3855:6:38"
                                  }
                                ],
                                "id": 8034,
                                "name": "ElementaryTypeNameExpression",
                                "src": "3855:6:38"
                              },
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8024,
                                  "type": "int128",
                                  "value": "x"
                                },
                                "id": 8035,
                                "name": "Identifier",
                                "src": "3862:1:38"
                              }
                            ],
                            "id": 8036,
                            "name": "FunctionCall",
                            "src": "3855:9:38"
                          },
                          {
                            "attributes": {
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 8026,
                              "type": "int128",
                              "value": "y"
                            },
                            "id": 8037,
                            "name": "Identifier",
                            "src": "3867:1:38"
                          }
                        ],
                        "id": 8038,
                        "name": "BinaryOperation",
                        "src": "3855:13:38"
                      }
                    ],
                    "id": 8039,
                    "name": "VariableDeclarationStatement",
                    "src": "3839:29:38"
                  },
                  {
                    "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"
                                }
                              ],
                              "overloadedDeclarations": [
                                4294967278,
                                4294967278
                              ],
                              "referencedDeclaration": 4294967278,
                              "type": "function (bool) pure",
                              "value": "require"
                            },
                            "id": 8040,
                            "name": "Identifier",
                            "src": "3874:7:38"
                          },
                          {
                            "attributes": {
                              "commonType": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "&&",
                              "type": "bool"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "commonType": {
                                    "typeIdentifier": "t_int256",
                                    "typeString": "int256"
                                  },
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": ">=",
                                  "type": "bool"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 8032,
                                      "type": "int256",
                                      "value": "result"
                                    },
                                    "id": 8041,
                                    "name": "Identifier",
                                    "src": "3883:6:38"
                                  },
                                  {
                                    "attributes": {
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 7850,
                                      "type": "int128",
                                      "value": "MIN_64x64"
                                    },
                                    "id": 8042,
                                    "name": "Identifier",
                                    "src": "3893:9:38"
                                  }
                                ],
                                "id": 8043,
                                "name": "BinaryOperation",
                                "src": "3883:19:38"
                              },
                              {
                                "attributes": {
                                  "commonType": {
                                    "typeIdentifier": "t_int256",
                                    "typeString": "int256"
                                  },
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": "<=",
                                  "type": "bool"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 8032,
                                      "type": "int256",
                                      "value": "result"
                                    },
                                    "id": 8044,
                                    "name": "Identifier",
                                    "src": "3906:6:38"
                                  },
                                  {
                                    "attributes": {
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 7853,
                                      "type": "int128",
                                      "value": "MAX_64x64"
                                    },
                                    "id": 8045,
                                    "name": "Identifier",
                                    "src": "3916:9:38"
                                  }
                                ],
                                "id": 8046,
                                "name": "BinaryOperation",
                                "src": "3906:19:38"
                              }
                            ],
                            "id": 8047,
                            "name": "BinaryOperation",
                            "src": "3883:42:38"
                          }
                        ],
                        "id": 8048,
                        "name": "FunctionCall",
                        "src": "3874:52:38"
                      }
                    ],
                    "id": 8049,
                    "name": "ExpressionStatement",
                    "src": "3874:52:38"
                  },
                  {
                    "attributes": {
                      "functionReturnParameters": 8030
                    },
                    "children": [
                      {
                        "attributes": {
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "tryCall": false,
                          "type": "int128",
                          "type_conversion": true
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_int256",
                                  "typeString": "int256"
                                }
                              ],
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "type": "type(int128)"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "name": "int128"
                                },
                                "id": 8050,
                                "name": "ElementaryTypeName",
                                "src": "3939:6:38"
                              }
                            ],
                            "id": 8051,
                            "name": "ElementaryTypeNameExpression",
                            "src": "3939:6:38"
                          },
                          {
                            "attributes": {
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 8032,
                              "type": "int256",
                              "value": "result"
                            },
                            "id": 8052,
                            "name": "Identifier",
                            "src": "3947:6:38"
                          }
                        ],
                        "id": 8053,
                        "name": "FunctionCall",
                        "src": "3939:15:38"
                      }
                    ],
                    "id": 8054,
                    "name": "Return",
                    "src": "3932:22:38"
                  }
                ],
                "id": 8055,
                "name": "Block",
                "src": "3833:126:38"
              }
            ],
            "id": 8056,
            "name": "FunctionDefinition",
            "src": "3768:191:38"
          },
          {
            "attributes": {
              "implemented": true,
              "isConstructor": false,
              "kind": "function",
              "modifiers": [
                null
              ],
              "name": "mul",
              "scope": 10621,
              "stateMutability": "pure",
              "virtual": false,
              "visibility": "internal"
            },
            "children": [
              {
                "attributes": {
                  "text": " Calculate x * y rounding down.  Revert on overflow.\n @param x signed 64.64-bit fixed point number\n @param y signed 64.64-bit fixed point number\n @return signed 64.64-bit fixed point number"
                },
                "id": 8057,
                "name": "StructuredDocumentation",
                "src": "3963:220:38"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "x",
                      "scope": 8093,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "int128",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "int128",
                          "type": "int128"
                        },
                        "id": 8058,
                        "name": "ElementaryTypeName",
                        "src": "4200:6:38"
                      }
                    ],
                    "id": 8059,
                    "name": "VariableDeclaration",
                    "src": "4200:8:38"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "y",
                      "scope": 8093,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "int128",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "int128",
                          "type": "int128"
                        },
                        "id": 8060,
                        "name": "ElementaryTypeName",
                        "src": "4210:6:38"
                      }
                    ],
                    "id": 8061,
                    "name": "VariableDeclaration",
                    "src": "4210:8:38"
                  }
                ],
                "id": 8062,
                "name": "ParameterList",
                "src": "4199:20:38"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "",
                      "scope": 8093,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "int128",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "int128",
                          "type": "int128"
                        },
                        "id": 8063,
                        "name": "ElementaryTypeName",
                        "src": "4243:6:38"
                      }
                    ],
                    "id": 8064,
                    "name": "VariableDeclaration",
                    "src": "4243:6:38"
                  }
                ],
                "id": 8065,
                "name": "ParameterList",
                "src": "4242:8:38"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "assignments": [
                        8067
                      ]
                    },
                    "children": [
                      {
                        "attributes": {
                          "constant": false,
                          "mutability": "mutable",
                          "name": "result",
                          "scope": 8092,
                          "stateVariable": false,
                          "storageLocation": "default",
                          "type": "int256",
                          "visibility": "internal"
                        },
                        "children": [
                          {
                            "attributes": {
                              "name": "int256",
                              "type": "int256"
                            },
                            "id": 8066,
                            "name": "ElementaryTypeName",
                            "src": "4257:6:38"
                          }
                        ],
                        "id": 8067,
                        "name": "VariableDeclaration",
                        "src": "4257:13:38"
                      },
                      {
                        "attributes": {
                          "commonType": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          },
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": ">>",
                          "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_int128",
                                          "typeString": "int128"
                                        }
                                      ],
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "type": "type(int256)"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "name": "int256"
                                        },
                                        "id": 8068,
                                        "name": "ElementaryTypeName",
                                        "src": "4273:6:38"
                                      }
                                    ],
                                    "id": 8069,
                                    "name": "ElementaryTypeNameExpression",
                                    "src": "4273:6:38"
                                  },
                                  {
                                    "attributes": {
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 8059,
                                      "type": "int128",
                                      "value": "x"
                                    },
                                    "id": 8070,
                                    "name": "Identifier",
                                    "src": "4280:1:38"
                                  }
                                ],
                                "id": 8071,
                                "name": "FunctionCall",
                                "src": "4273:9:38"
                              },
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8061,
                                  "type": "int128",
                                  "value": "y"
                                },
                                "id": 8072,
                                "name": "Identifier",
                                "src": "4285:1:38"
                              }
                            ],
                            "id": 8073,
                            "name": "BinaryOperation",
                            "src": "4273:13:38"
                          },
                          {
                            "attributes": {
                              "hexvalue": "3634",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "token": "number",
                              "type": "int_const 64",
                              "value": "64"
                            },
                            "id": 8074,
                            "name": "Literal",
                            "src": "4290:2:38"
                          }
                        ],
                        "id": 8075,
                        "name": "BinaryOperation",
                        "src": "4273:19:38"
                      }
                    ],
                    "id": 8076,
                    "name": "VariableDeclarationStatement",
                    "src": "4257:35:38"
                  },
                  {
                    "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"
                                }
                              ],
                              "overloadedDeclarations": [
                                4294967278,
                                4294967278
                              ],
                              "referencedDeclaration": 4294967278,
                              "type": "function (bool) pure",
                              "value": "require"
                            },
                            "id": 8077,
                            "name": "Identifier",
                            "src": "4298:7:38"
                          },
                          {
                            "attributes": {
                              "commonType": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "&&",
                              "type": "bool"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "commonType": {
                                    "typeIdentifier": "t_int256",
                                    "typeString": "int256"
                                  },
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": ">=",
                                  "type": "bool"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 8067,
                                      "type": "int256",
                                      "value": "result"
                                    },
                                    "id": 8078,
                                    "name": "Identifier",
                                    "src": "4307:6:38"
                                  },
                                  {
                                    "attributes": {
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 7850,
                                      "type": "int128",
                                      "value": "MIN_64x64"
                                    },
                                    "id": 8079,
                                    "name": "Identifier",
                                    "src": "4317:9:38"
                                  }
                                ],
                                "id": 8080,
                                "name": "BinaryOperation",
                                "src": "4307:19:38"
                              },
                              {
                                "attributes": {
                                  "commonType": {
                                    "typeIdentifier": "t_int256",
                                    "typeString": "int256"
                                  },
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": "<=",
                                  "type": "bool"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 8067,
                                      "type": "int256",
                                      "value": "result"
                                    },
                                    "id": 8081,
                                    "name": "Identifier",
                                    "src": "4330:6:38"
                                  },
                                  {
                                    "attributes": {
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 7853,
                                      "type": "int128",
                                      "value": "MAX_64x64"
                                    },
                                    "id": 8082,
                                    "name": "Identifier",
                                    "src": "4340:9:38"
                                  }
                                ],
                                "id": 8083,
                                "name": "BinaryOperation",
                                "src": "4330:19:38"
                              }
                            ],
                            "id": 8084,
                            "name": "BinaryOperation",
                            "src": "4307:42:38"
                          }
                        ],
                        "id": 8085,
                        "name": "FunctionCall",
                        "src": "4298:52:38"
                      }
                    ],
                    "id": 8086,
                    "name": "ExpressionStatement",
                    "src": "4298:52:38"
                  },
                  {
                    "attributes": {
                      "functionReturnParameters": 8065
                    },
                    "children": [
                      {
                        "attributes": {
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "tryCall": false,
                          "type": "int128",
                          "type_conversion": true
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_int256",
                                  "typeString": "int256"
                                }
                              ],
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "type": "type(int128)"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "name": "int128"
                                },
                                "id": 8087,
                                "name": "ElementaryTypeName",
                                "src": "4363:6:38"
                              }
                            ],
                            "id": 8088,
                            "name": "ElementaryTypeNameExpression",
                            "src": "4363:6:38"
                          },
                          {
                            "attributes": {
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 8067,
                              "type": "int256",
                              "value": "result"
                            },
                            "id": 8089,
                            "name": "Identifier",
                            "src": "4371:6:38"
                          }
                        ],
                        "id": 8090,
                        "name": "FunctionCall",
                        "src": "4363:15:38"
                      }
                    ],
                    "id": 8091,
                    "name": "Return",
                    "src": "4356:22:38"
                  }
                ],
                "id": 8092,
                "name": "Block",
                "src": "4251:132:38"
              }
            ],
            "id": 8093,
            "name": "FunctionDefinition",
            "src": "4186:197:38"
          },
          {
            "attributes": {
              "implemented": true,
              "isConstructor": false,
              "kind": "function",
              "modifiers": [
                null
              ],
              "name": "muli",
              "scope": 10621,
              "stateMutability": "pure",
              "virtual": false,
              "visibility": "internal"
            },
            "children": [
              {
                "attributes": {
                  "text": " Calculate x * y rounding towards zero, where x is signed 64.64 fixed point\n number and y is signed 256-bit integer number.  Revert on overflow.\n @param x signed 64.64 fixed point number\n @param y signed 256-bit integer number\n @return signed 256-bit integer number"
                },
                "id": 8094,
                "name": "StructuredDocumentation",
                "src": "4387:300:38"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "x",
                      "scope": 8196,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "int128",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "int128",
                          "type": "int128"
                        },
                        "id": 8095,
                        "name": "ElementaryTypeName",
                        "src": "4705:6:38"
                      }
                    ],
                    "id": 8096,
                    "name": "VariableDeclaration",
                    "src": "4705:8:38"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "y",
                      "scope": 8196,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "int256",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "int256",
                          "type": "int256"
                        },
                        "id": 8097,
                        "name": "ElementaryTypeName",
                        "src": "4715:6:38"
                      }
                    ],
                    "id": 8098,
                    "name": "VariableDeclaration",
                    "src": "4715:8:38"
                  }
                ],
                "id": 8099,
                "name": "ParameterList",
                "src": "4704:20:38"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "",
                      "scope": 8196,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "int256",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "int256",
                          "type": "int256"
                        },
                        "id": 8100,
                        "name": "ElementaryTypeName",
                        "src": "4748:6:38"
                      }
                    ],
                    "id": 8101,
                    "name": "VariableDeclaration",
                    "src": "4748:6:38"
                  }
                ],
                "id": 8102,
                "name": "ParameterList",
                "src": "4747:8:38"
              },
              {
                "children": [
                  {
                    "children": [
                      {
                        "attributes": {
                          "commonType": {
                            "typeIdentifier": "t_int128",
                            "typeString": "int128"
                          },
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "==",
                          "type": "bool"
                        },
                        "children": [
                          {
                            "attributes": {
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 8096,
                              "type": "int128",
                              "value": "x"
                            },
                            "id": 8103,
                            "name": "Identifier",
                            "src": "4766:1:38"
                          },
                          {
                            "attributes": {
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 7850,
                              "type": "int128",
                              "value": "MIN_64x64"
                            },
                            "id": 8104,
                            "name": "Identifier",
                            "src": "4771:9:38"
                          }
                        ],
                        "id": 8105,
                        "name": "BinaryOperation",
                        "src": "4766:14:38"
                      },
                      {
                        "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"
                                        }
                                      ],
                                      "overloadedDeclarations": [
                                        4294967278,
                                        4294967278
                                      ],
                                      "referencedDeclaration": 4294967278,
                                      "type": "function (bool) pure",
                                      "value": "require"
                                    },
                                    "id": 8106,
                                    "name": "Identifier",
                                    "src": "4790:7:38"
                                  },
                                  {
                                    "attributes": {
                                      "commonType": {
                                        "typeIdentifier": "t_bool",
                                        "typeString": "bool"
                                      },
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "operator": "&&",
                                      "type": "bool"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "commonType": {
                                            "typeIdentifier": "t_int256",
                                            "typeString": "int256"
                                          },
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "operator": ">=",
                                          "type": "bool"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 8098,
                                              "type": "int256",
                                              "value": "y"
                                            },
                                            "id": 8107,
                                            "name": "Identifier",
                                            "src": "4799:1:38"
                                          },
                                          {
                                            "attributes": {
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "lValueRequested": false,
                                              "operator": "-",
                                              "prefix": true,
                                              "type": "int_const -627...(51 digits omitted)...2895"
                                            },
                                            "children": [
                                              {
                                                "attributes": {
                                                  "hexvalue": "3078464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646",
                                                  "isConstant": false,
                                                  "isLValue": false,
                                                  "isPure": true,
                                                  "lValueRequested": false,
                                                  "token": "number",
                                                  "type": "int_const 6277...(50 digits omitted)...2895",
                                                  "value": "0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
                                                },
                                                "id": 8108,
                                                "name": "Literal",
                                                "src": "4805:50:38"
                                              }
                                            ],
                                            "id": 8109,
                                            "name": "UnaryOperation",
                                            "src": "4804:51:38"
                                          }
                                        ],
                                        "id": 8110,
                                        "name": "BinaryOperation",
                                        "src": "4799:56:38"
                                      },
                                      {
                                        "attributes": {
                                          "commonType": {
                                            "typeIdentifier": "t_int256",
                                            "typeString": "int256"
                                          },
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "operator": "<=",
                                          "type": "bool"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 8098,
                                              "type": "int256",
                                              "value": "y"
                                            },
                                            "id": 8111,
                                            "name": "Identifier",
                                            "src": "4867:1:38"
                                          },
                                          {
                                            "attributes": {
                                              "hexvalue": "307831303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030",
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "lValueRequested": false,
                                              "token": "number",
                                              "type": "int_const 6277...(50 digits omitted)...2896",
                                              "value": "0x1000000000000000000000000000000000000000000000000"
                                            },
                                            "id": 8112,
                                            "name": "Literal",
                                            "src": "4872:51:38"
                                          }
                                        ],
                                        "id": 8113,
                                        "name": "BinaryOperation",
                                        "src": "4867:56:38"
                                      }
                                    ],
                                    "id": 8114,
                                    "name": "BinaryOperation",
                                    "src": "4799:124:38"
                                  }
                                ],
                                "id": 8115,
                                "name": "FunctionCall",
                                "src": "4790:134:38"
                              }
                            ],
                            "id": 8116,
                            "name": "ExpressionStatement",
                            "src": "4790:134:38"
                          },
                          {
                            "attributes": {
                              "functionReturnParameters": 8102
                            },
                            "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,
                                      "lValueRequested": false,
                                      "operator": "-",
                                      "prefix": true,
                                      "type": "int256"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 8098,
                                          "type": "int256",
                                          "value": "y"
                                        },
                                        "id": 8117,
                                        "name": "Identifier",
                                        "src": "4940:1:38"
                                      }
                                    ],
                                    "id": 8118,
                                    "name": "UnaryOperation",
                                    "src": "4939:2:38"
                                  },
                                  {
                                    "attributes": {
                                      "hexvalue": "3633",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "token": "number",
                                      "type": "int_const 63",
                                      "value": "63"
                                    },
                                    "id": 8119,
                                    "name": "Literal",
                                    "src": "4945:2:38"
                                  }
                                ],
                                "id": 8120,
                                "name": "BinaryOperation",
                                "src": "4939:8:38"
                              }
                            ],
                            "id": 8121,
                            "name": "Return",
                            "src": "4932:15:38"
                          }
                        ],
                        "id": 8122,
                        "name": "Block",
                        "src": "4782:172:38"
                      },
                      {
                        "children": [
                          {
                            "attributes": {
                              "assignments": [
                                8124
                              ]
                            },
                            "children": [
                              {
                                "attributes": {
                                  "constant": false,
                                  "mutability": "mutable",
                                  "name": "negativeResult",
                                  "scope": 8193,
                                  "stateVariable": false,
                                  "storageLocation": "default",
                                  "type": "bool",
                                  "visibility": "internal"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "name": "bool",
                                      "type": "bool"
                                    },
                                    "id": 8123,
                                    "name": "ElementaryTypeName",
                                    "src": "4968:4:38"
                                  }
                                ],
                                "id": 8124,
                                "name": "VariableDeclaration",
                                "src": "4968:19:38"
                              },
                              {
                                "attributes": {
                                  "hexvalue": "66616c7365",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "token": "bool",
                                  "type": "bool",
                                  "value": "false"
                                },
                                "id": 8125,
                                "name": "Literal",
                                "src": "4990:5:38"
                              }
                            ],
                            "id": 8126,
                            "name": "VariableDeclarationStatement",
                            "src": "4968:27:38"
                          },
                          {
                            "attributes": {},
                            "children": [
                              {
                                "attributes": {
                                  "commonType": {
                                    "typeIdentifier": "t_int128",
                                    "typeString": "int128"
                                  },
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": "<",
                                  "type": "bool"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 8096,
                                      "type": "int128",
                                      "value": "x"
                                    },
                                    "id": 8127,
                                    "name": "Identifier",
                                    "src": "5007:1:38"
                                  },
                                  {
                                    "attributes": {
                                      "hexvalue": "30",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "token": "number",
                                      "type": "int_const 0",
                                      "value": "0"
                                    },
                                    "id": 8128,
                                    "name": "Literal",
                                    "src": "5011:1:38"
                                  }
                                ],
                                "id": 8129,
                                "name": "BinaryOperation",
                                "src": "5007:5:38"
                              },
                              {
                                "children": [
                                  {
                                    "children": [
                                      {
                                        "attributes": {
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "operator": "=",
                                          "type": "int128"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 8096,
                                              "type": "int128",
                                              "value": "x"
                                            },
                                            "id": 8130,
                                            "name": "Identifier",
                                            "src": "5024:1:38"
                                          },
                                          {
                                            "attributes": {
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": false,
                                              "lValueRequested": false,
                                              "operator": "-",
                                              "prefix": true,
                                              "type": "int128"
                                            },
                                            "children": [
                                              {
                                                "attributes": {
                                                  "overloadedDeclarations": [
                                                    null
                                                  ],
                                                  "referencedDeclaration": 8096,
                                                  "type": "int128",
                                                  "value": "x"
                                                },
                                                "id": 8131,
                                                "name": "Identifier",
                                                "src": "5029:1:38"
                                              }
                                            ],
                                            "id": 8132,
                                            "name": "UnaryOperation",
                                            "src": "5028:2:38"
                                          }
                                        ],
                                        "id": 8133,
                                        "name": "Assignment",
                                        "src": "5024:6:38"
                                      }
                                    ],
                                    "id": 8134,
                                    "name": "ExpressionStatement",
                                    "src": "5024:6:38"
                                  },
                                  {
                                    "children": [
                                      {
                                        "attributes": {
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "operator": "=",
                                          "type": "bool"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 8124,
                                              "type": "bool",
                                              "value": "negativeResult"
                                            },
                                            "id": 8135,
                                            "name": "Identifier",
                                            "src": "5040:14:38"
                                          },
                                          {
                                            "attributes": {
                                              "hexvalue": "74727565",
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "lValueRequested": false,
                                              "token": "bool",
                                              "type": "bool",
                                              "value": "true"
                                            },
                                            "id": 8136,
                                            "name": "Literal",
                                            "src": "5057:4:38"
                                          }
                                        ],
                                        "id": 8137,
                                        "name": "Assignment",
                                        "src": "5040:21:38"
                                      }
                                    ],
                                    "id": 8138,
                                    "name": "ExpressionStatement",
                                    "src": "5040:21:38"
                                  }
                                ],
                                "id": 8139,
                                "name": "Block",
                                "src": "5014:56:38"
                              }
                            ],
                            "id": 8140,
                            "name": "IfStatement",
                            "src": "5003:67:38"
                          },
                          {
                            "attributes": {},
                            "children": [
                              {
                                "attributes": {
                                  "commonType": {
                                    "typeIdentifier": "t_int256",
                                    "typeString": "int256"
                                  },
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": "<",
                                  "type": "bool"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 8098,
                                      "type": "int256",
                                      "value": "y"
                                    },
                                    "id": 8141,
                                    "name": "Identifier",
                                    "src": "5081:1:38"
                                  },
                                  {
                                    "attributes": {
                                      "hexvalue": "30",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "token": "number",
                                      "type": "int_const 0",
                                      "value": "0"
                                    },
                                    "id": 8142,
                                    "name": "Literal",
                                    "src": "5085:1:38"
                                  }
                                ],
                                "id": 8143,
                                "name": "BinaryOperation",
                                "src": "5081:5:38"
                              },
                              {
                                "children": [
                                  {
                                    "children": [
                                      {
                                        "attributes": {
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "operator": "=",
                                          "type": "int256"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 8098,
                                              "type": "int256",
                                              "value": "y"
                                            },
                                            "id": 8144,
                                            "name": "Identifier",
                                            "src": "5098:1:38"
                                          },
                                          {
                                            "attributes": {
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": false,
                                              "lValueRequested": false,
                                              "operator": "-",
                                              "prefix": true,
                                              "type": "int256"
                                            },
                                            "children": [
                                              {
                                                "attributes": {
                                                  "overloadedDeclarations": [
                                                    null
                                                  ],
                                                  "referencedDeclaration": 8098,
                                                  "type": "int256",
                                                  "value": "y"
                                                },
                                                "id": 8145,
                                                "name": "Identifier",
                                                "src": "5103:1:38"
                                              }
                                            ],
                                            "id": 8146,
                                            "name": "UnaryOperation",
                                            "src": "5102:2:38"
                                          }
                                        ],
                                        "id": 8147,
                                        "name": "Assignment",
                                        "src": "5098:6:38"
                                      }
                                    ],
                                    "id": 8148,
                                    "name": "ExpressionStatement",
                                    "src": "5098:6:38"
                                  },
                                  {
                                    "children": [
                                      {
                                        "attributes": {
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "operator": "=",
                                          "type": "bool"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 8124,
                                              "type": "bool",
                                              "value": "negativeResult"
                                            },
                                            "id": 8149,
                                            "name": "Identifier",
                                            "src": "5151:14:38"
                                          },
                                          {
                                            "attributes": {
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": false,
                                              "lValueRequested": false,
                                              "operator": "!",
                                              "prefix": true,
                                              "type": "bool"
                                            },
                                            "children": [
                                              {
                                                "attributes": {
                                                  "overloadedDeclarations": [
                                                    null
                                                  ],
                                                  "referencedDeclaration": 8124,
                                                  "type": "bool",
                                                  "value": "negativeResult"
                                                },
                                                "id": 8150,
                                                "name": "Identifier",
                                                "src": "5169:14:38"
                                              }
                                            ],
                                            "id": 8151,
                                            "name": "UnaryOperation",
                                            "src": "5168:15:38"
                                          }
                                        ],
                                        "id": 8152,
                                        "name": "Assignment",
                                        "src": "5151:32:38"
                                      }
                                    ],
                                    "id": 8153,
                                    "name": "ExpressionStatement",
                                    "src": "5151:32:38"
                                  }
                                ],
                                "id": 8154,
                                "name": "Block",
                                "src": "5088:104:38"
                              }
                            ],
                            "id": 8155,
                            "name": "IfStatement",
                            "src": "5077:115:38"
                          },
                          {
                            "attributes": {
                              "assignments": [
                                8157
                              ]
                            },
                            "children": [
                              {
                                "attributes": {
                                  "constant": false,
                                  "mutability": "mutable",
                                  "name": "absoluteResult",
                                  "scope": 8193,
                                  "stateVariable": false,
                                  "storageLocation": "default",
                                  "type": "uint256",
                                  "visibility": "internal"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "name": "uint256",
                                      "type": "uint256"
                                    },
                                    "id": 8156,
                                    "name": "ElementaryTypeName",
                                    "src": "5199:7:38"
                                  }
                                ],
                                "id": 8157,
                                "name": "VariableDeclaration",
                                "src": "5199:22:38"
                              },
                              {
                                "attributes": {
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "isStructConstructorCall": false,
                                  "lValueRequested": false,
                                  "names": [
                                    null
                                  ],
                                  "tryCall": false,
                                  "type": "uint256",
                                  "type_conversion": false
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_int128",
                                          "typeString": "int128"
                                        },
                                        {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      ],
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 8268,
                                      "type": "function (int128,uint256) pure returns (uint256)",
                                      "value": "mulu"
                                    },
                                    "id": 8158,
                                    "name": "Identifier",
                                    "src": "5224:4:38"
                                  },
                                  {
                                    "attributes": {
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 8096,
                                      "type": "int128",
                                      "value": "x"
                                    },
                                    "id": 8159,
                                    "name": "Identifier",
                                    "src": "5230:1:38"
                                  },
                                  {
                                    "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": 8160,
                                            "name": "ElementaryTypeName",
                                            "src": "5233:7:38"
                                          }
                                        ],
                                        "id": 8161,
                                        "name": "ElementaryTypeNameExpression",
                                        "src": "5233:7:38"
                                      },
                                      {
                                        "attributes": {
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 8098,
                                          "type": "int256",
                                          "value": "y"
                                        },
                                        "id": 8162,
                                        "name": "Identifier",
                                        "src": "5242:1:38"
                                      }
                                    ],
                                    "id": 8163,
                                    "name": "FunctionCall",
                                    "src": "5233:11:38"
                                  }
                                ],
                                "id": 8164,
                                "name": "FunctionCall",
                                "src": "5224:21:38"
                              }
                            ],
                            "id": 8165,
                            "name": "VariableDeclarationStatement",
                            "src": "5199:46:38"
                          },
                          {
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8124,
                                  "type": "bool",
                                  "value": "negativeResult"
                                },
                                "id": 8166,
                                "name": "Identifier",
                                "src": "5257:14:38"
                              },
                              {
                                "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"
                                                }
                                              ],
                                              "overloadedDeclarations": [
                                                4294967278,
                                                4294967278
                                              ],
                                              "referencedDeclaration": 4294967278,
                                              "type": "function (bool) pure",
                                              "value": "require"
                                            },
                                            "id": 8167,
                                            "name": "Identifier",
                                            "src": "5283:7:38"
                                          },
                                          {
                                            "attributes": {
                                              "commonType": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                              },
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": false,
                                              "lValueRequested": false,
                                              "operator": "<=",
                                              "type": "bool"
                                            },
                                            "children": [
                                              {
                                                "attributes": {
                                                  "overloadedDeclarations": [
                                                    null
                                                  ],
                                                  "referencedDeclaration": 8157,
                                                  "type": "uint256",
                                                  "value": "absoluteResult"
                                                },
                                                "id": 8168,
                                                "name": "Identifier",
                                                "src": "5292:14:38"
                                              },
                                              {
                                                "attributes": {
                                                  "hexvalue": "307838303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030",
                                                  "isConstant": false,
                                                  "isLValue": false,
                                                  "isPure": true,
                                                  "lValueRequested": false,
                                                  "token": "number",
                                                  "type": "int_const 5789...(69 digits omitted)...9968",
                                                  "value": "0x8000000000000000000000000000000000000000000000000000000000000000"
                                                },
                                                "id": 8169,
                                                "name": "Literal",
                                                "src": "5320:66:38"
                                              }
                                            ],
                                            "id": 8170,
                                            "name": "BinaryOperation",
                                            "src": "5292:94:38"
                                          }
                                        ],
                                        "id": 8171,
                                        "name": "FunctionCall",
                                        "src": "5283:104:38"
                                      }
                                    ],
                                    "id": 8172,
                                    "name": "ExpressionStatement",
                                    "src": "5283:104:38"
                                  },
                                  {
                                    "attributes": {
                                      "functionReturnParameters": 8102
                                    },
                                    "children": [
                                      {
                                        "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_uint256",
                                                      "typeString": "uint256"
                                                    }
                                                  ],
                                                  "isConstant": false,
                                                  "isLValue": false,
                                                  "isPure": true,
                                                  "lValueRequested": false,
                                                  "type": "type(int256)"
                                                },
                                                "children": [
                                                  {
                                                    "attributes": {
                                                      "name": "int256"
                                                    },
                                                    "id": 8173,
                                                    "name": "ElementaryTypeName",
                                                    "src": "5405:6:38"
                                                  }
                                                ],
                                                "id": 8174,
                                                "name": "ElementaryTypeNameExpression",
                                                "src": "5405:6:38"
                                              },
                                              {
                                                "attributes": {
                                                  "overloadedDeclarations": [
                                                    null
                                                  ],
                                                  "referencedDeclaration": 8157,
                                                  "type": "uint256",
                                                  "value": "absoluteResult"
                                                },
                                                "id": 8175,
                                                "name": "Identifier",
                                                "src": "5413:14:38"
                                              }
                                            ],
                                            "id": 8176,
                                            "name": "FunctionCall",
                                            "src": "5405:23:38"
                                          }
                                        ],
                                        "id": 8177,
                                        "name": "UnaryOperation",
                                        "src": "5404:24:38"
                                      }
                                    ],
                                    "id": 8178,
                                    "name": "Return",
                                    "src": "5397:31:38"
                                  }
                                ],
                                "id": 8179,
                                "name": "Block",
                                "src": "5273:201:38"
                              },
                              {
                                "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"
                                                }
                                              ],
                                              "overloadedDeclarations": [
                                                4294967278,
                                                4294967278
                                              ],
                                              "referencedDeclaration": 4294967278,
                                              "type": "function (bool) pure",
                                              "value": "require"
                                            },
                                            "id": 8180,
                                            "name": "Identifier",
                                            "src": "5490:7:38"
                                          },
                                          {
                                            "attributes": {
                                              "commonType": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                              },
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": false,
                                              "lValueRequested": false,
                                              "operator": "<=",
                                              "type": "bool"
                                            },
                                            "children": [
                                              {
                                                "attributes": {
                                                  "overloadedDeclarations": [
                                                    null
                                                  ],
                                                  "referencedDeclaration": 8157,
                                                  "type": "uint256",
                                                  "value": "absoluteResult"
                                                },
                                                "id": 8181,
                                                "name": "Identifier",
                                                "src": "5499:14:38"
                                              },
                                              {
                                                "attributes": {
                                                  "hexvalue": "307837464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646",
                                                  "isConstant": false,
                                                  "isLValue": false,
                                                  "isPure": true,
                                                  "lValueRequested": false,
                                                  "token": "number",
                                                  "type": "int_const 5789...(69 digits omitted)...9967",
                                                  "value": "0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
                                                },
                                                "id": 8182,
                                                "name": "Literal",
                                                "src": "5527:66:38"
                                              }
                                            ],
                                            "id": 8183,
                                            "name": "BinaryOperation",
                                            "src": "5499:94:38"
                                          }
                                        ],
                                        "id": 8184,
                                        "name": "FunctionCall",
                                        "src": "5490:104:38"
                                      }
                                    ],
                                    "id": 8185,
                                    "name": "ExpressionStatement",
                                    "src": "5490:104:38"
                                  },
                                  {
                                    "attributes": {
                                      "functionReturnParameters": 8102
                                    },
                                    "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": 8186,
                                                "name": "ElementaryTypeName",
                                                "src": "5611:6:38"
                                              }
                                            ],
                                            "id": 8187,
                                            "name": "ElementaryTypeNameExpression",
                                            "src": "5611:6:38"
                                          },
                                          {
                                            "attributes": {
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 8157,
                                              "type": "uint256",
                                              "value": "absoluteResult"
                                            },
                                            "id": 8188,
                                            "name": "Identifier",
                                            "src": "5619:14:38"
                                          }
                                        ],
                                        "id": 8189,
                                        "name": "FunctionCall",
                                        "src": "5611:23:38"
                                      }
                                    ],
                                    "id": 8190,
                                    "name": "Return",
                                    "src": "5604:30:38"
                                  }
                                ],
                                "id": 8191,
                                "name": "Block",
                                "src": "5480:163:38"
                              }
                            ],
                            "id": 8192,
                            "name": "IfStatement",
                            "src": "5253:390:38"
                          }
                        ],
                        "id": 8193,
                        "name": "Block",
                        "src": "4960:689:38"
                      }
                    ],
                    "id": 8194,
                    "name": "IfStatement",
                    "src": "4762:887:38"
                  }
                ],
                "id": 8195,
                "name": "Block",
                "src": "4756:897:38"
              }
            ],
            "id": 8196,
            "name": "FunctionDefinition",
            "src": "4690:963:38"
          },
          {
            "attributes": {
              "implemented": true,
              "isConstructor": false,
              "kind": "function",
              "modifiers": [
                null
              ],
              "name": "mulu",
              "scope": 10621,
              "stateMutability": "pure",
              "virtual": false,
              "visibility": "internal"
            },
            "children": [
              {
                "attributes": {
                  "text": " Calculate x * y rounding down, where x is signed 64.64 fixed point number\n and y is unsigned 256-bit integer number.  Revert on overflow.\n @param x signed 64.64 fixed point number\n @param y unsigned 256-bit integer number\n @return unsigned 256-bit integer number"
                },
                "id": 8197,
                "name": "StructuredDocumentation",
                "src": "5657:298:38"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "x",
                      "scope": 8268,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "int128",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "int128",
                          "type": "int128"
                        },
                        "id": 8198,
                        "name": "ElementaryTypeName",
                        "src": "5973:6:38"
                      }
                    ],
                    "id": 8199,
                    "name": "VariableDeclaration",
                    "src": "5973:8:38"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "y",
                      "scope": 8268,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint256",
                          "type": "uint256"
                        },
                        "id": 8200,
                        "name": "ElementaryTypeName",
                        "src": "5983:7:38"
                      }
                    ],
                    "id": 8201,
                    "name": "VariableDeclaration",
                    "src": "5983:9:38"
                  }
                ],
                "id": 8202,
                "name": "ParameterList",
                "src": "5972:21:38"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "",
                      "scope": 8268,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint256",
                          "type": "uint256"
                        },
                        "id": 8203,
                        "name": "ElementaryTypeName",
                        "src": "6017:7:38"
                      }
                    ],
                    "id": 8204,
                    "name": "VariableDeclaration",
                    "src": "6017:7:38"
                  }
                ],
                "id": 8205,
                "name": "ParameterList",
                "src": "6016:9:38"
              },
              {
                "children": [
                  {
                    "attributes": {},
                    "children": [
                      {
                        "attributes": {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "==",
                          "type": "bool"
                        },
                        "children": [
                          {
                            "attributes": {
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 8201,
                              "type": "uint256",
                              "value": "y"
                            },
                            "id": 8206,
                            "name": "Identifier",
                            "src": "6036:1:38"
                          },
                          {
                            "attributes": {
                              "hexvalue": "30",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "token": "number",
                              "type": "int_const 0",
                              "value": "0"
                            },
                            "id": 8207,
                            "name": "Literal",
                            "src": "6041:1:38"
                          }
                        ],
                        "id": 8208,
                        "name": "BinaryOperation",
                        "src": "6036:6:38"
                      },
                      {
                        "attributes": {
                          "functionReturnParameters": 8205
                        },
                        "children": [
                          {
                            "attributes": {
                              "hexvalue": "30",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "token": "number",
                              "type": "int_const 0",
                              "value": "0"
                            },
                            "id": 8209,
                            "name": "Literal",
                            "src": "6051:1:38"
                          }
                        ],
                        "id": 8210,
                        "name": "Return",
                        "src": "6044:8:38"
                      }
                    ],
                    "id": 8211,
                    "name": "IfStatement",
                    "src": "6032:20:38"
                  },
                  {
                    "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"
                                }
                              ],
                              "overloadedDeclarations": [
                                4294967278,
                                4294967278
                              ],
                              "referencedDeclaration": 4294967278,
                              "type": "function (bool) pure",
                              "value": "require"
                            },
                            "id": 8212,
                            "name": "Identifier",
                            "src": "6059:7:38"
                          },
                          {
                            "attributes": {
                              "commonType": {
                                "typeIdentifier": "t_int128",
                                "typeString": "int128"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": ">=",
                              "type": "bool"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8199,
                                  "type": "int128",
                                  "value": "x"
                                },
                                "id": 8213,
                                "name": "Identifier",
                                "src": "6068:1:38"
                              },
                              {
                                "attributes": {
                                  "hexvalue": "30",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "token": "number",
                                  "type": "int_const 0",
                                  "value": "0"
                                },
                                "id": 8214,
                                "name": "Literal",
                                "src": "6073:1:38"
                              }
                            ],
                            "id": 8215,
                            "name": "BinaryOperation",
                            "src": "6068:6:38"
                          }
                        ],
                        "id": 8216,
                        "name": "FunctionCall",
                        "src": "6059:16:38"
                      }
                    ],
                    "id": 8217,
                    "name": "ExpressionStatement",
                    "src": "6059:16:38"
                  },
                  {
                    "attributes": {
                      "assignments": [
                        8219
                      ]
                    },
                    "children": [
                      {
                        "attributes": {
                          "constant": false,
                          "mutability": "mutable",
                          "name": "lo",
                          "scope": 8267,
                          "stateVariable": false,
                          "storageLocation": "default",
                          "type": "uint256",
                          "visibility": "internal"
                        },
                        "children": [
                          {
                            "attributes": {
                              "name": "uint256",
                              "type": "uint256"
                            },
                            "id": 8218,
                            "name": "ElementaryTypeName",
                            "src": "6082:7:38"
                          }
                        ],
                        "id": 8219,
                        "name": "VariableDeclaration",
                        "src": "6082:10:38"
                      },
                      {
                        "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": {
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "isStructConstructorCall": false,
                                      "lValueRequested": false,
                                      "names": [
                                        null
                                      ],
                                      "tryCall": false,
                                      "type": "uint256",
                                      "type_conversion": true
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_int128",
                                              "typeString": "int128"
                                            }
                                          ],
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "type": "type(uint256)"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "name": "uint256"
                                            },
                                            "id": 8220,
                                            "name": "ElementaryTypeName",
                                            "src": "6096:7:38"
                                          }
                                        ],
                                        "id": 8221,
                                        "name": "ElementaryTypeNameExpression",
                                        "src": "6096:7:38"
                                      },
                                      {
                                        "attributes": {
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 8199,
                                          "type": "int128",
                                          "value": "x"
                                        },
                                        "id": 8222,
                                        "name": "Identifier",
                                        "src": "6105:1:38"
                                      }
                                    ],
                                    "id": 8223,
                                    "name": "FunctionCall",
                                    "src": "6096:11:38"
                                  },
                                  {
                                    "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": 8201,
                                              "type": "uint256",
                                              "value": "y"
                                            },
                                            "id": 8224,
                                            "name": "Identifier",
                                            "src": "6111:1:38"
                                          },
                                          {
                                            "attributes": {
                                              "hexvalue": "30784646464646464646464646464646464646464646464646464646464646464646",
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "lValueRequested": false,
                                              "token": "number",
                                              "type": "int_const 3402...(31 digits omitted)...1455",
                                              "value": "0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
                                            },
                                            "id": 8225,
                                            "name": "Literal",
                                            "src": "6115:34:38"
                                          }
                                        ],
                                        "id": 8226,
                                        "name": "BinaryOperation",
                                        "src": "6111:38:38"
                                      }
                                    ],
                                    "id": 8227,
                                    "name": "TupleExpression",
                                    "src": "6110:40:38"
                                  }
                                ],
                                "id": 8228,
                                "name": "BinaryOperation",
                                "src": "6096:54:38"
                              }
                            ],
                            "id": 8229,
                            "name": "TupleExpression",
                            "src": "6095:56:38"
                          },
                          {
                            "attributes": {
                              "hexvalue": "3634",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "token": "number",
                              "type": "int_const 64",
                              "value": "64"
                            },
                            "id": 8230,
                            "name": "Literal",
                            "src": "6155:2:38"
                          }
                        ],
                        "id": 8231,
                        "name": "BinaryOperation",
                        "src": "6095:62:38"
                      }
                    ],
                    "id": 8232,
                    "name": "VariableDeclarationStatement",
                    "src": "6082:75:38"
                  },
                  {
                    "attributes": {
                      "assignments": [
                        8234
                      ]
                    },
                    "children": [
                      {
                        "attributes": {
                          "constant": false,
                          "mutability": "mutable",
                          "name": "hi",
                          "scope": 8267,
                          "stateVariable": false,
                          "storageLocation": "default",
                          "type": "uint256",
                          "visibility": "internal"
                        },
                        "children": [
                          {
                            "attributes": {
                              "name": "uint256",
                              "type": "uint256"
                            },
                            "id": 8233,
                            "name": "ElementaryTypeName",
                            "src": "6163:7:38"
                          }
                        ],
                        "id": 8234,
                        "name": "VariableDeclaration",
                        "src": "6163:10:38"
                      },
                      {
                        "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_int128",
                                      "typeString": "int128"
                                    }
                                  ],
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "type": "type(uint256)"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "name": "uint256"
                                    },
                                    "id": 8235,
                                    "name": "ElementaryTypeName",
                                    "src": "6176:7:38"
                                  }
                                ],
                                "id": 8236,
                                "name": "ElementaryTypeNameExpression",
                                "src": "6176:7:38"
                              },
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8199,
                                  "type": "int128",
                                  "value": "x"
                                },
                                "id": 8237,
                                "name": "Identifier",
                                "src": "6185:1:38"
                              }
                            ],
                            "id": 8238,
                            "name": "FunctionCall",
                            "src": "6176:11:38"
                          },
                          {
                            "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": 8201,
                                      "type": "uint256",
                                      "value": "y"
                                    },
                                    "id": 8239,
                                    "name": "Identifier",
                                    "src": "6191:1:38"
                                  },
                                  {
                                    "attributes": {
                                      "hexvalue": "313238",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "token": "number",
                                      "type": "int_const 128",
                                      "value": "128"
                                    },
                                    "id": 8240,
                                    "name": "Literal",
                                    "src": "6196:3:38"
                                  }
                                ],
                                "id": 8241,
                                "name": "BinaryOperation",
                                "src": "6191:8:38"
                              }
                            ],
                            "id": 8242,
                            "name": "TupleExpression",
                            "src": "6190:10:38"
                          }
                        ],
                        "id": 8243,
                        "name": "BinaryOperation",
                        "src": "6176:24:38"
                      }
                    ],
                    "id": 8244,
                    "name": "VariableDeclarationStatement",
                    "src": "6163:37:38"
                  },
                  {
                    "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"
                                }
                              ],
                              "overloadedDeclarations": [
                                4294967278,
                                4294967278
                              ],
                              "referencedDeclaration": 4294967278,
                              "type": "function (bool) pure",
                              "value": "require"
                            },
                            "id": 8245,
                            "name": "Identifier",
                            "src": "6207:7:38"
                          },
                          {
                            "attributes": {
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "<=",
                              "type": "bool"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8234,
                                  "type": "uint256",
                                  "value": "hi"
                                },
                                "id": 8246,
                                "name": "Identifier",
                                "src": "6216:2:38"
                              },
                              {
                                "attributes": {
                                  "hexvalue": "3078464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "token": "number",
                                  "type": "int_const 6277...(50 digits omitted)...2895",
                                  "value": "0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
                                },
                                "id": 8247,
                                "name": "Literal",
                                "src": "6222:50:38"
                              }
                            ],
                            "id": 8248,
                            "name": "BinaryOperation",
                            "src": "6216:56:38"
                          }
                        ],
                        "id": 8249,
                        "name": "FunctionCall",
                        "src": "6207:66:38"
                      }
                    ],
                    "id": 8250,
                    "name": "ExpressionStatement",
                    "src": "6207:66:38"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "<<=",
                          "type": "uint256"
                        },
                        "children": [
                          {
                            "attributes": {
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 8234,
                              "type": "uint256",
                              "value": "hi"
                            },
                            "id": 8251,
                            "name": "Identifier",
                            "src": "6279:2:38"
                          },
                          {
                            "attributes": {
                              "hexvalue": "3634",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "token": "number",
                              "type": "int_const 64",
                              "value": "64"
                            },
                            "id": 8252,
                            "name": "Literal",
                            "src": "6286:2:38"
                          }
                        ],
                        "id": 8253,
                        "name": "Assignment",
                        "src": "6279:9:38"
                      }
                    ],
                    "id": 8254,
                    "name": "ExpressionStatement",
                    "src": "6279:9:38"
                  },
                  {
                    "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"
                                }
                              ],
                              "overloadedDeclarations": [
                                4294967278,
                                4294967278
                              ],
                              "referencedDeclaration": 4294967278,
                              "type": "function (bool) pure",
                              "value": "require"
                            },
                            "id": 8255,
                            "name": "Identifier",
                            "src": "6295:7:38"
                          },
                          {
                            "attributes": {
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "<=",
                              "type": "bool"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8234,
                                  "type": "uint256",
                                  "value": "hi"
                                },
                                "id": 8256,
                                "name": "Identifier",
                                "src": "6304:2:38"
                              },
                              {
                                "attributes": {
                                  "commonType": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": "-",
                                  "type": "uint256"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "hexvalue": "307846464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "token": "number",
                                      "type": "int_const 1157...(70 digits omitted)...9935",
                                      "value": "0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
                                    },
                                    "id": 8257,
                                    "name": "Literal",
                                    "src": "6316:66:38"
                                  },
                                  {
                                    "attributes": {
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 8219,
                                      "type": "uint256",
                                      "value": "lo"
                                    },
                                    "id": 8258,
                                    "name": "Identifier",
                                    "src": "6385:2:38"
                                  }
                                ],
                                "id": 8259,
                                "name": "BinaryOperation",
                                "src": "6316:71:38"
                              }
                            ],
                            "id": 8260,
                            "name": "BinaryOperation",
                            "src": "6304:83:38"
                          }
                        ],
                        "id": 8261,
                        "name": "FunctionCall",
                        "src": "6295:93:38"
                      }
                    ],
                    "id": 8262,
                    "name": "ExpressionStatement",
                    "src": "6295:93:38"
                  },
                  {
                    "attributes": {
                      "functionReturnParameters": 8205
                    },
                    "children": [
                      {
                        "attributes": {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "+",
                          "type": "uint256"
                        },
                        "children": [
                          {
                            "attributes": {
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 8234,
                              "type": "uint256",
                              "value": "hi"
                            },
                            "id": 8263,
                            "name": "Identifier",
                            "src": "6401:2:38"
                          },
                          {
                            "attributes": {
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 8219,
                              "type": "uint256",
                              "value": "lo"
                            },
                            "id": 8264,
                            "name": "Identifier",
                            "src": "6406:2:38"
                          }
                        ],
                        "id": 8265,
                        "name": "BinaryOperation",
                        "src": "6401:7:38"
                      }
                    ],
                    "id": 8266,
                    "name": "Return",
                    "src": "6394:14:38"
                  }
                ],
                "id": 8267,
                "name": "Block",
                "src": "6026:387:38"
              }
            ],
            "id": 8268,
            "name": "FunctionDefinition",
            "src": "5958:455:38"
          },
          {
            "attributes": {
              "implemented": true,
              "isConstructor": false,
              "kind": "function",
              "modifiers": [
                null
              ],
              "name": "div",
              "scope": 10621,
              "stateMutability": "pure",
              "virtual": false,
              "visibility": "internal"
            },
            "children": [
              {
                "attributes": {
                  "text": " Calculate x / y rounding towards zero.  Revert on overflow or when y is\n zero.\n @param x signed 64.64-bit fixed point number\n @param y signed 64.64-bit fixed point number\n @return signed 64.64-bit fixed point number"
                },
                "id": 8269,
                "name": "StructuredDocumentation",
                "src": "6417:251:38"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "x",
                      "scope": 8312,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "int128",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "int128",
                          "type": "int128"
                        },
                        "id": 8270,
                        "name": "ElementaryTypeName",
                        "src": "6685:6:38"
                      }
                    ],
                    "id": 8271,
                    "name": "VariableDeclaration",
                    "src": "6685:8:38"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "y",
                      "scope": 8312,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "int128",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "int128",
                          "type": "int128"
                        },
                        "id": 8272,
                        "name": "ElementaryTypeName",
                        "src": "6695:6:38"
                      }
                    ],
                    "id": 8273,
                    "name": "VariableDeclaration",
                    "src": "6695:8:38"
                  }
                ],
                "id": 8274,
                "name": "ParameterList",
                "src": "6684:20:38"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "",
                      "scope": 8312,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "int128",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "int128",
                          "type": "int128"
                        },
                        "id": 8275,
                        "name": "ElementaryTypeName",
                        "src": "6728:6:38"
                      }
                    ],
                    "id": 8276,
                    "name": "VariableDeclaration",
                    "src": "6728:6:38"
                  }
                ],
                "id": 8277,
                "name": "ParameterList",
                "src": "6727:8:38"
              },
              {
                "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"
                                }
                              ],
                              "overloadedDeclarations": [
                                4294967278,
                                4294967278
                              ],
                              "referencedDeclaration": 4294967278,
                              "type": "function (bool) pure",
                              "value": "require"
                            },
                            "id": 8278,
                            "name": "Identifier",
                            "src": "6742:7:38"
                          },
                          {
                            "attributes": {
                              "commonType": {
                                "typeIdentifier": "t_int128",
                                "typeString": "int128"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "!=",
                              "type": "bool"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8273,
                                  "type": "int128",
                                  "value": "y"
                                },
                                "id": 8279,
                                "name": "Identifier",
                                "src": "6751:1:38"
                              },
                              {
                                "attributes": {
                                  "hexvalue": "30",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "token": "number",
                                  "type": "int_const 0",
                                  "value": "0"
                                },
                                "id": 8280,
                                "name": "Literal",
                                "src": "6756:1:38"
                              }
                            ],
                            "id": 8281,
                            "name": "BinaryOperation",
                            "src": "6751:6:38"
                          }
                        ],
                        "id": 8282,
                        "name": "FunctionCall",
                        "src": "6742:16:38"
                      }
                    ],
                    "id": 8283,
                    "name": "ExpressionStatement",
                    "src": "6742:16:38"
                  },
                  {
                    "attributes": {
                      "assignments": [
                        8285
                      ]
                    },
                    "children": [
                      {
                        "attributes": {
                          "constant": false,
                          "mutability": "mutable",
                          "name": "result",
                          "scope": 8311,
                          "stateVariable": false,
                          "storageLocation": "default",
                          "type": "int256",
                          "visibility": "internal"
                        },
                        "children": [
                          {
                            "attributes": {
                              "name": "int256",
                              "type": "int256"
                            },
                            "id": 8284,
                            "name": "ElementaryTypeName",
                            "src": "6764:6:38"
                          }
                        ],
                        "id": 8285,
                        "name": "VariableDeclaration",
                        "src": "6764:13:38"
                      },
                      {
                        "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_int128",
                                              "typeString": "int128"
                                            }
                                          ],
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "type": "type(int256)"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "name": "int256"
                                            },
                                            "id": 8286,
                                            "name": "ElementaryTypeName",
                                            "src": "6781:6:38"
                                          }
                                        ],
                                        "id": 8287,
                                        "name": "ElementaryTypeNameExpression",
                                        "src": "6781:6:38"
                                      },
                                      {
                                        "attributes": {
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 8271,
                                          "type": "int128",
                                          "value": "x"
                                        },
                                        "id": 8288,
                                        "name": "Identifier",
                                        "src": "6789:1:38"
                                      }
                                    ],
                                    "id": 8289,
                                    "name": "FunctionCall",
                                    "src": "6781:10:38"
                                  },
                                  {
                                    "attributes": {
                                      "hexvalue": "3634",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "token": "number",
                                      "type": "int_const 64",
                                      "value": "64"
                                    },
                                    "id": 8290,
                                    "name": "Literal",
                                    "src": "6795:2:38"
                                  }
                                ],
                                "id": 8291,
                                "name": "BinaryOperation",
                                "src": "6781:16:38"
                              }
                            ],
                            "id": 8292,
                            "name": "TupleExpression",
                            "src": "6780:18:38"
                          },
                          {
                            "attributes": {
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 8273,
                              "type": "int128",
                              "value": "y"
                            },
                            "id": 8293,
                            "name": "Identifier",
                            "src": "6801:1:38"
                          }
                        ],
                        "id": 8294,
                        "name": "BinaryOperation",
                        "src": "6780:22:38"
                      }
                    ],
                    "id": 8295,
                    "name": "VariableDeclarationStatement",
                    "src": "6764:38:38"
                  },
                  {
                    "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"
                                }
                              ],
                              "overloadedDeclarations": [
                                4294967278,
                                4294967278
                              ],
                              "referencedDeclaration": 4294967278,
                              "type": "function (bool) pure",
                              "value": "require"
                            },
                            "id": 8296,
                            "name": "Identifier",
                            "src": "6808:7:38"
                          },
                          {
                            "attributes": {
                              "commonType": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "&&",
                              "type": "bool"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "commonType": {
                                    "typeIdentifier": "t_int256",
                                    "typeString": "int256"
                                  },
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": ">=",
                                  "type": "bool"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 8285,
                                      "type": "int256",
                                      "value": "result"
                                    },
                                    "id": 8297,
                                    "name": "Identifier",
                                    "src": "6817:6:38"
                                  },
                                  {
                                    "attributes": {
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 7850,
                                      "type": "int128",
                                      "value": "MIN_64x64"
                                    },
                                    "id": 8298,
                                    "name": "Identifier",
                                    "src": "6827:9:38"
                                  }
                                ],
                                "id": 8299,
                                "name": "BinaryOperation",
                                "src": "6817:19:38"
                              },
                              {
                                "attributes": {
                                  "commonType": {
                                    "typeIdentifier": "t_int256",
                                    "typeString": "int256"
                                  },
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": "<=",
                                  "type": "bool"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 8285,
                                      "type": "int256",
                                      "value": "result"
                                    },
                                    "id": 8300,
                                    "name": "Identifier",
                                    "src": "6840:6:38"
                                  },
                                  {
                                    "attributes": {
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 7853,
                                      "type": "int128",
                                      "value": "MAX_64x64"
                                    },
                                    "id": 8301,
                                    "name": "Identifier",
                                    "src": "6850:9:38"
                                  }
                                ],
                                "id": 8302,
                                "name": "BinaryOperation",
                                "src": "6840:19:38"
                              }
                            ],
                            "id": 8303,
                            "name": "BinaryOperation",
                            "src": "6817:42:38"
                          }
                        ],
                        "id": 8304,
                        "name": "FunctionCall",
                        "src": "6808:52:38"
                      }
                    ],
                    "id": 8305,
                    "name": "ExpressionStatement",
                    "src": "6808:52:38"
                  },
                  {
                    "attributes": {
                      "functionReturnParameters": 8277
                    },
                    "children": [
                      {
                        "attributes": {
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "tryCall": false,
                          "type": "int128",
                          "type_conversion": true
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_int256",
                                  "typeString": "int256"
                                }
                              ],
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "type": "type(int128)"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "name": "int128"
                                },
                                "id": 8306,
                                "name": "ElementaryTypeName",
                                "src": "6873:6:38"
                              }
                            ],
                            "id": 8307,
                            "name": "ElementaryTypeNameExpression",
                            "src": "6873:6:38"
                          },
                          {
                            "attributes": {
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 8285,
                              "type": "int256",
                              "value": "result"
                            },
                            "id": 8308,
                            "name": "Identifier",
                            "src": "6881:6:38"
                          }
                        ],
                        "id": 8309,
                        "name": "FunctionCall",
                        "src": "6873:15:38"
                      }
                    ],
                    "id": 8310,
                    "name": "Return",
                    "src": "6866:22:38"
                  }
                ],
                "id": 8311,
                "name": "Block",
                "src": "6736:157:38"
              }
            ],
            "id": 8312,
            "name": "FunctionDefinition",
            "src": "6671:222:38"
          },
          {
            "attributes": {
              "implemented": true,
              "isConstructor": false,
              "kind": "function",
              "modifiers": [
                null
              ],
              "name": "divi",
              "scope": 10621,
              "stateMutability": "pure",
              "virtual": false,
              "visibility": "internal"
            },
            "children": [
              {
                "attributes": {
                  "text": " Calculate x / y rounding towards zero, where x and y are signed 256-bit\n integer numbers.  Revert on overflow or when y is zero.\n @param x signed 256-bit integer number\n @param y signed 256-bit integer number\n @return signed 64.64-bit fixed point number"
                },
                "id": 8313,
                "name": "StructuredDocumentation",
                "src": "6897:289:38"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "x",
                      "scope": 8402,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "int256",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "int256",
                          "type": "int256"
                        },
                        "id": 8314,
                        "name": "ElementaryTypeName",
                        "src": "7204:6:38"
                      }
                    ],
                    "id": 8315,
                    "name": "VariableDeclaration",
                    "src": "7204:8:38"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "y",
                      "scope": 8402,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "int256",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "int256",
                          "type": "int256"
                        },
                        "id": 8316,
                        "name": "ElementaryTypeName",
                        "src": "7214:6:38"
                      }
                    ],
                    "id": 8317,
                    "name": "VariableDeclaration",
                    "src": "7214:8:38"
                  }
                ],
                "id": 8318,
                "name": "ParameterList",
                "src": "7203:20:38"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "",
                      "scope": 8402,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "int128",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "int128",
                          "type": "int128"
                        },
                        "id": 8319,
                        "name": "ElementaryTypeName",
                        "src": "7247:6:38"
                      }
                    ],
                    "id": 8320,
                    "name": "VariableDeclaration",
                    "src": "7247:6:38"
                  }
                ],
                "id": 8321,
                "name": "ParameterList",
                "src": "7246:8:38"
              },
              {
                "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"
                                }
                              ],
                              "overloadedDeclarations": [
                                4294967278,
                                4294967278
                              ],
                              "referencedDeclaration": 4294967278,
                              "type": "function (bool) pure",
                              "value": "require"
                            },
                            "id": 8322,
                            "name": "Identifier",
                            "src": "7261:7:38"
                          },
                          {
                            "attributes": {
                              "commonType": {
                                "typeIdentifier": "t_int256",
                                "typeString": "int256"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "!=",
                              "type": "bool"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8317,
                                  "type": "int256",
                                  "value": "y"
                                },
                                "id": 8323,
                                "name": "Identifier",
                                "src": "7270:1:38"
                              },
                              {
                                "attributes": {
                                  "hexvalue": "30",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "token": "number",
                                  "type": "int_const 0",
                                  "value": "0"
                                },
                                "id": 8324,
                                "name": "Literal",
                                "src": "7275:1:38"
                              }
                            ],
                            "id": 8325,
                            "name": "BinaryOperation",
                            "src": "7270:6:38"
                          }
                        ],
                        "id": 8326,
                        "name": "FunctionCall",
                        "src": "7261:16:38"
                      }
                    ],
                    "id": 8327,
                    "name": "ExpressionStatement",
                    "src": "7261:16:38"
                  },
                  {
                    "attributes": {
                      "assignments": [
                        8329
                      ]
                    },
                    "children": [
                      {
                        "attributes": {
                          "constant": false,
                          "mutability": "mutable",
                          "name": "negativeResult",
                          "scope": 8401,
                          "stateVariable": false,
                          "storageLocation": "default",
                          "type": "bool",
                          "visibility": "internal"
                        },
                        "children": [
                          {
                            "attributes": {
                              "name": "bool",
                              "type": "bool"
                            },
                            "id": 8328,
                            "name": "ElementaryTypeName",
                            "src": "7284:4:38"
                          }
                        ],
                        "id": 8329,
                        "name": "VariableDeclaration",
                        "src": "7284:19:38"
                      },
                      {
                        "attributes": {
                          "hexvalue": "66616c7365",
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "token": "bool",
                          "type": "bool",
                          "value": "false"
                        },
                        "id": 8330,
                        "name": "Literal",
                        "src": "7306:5:38"
                      }
                    ],
                    "id": 8331,
                    "name": "VariableDeclarationStatement",
                    "src": "7284:27:38"
                  },
                  {
                    "attributes": {},
                    "children": [
                      {
                        "attributes": {
                          "commonType": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          },
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "<",
                          "type": "bool"
                        },
                        "children": [
                          {
                            "attributes": {
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 8315,
                              "type": "int256",
                              "value": "x"
                            },
                            "id": 8332,
                            "name": "Identifier",
                            "src": "7321:1:38"
                          },
                          {
                            "attributes": {
                              "hexvalue": "30",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "token": "number",
                              "type": "int_const 0",
                              "value": "0"
                            },
                            "id": 8333,
                            "name": "Literal",
                            "src": "7325:1:38"
                          }
                        ],
                        "id": 8334,
                        "name": "BinaryOperation",
                        "src": "7321:5:38"
                      },
                      {
                        "children": [
                          {
                            "children": [
                              {
                                "attributes": {
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": "=",
                                  "type": "int256"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 8315,
                                      "type": "int256",
                                      "value": "x"
                                    },
                                    "id": 8335,
                                    "name": "Identifier",
                                    "src": "7336:1:38"
                                  },
                                  {
                                    "attributes": {
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "operator": "-",
                                      "prefix": true,
                                      "type": "int256"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 8315,
                                          "type": "int256",
                                          "value": "x"
                                        },
                                        "id": 8336,
                                        "name": "Identifier",
                                        "src": "7341:1:38"
                                      }
                                    ],
                                    "id": 8337,
                                    "name": "UnaryOperation",
                                    "src": "7340:2:38"
                                  }
                                ],
                                "id": 8338,
                                "name": "Assignment",
                                "src": "7336:6:38"
                              }
                            ],
                            "id": 8339,
                            "name": "ExpressionStatement",
                            "src": "7336:6:38"
                          },
                          {
                            "children": [
                              {
                                "attributes": {
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": "=",
                                  "type": "bool"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 8329,
                                      "type": "bool",
                                      "value": "negativeResult"
                                    },
                                    "id": 8340,
                                    "name": "Identifier",
                                    "src": "7387:14:38"
                                  },
                                  {
                                    "attributes": {
                                      "hexvalue": "74727565",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "token": "bool",
                                      "type": "bool",
                                      "value": "true"
                                    },
                                    "id": 8341,
                                    "name": "Literal",
                                    "src": "7404:4:38"
                                  }
                                ],
                                "id": 8342,
                                "name": "Assignment",
                                "src": "7387:21:38"
                              }
                            ],
                            "id": 8343,
                            "name": "ExpressionStatement",
                            "src": "7387:21:38"
                          }
                        ],
                        "id": 8344,
                        "name": "Block",
                        "src": "7328:87:38"
                      }
                    ],
                    "id": 8345,
                    "name": "IfStatement",
                    "src": "7317:98:38"
                  },
                  {
                    "attributes": {},
                    "children": [
                      {
                        "attributes": {
                          "commonType": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          },
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "<",
                          "type": "bool"
                        },
                        "children": [
                          {
                            "attributes": {
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 8317,
                              "type": "int256",
                              "value": "y"
                            },
                            "id": 8346,
                            "name": "Identifier",
                            "src": "7424:1:38"
                          },
                          {
                            "attributes": {
                              "hexvalue": "30",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "token": "number",
                              "type": "int_const 0",
                              "value": "0"
                            },
                            "id": 8347,
                            "name": "Literal",
                            "src": "7428:1:38"
                          }
                        ],
                        "id": 8348,
                        "name": "BinaryOperation",
                        "src": "7424:5:38"
                      },
                      {
                        "children": [
                          {
                            "children": [
                              {
                                "attributes": {
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": "=",
                                  "type": "int256"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 8317,
                                      "type": "int256",
                                      "value": "y"
                                    },
                                    "id": 8349,
                                    "name": "Identifier",
                                    "src": "7439:1:38"
                                  },
                                  {
                                    "attributes": {
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "operator": "-",
                                      "prefix": true,
                                      "type": "int256"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 8317,
                                          "type": "int256",
                                          "value": "y"
                                        },
                                        "id": 8350,
                                        "name": "Identifier",
                                        "src": "7444:1:38"
                                      }
                                    ],
                                    "id": 8351,
                                    "name": "UnaryOperation",
                                    "src": "7443:2:38"
                                  }
                                ],
                                "id": 8352,
                                "name": "Assignment",
                                "src": "7439:6:38"
                              }
                            ],
                            "id": 8353,
                            "name": "ExpressionStatement",
                            "src": "7439:6:38"
                          },
                          {
                            "children": [
                              {
                                "attributes": {
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": "=",
                                  "type": "bool"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 8329,
                                      "type": "bool",
                                      "value": "negativeResult"
                                    },
                                    "id": 8354,
                                    "name": "Identifier",
                                    "src": "7490:14:38"
                                  },
                                  {
                                    "attributes": {
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "operator": "!",
                                      "prefix": true,
                                      "type": "bool"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 8329,
                                          "type": "bool",
                                          "value": "negativeResult"
                                        },
                                        "id": 8355,
                                        "name": "Identifier",
                                        "src": "7508:14:38"
                                      }
                                    ],
                                    "id": 8356,
                                    "name": "UnaryOperation",
                                    "src": "7507:15:38"
                                  }
                                ],
                                "id": 8357,
                                "name": "Assignment",
                                "src": "7490:32:38"
                              }
                            ],
                            "id": 8358,
                            "name": "ExpressionStatement",
                            "src": "7490:32:38"
                          }
                        ],
                        "id": 8359,
                        "name": "Block",
                        "src": "7431:98:38"
                      }
                    ],
                    "id": 8360,
                    "name": "IfStatement",
                    "src": "7420:109:38"
                  },
                  {
                    "attributes": {
                      "assignments": [
                        8362
                      ]
                    },
                    "children": [
                      {
                        "attributes": {
                          "constant": false,
                          "mutability": "mutable",
                          "name": "absoluteResult",
                          "scope": 8401,
                          "stateVariable": false,
                          "storageLocation": "default",
                          "type": "uint128",
                          "visibility": "internal"
                        },
                        "children": [
                          {
                            "attributes": {
                              "name": "uint128",
                              "type": "uint128"
                            },
                            "id": 8361,
                            "name": "ElementaryTypeName",
                            "src": "7534:7:38"
                          }
                        ],
                        "id": 8362,
                        "name": "VariableDeclaration",
                        "src": "7534:22:38"
                      },
                      {
                        "attributes": {
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "tryCall": false,
                          "type": "uint128",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 10126,
                              "type": "function (uint256,uint256) pure returns (uint128)",
                              "value": "divuu"
                            },
                            "id": 8363,
                            "name": "Identifier",
                            "src": "7559:5:38"
                          },
                          {
                            "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": 8364,
                                    "name": "ElementaryTypeName",
                                    "src": "7566:7:38"
                                  }
                                ],
                                "id": 8365,
                                "name": "ElementaryTypeNameExpression",
                                "src": "7566:7:38"
                              },
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8315,
                                  "type": "int256",
                                  "value": "x"
                                },
                                "id": 8366,
                                "name": "Identifier",
                                "src": "7575:1:38"
                              }
                            ],
                            "id": 8367,
                            "name": "FunctionCall",
                            "src": "7566:11:38"
                          },
                          {
                            "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": 8368,
                                    "name": "ElementaryTypeName",
                                    "src": "7579:7:38"
                                  }
                                ],
                                "id": 8369,
                                "name": "ElementaryTypeNameExpression",
                                "src": "7579:7:38"
                              },
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8317,
                                  "type": "int256",
                                  "value": "y"
                                },
                                "id": 8370,
                                "name": "Identifier",
                                "src": "7588:1:38"
                              }
                            ],
                            "id": 8371,
                            "name": "FunctionCall",
                            "src": "7579:11:38"
                          }
                        ],
                        "id": 8372,
                        "name": "FunctionCall",
                        "src": "7559:32:38"
                      }
                    ],
                    "id": 8373,
                    "name": "VariableDeclarationStatement",
                    "src": "7534:57:38"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "overloadedDeclarations": [
                            null
                          ],
                          "referencedDeclaration": 8329,
                          "type": "bool",
                          "value": "negativeResult"
                        },
                        "id": 8374,
                        "name": "Identifier",
                        "src": "7601:14:38"
                      },
                      {
                        "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"
                                        }
                                      ],
                                      "overloadedDeclarations": [
                                        4294967278,
                                        4294967278
                                      ],
                                      "referencedDeclaration": 4294967278,
                                      "type": "function (bool) pure",
                                      "value": "require"
                                    },
                                    "id": 8375,
                                    "name": "Identifier",
                                    "src": "7625:7:38"
                                  },
                                  {
                                    "attributes": {
                                      "commonType": {
                                        "typeIdentifier": "t_uint128",
                                        "typeString": "uint128"
                                      },
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "operator": "<=",
                                      "type": "bool"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 8362,
                                          "type": "uint128",
                                          "value": "absoluteResult"
                                        },
                                        "id": 8376,
                                        "name": "Identifier",
                                        "src": "7634:14:38"
                                      },
                                      {
                                        "attributes": {
                                          "hexvalue": "30783830303030303030303030303030303030303030303030303030303030303030",
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "token": "number",
                                          "type": "int_const 1701...(31 digits omitted)...5728",
                                          "value": "0x80000000000000000000000000000000"
                                        },
                                        "id": 8377,
                                        "name": "Literal",
                                        "src": "7652:34:38"
                                      }
                                    ],
                                    "id": 8378,
                                    "name": "BinaryOperation",
                                    "src": "7634:52:38"
                                  }
                                ],
                                "id": 8379,
                                "name": "FunctionCall",
                                "src": "7625:62:38"
                              }
                            ],
                            "id": 8380,
                            "name": "ExpressionStatement",
                            "src": "7625:62:38"
                          },
                          {
                            "attributes": {
                              "functionReturnParameters": 8321
                            },
                            "children": [
                              {
                                "attributes": {
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": "-",
                                  "prefix": true,
                                  "type": "int128"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "isStructConstructorCall": false,
                                      "lValueRequested": false,
                                      "names": [
                                        null
                                      ],
                                      "tryCall": false,
                                      "type": "int128",
                                      "type_conversion": true
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_uint128",
                                              "typeString": "uint128"
                                            }
                                          ],
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "type": "type(int128)"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "name": "int128"
                                            },
                                            "id": 8381,
                                            "name": "ElementaryTypeName",
                                            "src": "7703:6:38"
                                          }
                                        ],
                                        "id": 8382,
                                        "name": "ElementaryTypeNameExpression",
                                        "src": "7703:6:38"
                                      },
                                      {
                                        "attributes": {
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 8362,
                                          "type": "uint128",
                                          "value": "absoluteResult"
                                        },
                                        "id": 8383,
                                        "name": "Identifier",
                                        "src": "7711:14:38"
                                      }
                                    ],
                                    "id": 8384,
                                    "name": "FunctionCall",
                                    "src": "7703:23:38"
                                  }
                                ],
                                "id": 8385,
                                "name": "UnaryOperation",
                                "src": "7702:24:38"
                              }
                            ],
                            "id": 8386,
                            "name": "Return",
                            "src": "7695:31:38"
                          }
                        ],
                        "id": 8387,
                        "name": "Block",
                        "src": "7617:153:38"
                      },
                      {
                        "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"
                                        }
                                      ],
                                      "overloadedDeclarations": [
                                        4294967278,
                                        4294967278
                                      ],
                                      "referencedDeclaration": 4294967278,
                                      "type": "function (bool) pure",
                                      "value": "require"
                                    },
                                    "id": 8388,
                                    "name": "Identifier",
                                    "src": "7784:7:38"
                                  },
                                  {
                                    "attributes": {
                                      "commonType": {
                                        "typeIdentifier": "t_uint128",
                                        "typeString": "uint128"
                                      },
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "operator": "<=",
                                      "type": "bool"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 8362,
                                          "type": "uint128",
                                          "value": "absoluteResult"
                                        },
                                        "id": 8389,
                                        "name": "Identifier",
                                        "src": "7793:14:38"
                                      },
                                      {
                                        "attributes": {
                                          "hexvalue": "30783746464646464646464646464646464646464646464646464646464646464646",
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "token": "number",
                                          "type": "int_const 1701...(31 digits omitted)...5727",
                                          "value": "0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
                                        },
                                        "id": 8390,
                                        "name": "Literal",
                                        "src": "7811:34:38"
                                      }
                                    ],
                                    "id": 8391,
                                    "name": "BinaryOperation",
                                    "src": "7793:52:38"
                                  }
                                ],
                                "id": 8392,
                                "name": "FunctionCall",
                                "src": "7784:62:38"
                              }
                            ],
                            "id": 8393,
                            "name": "ExpressionStatement",
                            "src": "7784:62:38"
                          },
                          {
                            "attributes": {
                              "functionReturnParameters": 8321
                            },
                            "children": [
                              {
                                "attributes": {
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "isStructConstructorCall": false,
                                  "lValueRequested": false,
                                  "names": [
                                    null
                                  ],
                                  "tryCall": false,
                                  "type": "int128",
                                  "type_conversion": true
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_uint128",
                                          "typeString": "uint128"
                                        }
                                      ],
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "type": "type(int128)"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "name": "int128"
                                        },
                                        "id": 8394,
                                        "name": "ElementaryTypeName",
                                        "src": "7861:6:38"
                                      }
                                    ],
                                    "id": 8395,
                                    "name": "ElementaryTypeNameExpression",
                                    "src": "7861:6:38"
                                  },
                                  {
                                    "attributes": {
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 8362,
                                      "type": "uint128",
                                      "value": "absoluteResult"
                                    },
                                    "id": 8396,
                                    "name": "Identifier",
                                    "src": "7869:14:38"
                                  }
                                ],
                                "id": 8397,
                                "name": "FunctionCall",
                                "src": "7861:23:38"
                              }
                            ],
                            "id": 8398,
                            "name": "Return",
                            "src": "7854:30:38"
                          }
                        ],
                        "id": 8399,
                        "name": "Block",
                        "src": "7776:152:38"
                      }
                    ],
                    "id": 8400,
                    "name": "IfStatement",
                    "src": "7597:331:38"
                  }
                ],
                "id": 8401,
                "name": "Block",
                "src": "7255:677:38"
              }
            ],
            "id": 8402,
            "name": "FunctionDefinition",
            "src": "7189:743:38"
          },
          {
            "attributes": {
              "implemented": true,
              "isConstructor": false,
              "kind": "function",
              "modifiers": [
                null
              ],
              "name": "divu",
              "scope": 10621,
              "stateMutability": "pure",
              "virtual": false,
              "visibility": "internal"
            },
            "children": [
              {
                "attributes": {
                  "text": " Calculate x / y rounding towards zero, where x and y are unsigned 256-bit\n integer numbers.  Revert on overflow or when y is zero.\n @param x unsigned 256-bit integer number\n @param y unsigned 256-bit integer number\n @return signed 64.64-bit fixed point number"
                },
                "id": 8403,
                "name": "StructuredDocumentation",
                "src": "7936:295:38"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "x",
                      "scope": 8440,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint256",
                          "type": "uint256"
                        },
                        "id": 8404,
                        "name": "ElementaryTypeName",
                        "src": "8249:7:38"
                      }
                    ],
                    "id": 8405,
                    "name": "VariableDeclaration",
                    "src": "8249:9:38"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "y",
                      "scope": 8440,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint256",
                          "type": "uint256"
                        },
                        "id": 8406,
                        "name": "ElementaryTypeName",
                        "src": "8260:7:38"
                      }
                    ],
                    "id": 8407,
                    "name": "VariableDeclaration",
                    "src": "8260:9:38"
                  }
                ],
                "id": 8408,
                "name": "ParameterList",
                "src": "8248:22:38"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "",
                      "scope": 8440,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "int128",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "int128",
                          "type": "int128"
                        },
                        "id": 8409,
                        "name": "ElementaryTypeName",
                        "src": "8294:6:38"
                      }
                    ],
                    "id": 8410,
                    "name": "VariableDeclaration",
                    "src": "8294:6:38"
                  }
                ],
                "id": 8411,
                "name": "ParameterList",
                "src": "8293:8:38"
              },
              {
                "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"
                                }
                              ],
                              "overloadedDeclarations": [
                                4294967278,
                                4294967278
                              ],
                              "referencedDeclaration": 4294967278,
                              "type": "function (bool) pure",
                              "value": "require"
                            },
                            "id": 8412,
                            "name": "Identifier",
                            "src": "8308:7:38"
                          },
                          {
                            "attributes": {
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "!=",
                              "type": "bool"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8407,
                                  "type": "uint256",
                                  "value": "y"
                                },
                                "id": 8413,
                                "name": "Identifier",
                                "src": "8317:1:38"
                              },
                              {
                                "attributes": {
                                  "hexvalue": "30",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "token": "number",
                                  "type": "int_const 0",
                                  "value": "0"
                                },
                                "id": 8414,
                                "name": "Literal",
                                "src": "8322:1:38"
                              }
                            ],
                            "id": 8415,
                            "name": "BinaryOperation",
                            "src": "8317:6:38"
                          }
                        ],
                        "id": 8416,
                        "name": "FunctionCall",
                        "src": "8308:16:38"
                      }
                    ],
                    "id": 8417,
                    "name": "ExpressionStatement",
                    "src": "8308:16:38"
                  },
                  {
                    "attributes": {
                      "assignments": [
                        8419
                      ]
                    },
                    "children": [
                      {
                        "attributes": {
                          "constant": false,
                          "mutability": "mutable",
                          "name": "result",
                          "scope": 8439,
                          "stateVariable": false,
                          "storageLocation": "default",
                          "type": "uint128",
                          "visibility": "internal"
                        },
                        "children": [
                          {
                            "attributes": {
                              "name": "uint128",
                              "type": "uint128"
                            },
                            "id": 8418,
                            "name": "ElementaryTypeName",
                            "src": "8330:7:38"
                          }
                        ],
                        "id": 8419,
                        "name": "VariableDeclaration",
                        "src": "8330:14:38"
                      },
                      {
                        "attributes": {
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "tryCall": false,
                          "type": "uint128",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 10126,
                              "type": "function (uint256,uint256) pure returns (uint128)",
                              "value": "divuu"
                            },
                            "id": 8420,
                            "name": "Identifier",
                            "src": "8347:5:38"
                          },
                          {
                            "attributes": {
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 8405,
                              "type": "uint256",
                              "value": "x"
                            },
                            "id": 8421,
                            "name": "Identifier",
                            "src": "8354:1:38"
                          },
                          {
                            "attributes": {
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 8407,
                              "type": "uint256",
                              "value": "y"
                            },
                            "id": 8422,
                            "name": "Identifier",
                            "src": "8357:1:38"
                          }
                        ],
                        "id": 8423,
                        "name": "FunctionCall",
                        "src": "8347:12:38"
                      }
                    ],
                    "id": 8424,
                    "name": "VariableDeclarationStatement",
                    "src": "8330:29:38"
                  },
                  {
                    "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"
                                }
                              ],
                              "overloadedDeclarations": [
                                4294967278,
                                4294967278
                              ],
                              "referencedDeclaration": 4294967278,
                              "type": "function (bool) pure",
                              "value": "require"
                            },
                            "id": 8425,
                            "name": "Identifier",
                            "src": "8365:7:38"
                          },
                          {
                            "attributes": {
                              "commonType": {
                                "typeIdentifier": "t_uint128",
                                "typeString": "uint128"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "<=",
                              "type": "bool"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8419,
                                  "type": "uint128",
                                  "value": "result"
                                },
                                "id": 8426,
                                "name": "Identifier",
                                "src": "8374:6:38"
                              },
                              {
                                "attributes": {
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "isStructConstructorCall": false,
                                  "lValueRequested": false,
                                  "names": [
                                    null
                                  ],
                                  "tryCall": false,
                                  "type": "uint128",
                                  "type_conversion": true
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_int128",
                                          "typeString": "int128"
                                        }
                                      ],
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "type": "type(uint128)"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "name": "uint128"
                                        },
                                        "id": 8427,
                                        "name": "ElementaryTypeName",
                                        "src": "8384:7:38"
                                      }
                                    ],
                                    "id": 8428,
                                    "name": "ElementaryTypeNameExpression",
                                    "src": "8384:7:38"
                                  },
                                  {
                                    "attributes": {
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 7853,
                                      "type": "int128",
                                      "value": "MAX_64x64"
                                    },
                                    "id": 8429,
                                    "name": "Identifier",
                                    "src": "8393:9:38"
                                  }
                                ],
                                "id": 8430,
                                "name": "FunctionCall",
                                "src": "8384:19:38"
                              }
                            ],
                            "id": 8431,
                            "name": "BinaryOperation",
                            "src": "8374:29:38"
                          }
                        ],
                        "id": 8432,
                        "name": "FunctionCall",
                        "src": "8365:39:38"
                      }
                    ],
                    "id": 8433,
                    "name": "ExpressionStatement",
                    "src": "8365:39:38"
                  },
                  {
                    "attributes": {
                      "functionReturnParameters": 8411
                    },
                    "children": [
                      {
                        "attributes": {
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "tryCall": false,
                          "type": "int128",
                          "type_conversion": true
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint128",
                                  "typeString": "uint128"
                                }
                              ],
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "type": "type(int128)"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "name": "int128"
                                },
                                "id": 8434,
                                "name": "ElementaryTypeName",
                                "src": "8417:6:38"
                              }
                            ],
                            "id": 8435,
                            "name": "ElementaryTypeNameExpression",
                            "src": "8417:6:38"
                          },
                          {
                            "attributes": {
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 8419,
                              "type": "uint128",
                              "value": "result"
                            },
                            "id": 8436,
                            "name": "Identifier",
                            "src": "8425:6:38"
                          }
                        ],
                        "id": 8437,
                        "name": "FunctionCall",
                        "src": "8417:15:38"
                      }
                    ],
                    "id": 8438,
                    "name": "Return",
                    "src": "8410:22:38"
                  }
                ],
                "id": 8439,
                "name": "Block",
                "src": "8302:135:38"
              }
            ],
            "id": 8440,
            "name": "FunctionDefinition",
            "src": "8234:203:38"
          },
          {
            "attributes": {
              "implemented": true,
              "isConstructor": false,
              "kind": "function",
              "modifiers": [
                null
              ],
              "name": "neg",
              "scope": 10621,
              "stateMutability": "pure",
              "virtual": false,
              "visibility": "internal"
            },
            "children": [
              {
                "attributes": {
                  "text": " Calculate -x.  Revert on overflow.\n @param x signed 64.64-bit fixed point number\n @return signed 64.64-bit fixed point number"
                },
                "id": 8441,
                "name": "StructuredDocumentation",
                "src": "8441:153:38"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "x",
                      "scope": 8458,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "int128",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "int128",
                          "type": "int128"
                        },
                        "id": 8442,
                        "name": "ElementaryTypeName",
                        "src": "8611:6:38"
                      }
                    ],
                    "id": 8443,
                    "name": "VariableDeclaration",
                    "src": "8611:8:38"
                  }
                ],
                "id": 8444,
                "name": "ParameterList",
                "src": "8610:10:38"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "",
                      "scope": 8458,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "int128",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "int128",
                          "type": "int128"
                        },
                        "id": 8445,
                        "name": "ElementaryTypeName",
                        "src": "8644:6:38"
                      }
                    ],
                    "id": 8446,
                    "name": "VariableDeclaration",
                    "src": "8644:6:38"
                  }
                ],
                "id": 8447,
                "name": "ParameterList",
                "src": "8643:8:38"
              },
              {
                "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"
                                }
                              ],
                              "overloadedDeclarations": [
                                4294967278,
                                4294967278
                              ],
                              "referencedDeclaration": 4294967278,
                              "type": "function (bool) pure",
                              "value": "require"
                            },
                            "id": 8448,
                            "name": "Identifier",
                            "src": "8658:7:38"
                          },
                          {
                            "attributes": {
                              "commonType": {
                                "typeIdentifier": "t_int128",
                                "typeString": "int128"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "!=",
                              "type": "bool"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8443,
                                  "type": "int128",
                                  "value": "x"
                                },
                                "id": 8449,
                                "name": "Identifier",
                                "src": "8667:1:38"
                              },
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 7850,
                                  "type": "int128",
                                  "value": "MIN_64x64"
                                },
                                "id": 8450,
                                "name": "Identifier",
                                "src": "8672:9:38"
                              }
                            ],
                            "id": 8451,
                            "name": "BinaryOperation",
                            "src": "8667:14:38"
                          }
                        ],
                        "id": 8452,
                        "name": "FunctionCall",
                        "src": "8658:24:38"
                      }
                    ],
                    "id": 8453,
                    "name": "ExpressionStatement",
                    "src": "8658:24:38"
                  },
                  {
                    "attributes": {
                      "functionReturnParameters": 8447
                    },
                    "children": [
                      {
                        "attributes": {
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "-",
                          "prefix": true,
                          "type": "int128"
                        },
                        "children": [
                          {
                            "attributes": {
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 8443,
                              "type": "int128",
                              "value": "x"
                            },
                            "id": 8454,
                            "name": "Identifier",
                            "src": "8696:1:38"
                          }
                        ],
                        "id": 8455,
                        "name": "UnaryOperation",
                        "src": "8695:2:38"
                      }
                    ],
                    "id": 8456,
                    "name": "Return",
                    "src": "8688:9:38"
                  }
                ],
                "id": 8457,
                "name": "Block",
                "src": "8652:50:38"
              }
            ],
            "id": 8458,
            "name": "FunctionDefinition",
            "src": "8597:105:38"
          },
          {
            "attributes": {
              "implemented": true,
              "isConstructor": false,
              "kind": "function",
              "modifiers": [
                null
              ],
              "name": "abs",
              "scope": 10621,
              "stateMutability": "pure",
              "virtual": false,
              "visibility": "internal"
            },
            "children": [
              {
                "attributes": {
                  "text": " Calculate |x|.  Revert on overflow.\n @param x signed 64.64-bit fixed point number\n @return signed 64.64-bit fixed point number"
                },
                "id": 8459,
                "name": "StructuredDocumentation",
                "src": "8706:154:38"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "x",
                      "scope": 8481,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "int128",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "int128",
                          "type": "int128"
                        },
                        "id": 8460,
                        "name": "ElementaryTypeName",
                        "src": "8877:6:38"
                      }
                    ],
                    "id": 8461,
                    "name": "VariableDeclaration",
                    "src": "8877:8:38"
                  }
                ],
                "id": 8462,
                "name": "ParameterList",
                "src": "8876:10:38"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "",
                      "scope": 8481,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "int128",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "int128",
                          "type": "int128"
                        },
                        "id": 8463,
                        "name": "ElementaryTypeName",
                        "src": "8910:6:38"
                      }
                    ],
                    "id": 8464,
                    "name": "VariableDeclaration",
                    "src": "8910:6:38"
                  }
                ],
                "id": 8465,
                "name": "ParameterList",
                "src": "8909:8:38"
              },
              {
                "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"
                                }
                              ],
                              "overloadedDeclarations": [
                                4294967278,
                                4294967278
                              ],
                              "referencedDeclaration": 4294967278,
                              "type": "function (bool) pure",
                              "value": "require"
                            },
                            "id": 8466,
                            "name": "Identifier",
                            "src": "8924:7:38"
                          },
                          {
                            "attributes": {
                              "commonType": {
                                "typeIdentifier": "t_int128",
                                "typeString": "int128"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "!=",
                              "type": "bool"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8461,
                                  "type": "int128",
                                  "value": "x"
                                },
                                "id": 8467,
                                "name": "Identifier",
                                "src": "8933:1:38"
                              },
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 7850,
                                  "type": "int128",
                                  "value": "MIN_64x64"
                                },
                                "id": 8468,
                                "name": "Identifier",
                                "src": "8938:9:38"
                              }
                            ],
                            "id": 8469,
                            "name": "BinaryOperation",
                            "src": "8933:14:38"
                          }
                        ],
                        "id": 8470,
                        "name": "FunctionCall",
                        "src": "8924:24:38"
                      }
                    ],
                    "id": 8471,
                    "name": "ExpressionStatement",
                    "src": "8924:24:38"
                  },
                  {
                    "attributes": {
                      "functionReturnParameters": 8465
                    },
                    "children": [
                      {
                        "attributes": {
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "type": "int128"
                        },
                        "children": [
                          {
                            "attributes": {
                              "commonType": {
                                "typeIdentifier": "t_int128",
                                "typeString": "int128"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "<",
                              "type": "bool"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8461,
                                  "type": "int128",
                                  "value": "x"
                                },
                                "id": 8472,
                                "name": "Identifier",
                                "src": "8961:1:38"
                              },
                              {
                                "attributes": {
                                  "hexvalue": "30",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "token": "number",
                                  "type": "int_const 0",
                                  "value": "0"
                                },
                                "id": 8473,
                                "name": "Literal",
                                "src": "8965:1:38"
                              }
                            ],
                            "id": 8474,
                            "name": "BinaryOperation",
                            "src": "8961:5:38"
                          },
                          {
                            "attributes": {
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "-",
                              "prefix": true,
                              "type": "int128"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8461,
                                  "type": "int128",
                                  "value": "x"
                                },
                                "id": 8475,
                                "name": "Identifier",
                                "src": "8970:1:38"
                              }
                            ],
                            "id": 8476,
                            "name": "UnaryOperation",
                            "src": "8969:2:38"
                          },
                          {
                            "attributes": {
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 8461,
                              "type": "int128",
                              "value": "x"
                            },
                            "id": 8477,
                            "name": "Identifier",
                            "src": "8974:1:38"
                          }
                        ],
                        "id": 8478,
                        "name": "Conditional",
                        "src": "8961:14:38"
                      }
                    ],
                    "id": 8479,
                    "name": "Return",
                    "src": "8954:21:38"
                  }
                ],
                "id": 8480,
                "name": "Block",
                "src": "8918:62:38"
              }
            ],
            "id": 8481,
            "name": "FunctionDefinition",
            "src": "8863:117:38"
          },
          {
            "attributes": {
              "implemented": true,
              "isConstructor": false,
              "kind": "function",
              "modifiers": [
                null
              ],
              "name": "inv",
              "scope": 10621,
              "stateMutability": "pure",
              "virtual": false,
              "visibility": "internal"
            },
            "children": [
              {
                "attributes": {
                  "text": " Calculate 1 / x rounding towards zero.  Revert on overflow or when x is\n zero.\n @param x signed 64.64-bit fixed point number\n @return signed 64.64-bit fixed point number"
                },
                "id": 8482,
                "name": "StructuredDocumentation",
                "src": "8984:201:38"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "x",
                      "scope": 8520,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "int128",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "int128",
                          "type": "int128"
                        },
                        "id": 8483,
                        "name": "ElementaryTypeName",
                        "src": "9202:6:38"
                      }
                    ],
                    "id": 8484,
                    "name": "VariableDeclaration",
                    "src": "9202:8:38"
                  }
                ],
                "id": 8485,
                "name": "ParameterList",
                "src": "9201:10:38"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "",
                      "scope": 8520,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "int128",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "int128",
                          "type": "int128"
                        },
                        "id": 8486,
                        "name": "ElementaryTypeName",
                        "src": "9235:6:38"
                      }
                    ],
                    "id": 8487,
                    "name": "VariableDeclaration",
                    "src": "9235:6:38"
                  }
                ],
                "id": 8488,
                "name": "ParameterList",
                "src": "9234:8:38"
              },
              {
                "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"
                                }
                              ],
                              "overloadedDeclarations": [
                                4294967278,
                                4294967278
                              ],
                              "referencedDeclaration": 4294967278,
                              "type": "function (bool) pure",
                              "value": "require"
                            },
                            "id": 8489,
                            "name": "Identifier",
                            "src": "9249:7:38"
                          },
                          {
                            "attributes": {
                              "commonType": {
                                "typeIdentifier": "t_int128",
                                "typeString": "int128"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "!=",
                              "type": "bool"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8484,
                                  "type": "int128",
                                  "value": "x"
                                },
                                "id": 8490,
                                "name": "Identifier",
                                "src": "9258:1:38"
                              },
                              {
                                "attributes": {
                                  "hexvalue": "30",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "token": "number",
                                  "type": "int_const 0",
                                  "value": "0"
                                },
                                "id": 8491,
                                "name": "Literal",
                                "src": "9263:1:38"
                              }
                            ],
                            "id": 8492,
                            "name": "BinaryOperation",
                            "src": "9258:6:38"
                          }
                        ],
                        "id": 8493,
                        "name": "FunctionCall",
                        "src": "9249:16:38"
                      }
                    ],
                    "id": 8494,
                    "name": "ExpressionStatement",
                    "src": "9249:16:38"
                  },
                  {
                    "attributes": {
                      "assignments": [
                        8496
                      ]
                    },
                    "children": [
                      {
                        "attributes": {
                          "constant": false,
                          "mutability": "mutable",
                          "name": "result",
                          "scope": 8519,
                          "stateVariable": false,
                          "storageLocation": "default",
                          "type": "int256",
                          "visibility": "internal"
                        },
                        "children": [
                          {
                            "attributes": {
                              "name": "int256",
                              "type": "int256"
                            },
                            "id": 8495,
                            "name": "ElementaryTypeName",
                            "src": "9271:6:38"
                          }
                        ],
                        "id": 8496,
                        "name": "VariableDeclaration",
                        "src": "9271:13:38"
                      },
                      {
                        "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": true,
                              "isStructConstructorCall": false,
                              "lValueRequested": false,
                              "names": [
                                null
                              ],
                              "tryCall": false,
                              "type": "int256",
                              "type_conversion": true
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_rational_340282366920938463463374607431768211456_by_1",
                                      "typeString": "int_const 3402...(31 digits omitted)...1456"
                                    }
                                  ],
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "type": "type(int256)"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "name": "int256"
                                    },
                                    "id": 8497,
                                    "name": "ElementaryTypeName",
                                    "src": "9287:6:38"
                                  }
                                ],
                                "id": 8498,
                                "name": "ElementaryTypeNameExpression",
                                "src": "9287:6:38"
                              },
                              {
                                "attributes": {
                                  "hexvalue": "3078313030303030303030303030303030303030303030303030303030303030303030",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "token": "number",
                                  "type": "int_const 3402...(31 digits omitted)...1456",
                                  "value": "0x100000000000000000000000000000000"
                                },
                                "id": 8499,
                                "name": "Literal",
                                "src": "9295:35:38"
                              }
                            ],
                            "id": 8500,
                            "name": "FunctionCall",
                            "src": "9287:44:38"
                          },
                          {
                            "attributes": {
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 8484,
                              "type": "int128",
                              "value": "x"
                            },
                            "id": 8501,
                            "name": "Identifier",
                            "src": "9334:1:38"
                          }
                        ],
                        "id": 8502,
                        "name": "BinaryOperation",
                        "src": "9287:48:38"
                      }
                    ],
                    "id": 8503,
                    "name": "VariableDeclarationStatement",
                    "src": "9271:64:38"
                  },
                  {
                    "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"
                                }
                              ],
                              "overloadedDeclarations": [
                                4294967278,
                                4294967278
                              ],
                              "referencedDeclaration": 4294967278,
                              "type": "function (bool) pure",
                              "value": "require"
                            },
                            "id": 8504,
                            "name": "Identifier",
                            "src": "9341:7:38"
                          },
                          {
                            "attributes": {
                              "commonType": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "&&",
                              "type": "bool"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "commonType": {
                                    "typeIdentifier": "t_int256",
                                    "typeString": "int256"
                                  },
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": ">=",
                                  "type": "bool"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 8496,
                                      "type": "int256",
                                      "value": "result"
                                    },
                                    "id": 8505,
                                    "name": "Identifier",
                                    "src": "9350:6:38"
                                  },
                                  {
                                    "attributes": {
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 7850,
                                      "type": "int128",
                                      "value": "MIN_64x64"
                                    },
                                    "id": 8506,
                                    "name": "Identifier",
                                    "src": "9360:9:38"
                                  }
                                ],
                                "id": 8507,
                                "name": "BinaryOperation",
                                "src": "9350:19:38"
                              },
                              {
                                "attributes": {
                                  "commonType": {
                                    "typeIdentifier": "t_int256",
                                    "typeString": "int256"
                                  },
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": "<=",
                                  "type": "bool"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 8496,
                                      "type": "int256",
                                      "value": "result"
                                    },
                                    "id": 8508,
                                    "name": "Identifier",
                                    "src": "9373:6:38"
                                  },
                                  {
                                    "attributes": {
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 7853,
                                      "type": "int128",
                                      "value": "MAX_64x64"
                                    },
                                    "id": 8509,
                                    "name": "Identifier",
                                    "src": "9383:9:38"
                                  }
                                ],
                                "id": 8510,
                                "name": "BinaryOperation",
                                "src": "9373:19:38"
                              }
                            ],
                            "id": 8511,
                            "name": "BinaryOperation",
                            "src": "9350:42:38"
                          }
                        ],
                        "id": 8512,
                        "name": "FunctionCall",
                        "src": "9341:52:38"
                      }
                    ],
                    "id": 8513,
                    "name": "ExpressionStatement",
                    "src": "9341:52:38"
                  },
                  {
                    "attributes": {
                      "functionReturnParameters": 8488
                    },
                    "children": [
                      {
                        "attributes": {
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "tryCall": false,
                          "type": "int128",
                          "type_conversion": true
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_int256",
                                  "typeString": "int256"
                                }
                              ],
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "type": "type(int128)"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "name": "int128"
                                },
                                "id": 8514,
                                "name": "ElementaryTypeName",
                                "src": "9406:6:38"
                              }
                            ],
                            "id": 8515,
                            "name": "ElementaryTypeNameExpression",
                            "src": "9406:6:38"
                          },
                          {
                            "attributes": {
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 8496,
                              "type": "int256",
                              "value": "result"
                            },
                            "id": 8516,
                            "name": "Identifier",
                            "src": "9414:6:38"
                          }
                        ],
                        "id": 8517,
                        "name": "FunctionCall",
                        "src": "9406:15:38"
                      }
                    ],
                    "id": 8518,
                    "name": "Return",
                    "src": "9399:22:38"
                  }
                ],
                "id": 8519,
                "name": "Block",
                "src": "9243:183:38"
              }
            ],
            "id": 8520,
            "name": "FunctionDefinition",
            "src": "9188:238:38"
          },
          {
            "attributes": {
              "implemented": true,
              "isConstructor": false,
              "kind": "function",
              "modifiers": [
                null
              ],
              "name": "avg",
              "scope": 10621,
              "stateMutability": "pure",
              "virtual": false,
              "visibility": "internal"
            },
            "children": [
              {
                "attributes": {
                  "text": " Calculate arithmetics average of x and y, i.e. (x + y) / 2 rounding down.\n @param x signed 64.64-bit fixed point number\n @param y signed 64.64-bit fixed point number\n @return signed 64.64-bit fixed point number"
                },
                "id": 8521,
                "name": "StructuredDocumentation",
                "src": "9430:242:38"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "x",
                      "scope": 8547,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "int128",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "int128",
                          "type": "int128"
                        },
                        "id": 8522,
                        "name": "ElementaryTypeName",
                        "src": "9689:6:38"
                      }
                    ],
                    "id": 8523,
                    "name": "VariableDeclaration",
                    "src": "9689:8:38"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "y",
                      "scope": 8547,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "int128",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "int128",
                          "type": "int128"
                        },
                        "id": 8524,
                        "name": "ElementaryTypeName",
                        "src": "9699:6:38"
                      }
                    ],
                    "id": 8525,
                    "name": "VariableDeclaration",
                    "src": "9699:8:38"
                  }
                ],
                "id": 8526,
                "name": "ParameterList",
                "src": "9688:20:38"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "",
                      "scope": 8547,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "int128",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "int128",
                          "type": "int128"
                        },
                        "id": 8527,
                        "name": "ElementaryTypeName",
                        "src": "9732:6:38"
                      }
                    ],
                    "id": 8528,
                    "name": "VariableDeclaration",
                    "src": "9732:6:38"
                  }
                ],
                "id": 8529,
                "name": "ParameterList",
                "src": "9731:8:38"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "functionReturnParameters": 8529
                    },
                    "children": [
                      {
                        "attributes": {
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "tryCall": false,
                          "type": "int128",
                          "type_conversion": true
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_int256",
                                  "typeString": "int256"
                                }
                              ],
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "type": "type(int128)"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "name": "int128"
                                },
                                "id": 8530,
                                "name": "ElementaryTypeName",
                                "src": "9753:6:38"
                              }
                            ],
                            "id": 8531,
                            "name": "ElementaryTypeNameExpression",
                            "src": "9753:6:38"
                          },
                          {
                            "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_int128",
                                                  "typeString": "int128"
                                                }
                                              ],
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "lValueRequested": false,
                                              "type": "type(int256)"
                                            },
                                            "children": [
                                              {
                                                "attributes": {
                                                  "name": "int256"
                                                },
                                                "id": 8532,
                                                "name": "ElementaryTypeName",
                                                "src": "9762:6:38"
                                              }
                                            ],
                                            "id": 8533,
                                            "name": "ElementaryTypeNameExpression",
                                            "src": "9762:6:38"
                                          },
                                          {
                                            "attributes": {
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 8523,
                                              "type": "int128",
                                              "value": "x"
                                            },
                                            "id": 8534,
                                            "name": "Identifier",
                                            "src": "9770:1:38"
                                          }
                                        ],
                                        "id": 8535,
                                        "name": "FunctionCall",
                                        "src": "9762:10:38"
                                      },
                                      {
                                        "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_int128",
                                                  "typeString": "int128"
                                                }
                                              ],
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "lValueRequested": false,
                                              "type": "type(int256)"
                                            },
                                            "children": [
                                              {
                                                "attributes": {
                                                  "name": "int256"
                                                },
                                                "id": 8536,
                                                "name": "ElementaryTypeName",
                                                "src": "9775:6:38"
                                              }
                                            ],
                                            "id": 8537,
                                            "name": "ElementaryTypeNameExpression",
                                            "src": "9775:6:38"
                                          },
                                          {
                                            "attributes": {
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 8525,
                                              "type": "int128",
                                              "value": "y"
                                            },
                                            "id": 8538,
                                            "name": "Identifier",
                                            "src": "9783:1:38"
                                          }
                                        ],
                                        "id": 8539,
                                        "name": "FunctionCall",
                                        "src": "9775:10:38"
                                      }
                                    ],
                                    "id": 8540,
                                    "name": "BinaryOperation",
                                    "src": "9762:23:38"
                                  }
                                ],
                                "id": 8541,
                                "name": "TupleExpression",
                                "src": "9761:25:38"
                              },
                              {
                                "attributes": {
                                  "hexvalue": "31",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "token": "number",
                                  "type": "int_const 1",
                                  "value": "1"
                                },
                                "id": 8542,
                                "name": "Literal",
                                "src": "9790:1:38"
                              }
                            ],
                            "id": 8543,
                            "name": "BinaryOperation",
                            "src": "9761:30:38"
                          }
                        ],
                        "id": 8544,
                        "name": "FunctionCall",
                        "src": "9753:39:38"
                      }
                    ],
                    "id": 8545,
                    "name": "Return",
                    "src": "9746:46:38"
                  }
                ],
                "id": 8546,
                "name": "Block",
                "src": "9740:57:38"
              }
            ],
            "id": 8547,
            "name": "FunctionDefinition",
            "src": "9675:122:38"
          },
          {
            "attributes": {
              "implemented": true,
              "isConstructor": false,
              "kind": "function",
              "modifiers": [
                null
              ],
              "name": "gavg",
              "scope": 10621,
              "stateMutability": "pure",
              "virtual": false,
              "visibility": "internal"
            },
            "children": [
              {
                "attributes": {
                  "text": " Calculate geometric average of x and y, i.e. sqrt (x * y) rounding down.\n Revert on overflow or in case x * y is negative.\n @param x signed 64.64-bit fixed point number\n @param y signed 64.64-bit fixed point number\n @return signed 64.64-bit fixed point number"
                },
                "id": 8548,
                "name": "StructuredDocumentation",
                "src": "9801:295:38"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "x",
                      "scope": 8592,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "int128",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "int128",
                          "type": "int128"
                        },
                        "id": 8549,
                        "name": "ElementaryTypeName",
                        "src": "10114:6:38"
                      }
                    ],
                    "id": 8550,
                    "name": "VariableDeclaration",
                    "src": "10114:8:38"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "y",
                      "scope": 8592,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "int128",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "int128",
                          "type": "int128"
                        },
                        "id": 8551,
                        "name": "ElementaryTypeName",
                        "src": "10124:6:38"
                      }
                    ],
                    "id": 8552,
                    "name": "VariableDeclaration",
                    "src": "10124:8:38"
                  }
                ],
                "id": 8553,
                "name": "ParameterList",
                "src": "10113:20:38"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "",
                      "scope": 8592,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "int128",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "int128",
                          "type": "int128"
                        },
                        "id": 8554,
                        "name": "ElementaryTypeName",
                        "src": "10157:6:38"
                      }
                    ],
                    "id": 8555,
                    "name": "VariableDeclaration",
                    "src": "10157:6:38"
                  }
                ],
                "id": 8556,
                "name": "ParameterList",
                "src": "10156:8:38"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "assignments": [
                        8558
                      ]
                    },
                    "children": [
                      {
                        "attributes": {
                          "constant": false,
                          "mutability": "mutable",
                          "name": "m",
                          "scope": 8591,
                          "stateVariable": false,
                          "storageLocation": "default",
                          "type": "int256",
                          "visibility": "internal"
                        },
                        "children": [
                          {
                            "attributes": {
                              "name": "int256",
                              "type": "int256"
                            },
                            "id": 8557,
                            "name": "ElementaryTypeName",
                            "src": "10171:6:38"
                          }
                        ],
                        "id": 8558,
                        "name": "VariableDeclaration",
                        "src": "10171:8:38"
                      },
                      {
                        "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_int128",
                                      "typeString": "int128"
                                    }
                                  ],
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "type": "type(int256)"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "name": "int256"
                                    },
                                    "id": 8559,
                                    "name": "ElementaryTypeName",
                                    "src": "10182:6:38"
                                  }
                                ],
                                "id": 8560,
                                "name": "ElementaryTypeNameExpression",
                                "src": "10182:6:38"
                              },
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8550,
                                  "type": "int128",
                                  "value": "x"
                                },
                                "id": 8561,
                                "name": "Identifier",
                                "src": "10190:1:38"
                              }
                            ],
                            "id": 8562,
                            "name": "FunctionCall",
                            "src": "10182:10:38"
                          },
                          {
                            "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_int128",
                                      "typeString": "int128"
                                    }
                                  ],
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "type": "type(int256)"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "name": "int256"
                                    },
                                    "id": 8563,
                                    "name": "ElementaryTypeName",
                                    "src": "10195:6:38"
                                  }
                                ],
                                "id": 8564,
                                "name": "ElementaryTypeNameExpression",
                                "src": "10195:6:38"
                              },
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8552,
                                  "type": "int128",
                                  "value": "y"
                                },
                                "id": 8565,
                                "name": "Identifier",
                                "src": "10203:1:38"
                              }
                            ],
                            "id": 8566,
                            "name": "FunctionCall",
                            "src": "10195:10:38"
                          }
                        ],
                        "id": 8567,
                        "name": "BinaryOperation",
                        "src": "10182:23:38"
                      }
                    ],
                    "id": 8568,
                    "name": "VariableDeclarationStatement",
                    "src": "10171:34:38"
                  },
                  {
                    "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"
                                }
                              ],
                              "overloadedDeclarations": [
                                4294967278,
                                4294967278
                              ],
                              "referencedDeclaration": 4294967278,
                              "type": "function (bool) pure",
                              "value": "require"
                            },
                            "id": 8569,
                            "name": "Identifier",
                            "src": "10211:7:38"
                          },
                          {
                            "attributes": {
                              "commonType": {
                                "typeIdentifier": "t_int256",
                                "typeString": "int256"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": ">=",
                              "type": "bool"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8558,
                                  "type": "int256",
                                  "value": "m"
                                },
                                "id": 8570,
                                "name": "Identifier",
                                "src": "10220:1:38"
                              },
                              {
                                "attributes": {
                                  "hexvalue": "30",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "token": "number",
                                  "type": "int_const 0",
                                  "value": "0"
                                },
                                "id": 8571,
                                "name": "Literal",
                                "src": "10225:1:38"
                              }
                            ],
                            "id": 8572,
                            "name": "BinaryOperation",
                            "src": "10220:6:38"
                          }
                        ],
                        "id": 8573,
                        "name": "FunctionCall",
                        "src": "10211:16:38"
                      }
                    ],
                    "id": 8574,
                    "name": "ExpressionStatement",
                    "src": "10211:16:38"
                  },
                  {
                    "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"
                                }
                              ],
                              "overloadedDeclarations": [
                                4294967278,
                                4294967278
                              ],
                              "referencedDeclaration": 4294967278,
                              "type": "function (bool) pure",
                              "value": "require"
                            },
                            "id": 8575,
                            "name": "Identifier",
                            "src": "10233:7:38"
                          },
                          {
                            "attributes": {
                              "commonType": {
                                "typeIdentifier": "t_int256",
                                "typeString": "int256"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "<",
                              "type": "bool"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8558,
                                  "type": "int256",
                                  "value": "m"
                                },
                                "id": 8576,
                                "name": "Identifier",
                                "src": "10242:1:38"
                              },
                              {
                                "attributes": {
                                  "hexvalue": "307834303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "token": "number",
                                  "type": "int_const 2894...(69 digits omitted)...9984",
                                  "value": "0x4000000000000000000000000000000000000000000000000000000000000000"
                                },
                                "id": 8577,
                                "name": "Literal",
                                "src": "10254:66:38"
                              }
                            ],
                            "id": 8578,
                            "name": "BinaryOperation",
                            "src": "10242:78:38"
                          }
                        ],
                        "id": 8579,
                        "name": "FunctionCall",
                        "src": "10233:88:38"
                      }
                    ],
                    "id": 8580,
                    "name": "ExpressionStatement",
                    "src": "10233:88:38"
                  },
                  {
                    "attributes": {
                      "functionReturnParameters": 8556
                    },
                    "children": [
                      {
                        "attributes": {
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "tryCall": false,
                          "type": "int128",
                          "type_conversion": true
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint128",
                                  "typeString": "uint128"
                                }
                              ],
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "type": "type(int128)"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "name": "int128"
                                },
                                "id": 8581,
                                "name": "ElementaryTypeName",
                                "src": "10334:6:38"
                              }
                            ],
                            "id": 8582,
                            "name": "ElementaryTypeNameExpression",
                            "src": "10334:6:38"
                          },
                          {
                            "attributes": {
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "isStructConstructorCall": false,
                              "lValueRequested": false,
                              "names": [
                                null
                              ],
                              "tryCall": false,
                              "type": "uint128",
                              "type_conversion": false
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  ],
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 10620,
                                  "type": "function (uint256) pure returns (uint128)",
                                  "value": "sqrtu"
                                },
                                "id": 8583,
                                "name": "Identifier",
                                "src": "10342:5:38"
                              },
                              {
                                "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": 8584,
                                        "name": "ElementaryTypeName",
                                        "src": "10349:7:38"
                                      }
                                    ],
                                    "id": 8585,
                                    "name": "ElementaryTypeNameExpression",
                                    "src": "10349:7:38"
                                  },
                                  {
                                    "attributes": {
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 8558,
                                      "type": "int256",
                                      "value": "m"
                                    },
                                    "id": 8586,
                                    "name": "Identifier",
                                    "src": "10358:1:38"
                                  }
                                ],
                                "id": 8587,
                                "name": "FunctionCall",
                                "src": "10349:11:38"
                              }
                            ],
                            "id": 8588,
                            "name": "FunctionCall",
                            "src": "10342:19:38"
                          }
                        ],
                        "id": 8589,
                        "name": "FunctionCall",
                        "src": "10334:28:38"
                      }
                    ],
                    "id": 8590,
                    "name": "Return",
                    "src": "10327:35:38"
                  }
                ],
                "id": 8591,
                "name": "Block",
                "src": "10165:202:38"
              }
            ],
            "id": 8592,
            "name": "FunctionDefinition",
            "src": "10099:268:38"
          },
          {
            "attributes": {
              "implemented": true,
              "isConstructor": false,
              "kind": "function",
              "modifiers": [
                null
              ],
              "name": "pow",
              "scope": 10621,
              "stateMutability": "pure",
              "virtual": false,
              "visibility": "internal"
            },
            "children": [
              {
                "attributes": {
                  "text": " Calculate x^y assuming 0^0 is 1, where x is signed 64.64 fixed point number\n and y is unsigned 256-bit integer number.  Revert on overflow.\n @param x signed 64.64-bit fixed point number\n @param y uint256 value\n @return signed 64.64-bit fixed point number"
                },
                "id": 8593,
                "name": "StructuredDocumentation",
                "src": "10371:290:38"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "x",
                      "scope": 8683,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "int128",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "int128",
                          "type": "int128"
                        },
                        "id": 8594,
                        "name": "ElementaryTypeName",
                        "src": "10678:6:38"
                      }
                    ],
                    "id": 8595,
                    "name": "VariableDeclaration",
                    "src": "10678:8:38"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "y",
                      "scope": 8683,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint256",
                          "type": "uint256"
                        },
                        "id": 8596,
                        "name": "ElementaryTypeName",
                        "src": "10688:7:38"
                      }
                    ],
                    "id": 8597,
                    "name": "VariableDeclaration",
                    "src": "10688:9:38"
                  }
                ],
                "id": 8598,
                "name": "ParameterList",
                "src": "10677:21:38"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "",
                      "scope": 8683,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "int128",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "int128",
                          "type": "int128"
                        },
                        "id": 8599,
                        "name": "ElementaryTypeName",
                        "src": "10722:6:38"
                      }
                    ],
                    "id": 8600,
                    "name": "VariableDeclaration",
                    "src": "10722:6:38"
                  }
                ],
                "id": 8601,
                "name": "ParameterList",
                "src": "10721:8:38"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "assignments": [
                        8603
                      ]
                    },
                    "children": [
                      {
                        "attributes": {
                          "constant": false,
                          "mutability": "mutable",
                          "name": "absoluteResult",
                          "scope": 8682,
                          "stateVariable": false,
                          "storageLocation": "default",
                          "type": "uint256",
                          "visibility": "internal"
                        },
                        "children": [
                          {
                            "attributes": {
                              "name": "uint256",
                              "type": "uint256"
                            },
                            "id": 8602,
                            "name": "ElementaryTypeName",
                            "src": "10736:7:38"
                          }
                        ],
                        "id": 8603,
                        "name": "VariableDeclaration",
                        "src": "10736:22:38"
                      }
                    ],
                    "id": 8604,
                    "name": "VariableDeclarationStatement",
                    "src": "10736:22:38"
                  },
                  {
                    "attributes": {
                      "assignments": [
                        8606
                      ]
                    },
                    "children": [
                      {
                        "attributes": {
                          "constant": false,
                          "mutability": "mutable",
                          "name": "negativeResult",
                          "scope": 8682,
                          "stateVariable": false,
                          "storageLocation": "default",
                          "type": "bool",
                          "visibility": "internal"
                        },
                        "children": [
                          {
                            "attributes": {
                              "name": "bool",
                              "type": "bool"
                            },
                            "id": 8605,
                            "name": "ElementaryTypeName",
                            "src": "10764:4:38"
                          }
                        ],
                        "id": 8606,
                        "name": "VariableDeclaration",
                        "src": "10764:19:38"
                      },
                      {
                        "attributes": {
                          "hexvalue": "66616c7365",
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "token": "bool",
                          "type": "bool",
                          "value": "false"
                        },
                        "id": 8607,
                        "name": "Literal",
                        "src": "10786:5:38"
                      }
                    ],
                    "id": 8608,
                    "name": "VariableDeclarationStatement",
                    "src": "10764:27:38"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "commonType": {
                            "typeIdentifier": "t_int128",
                            "typeString": "int128"
                          },
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": ">=",
                          "type": "bool"
                        },
                        "children": [
                          {
                            "attributes": {
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 8595,
                              "type": "int128",
                              "value": "x"
                            },
                            "id": 8609,
                            "name": "Identifier",
                            "src": "10801:1:38"
                          },
                          {
                            "attributes": {
                              "hexvalue": "30",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "token": "number",
                              "type": "int_const 0",
                              "value": "0"
                            },
                            "id": 8610,
                            "name": "Literal",
                            "src": "10806:1:38"
                          }
                        ],
                        "id": 8611,
                        "name": "BinaryOperation",
                        "src": "10801:6:38"
                      },
                      {
                        "children": [
                          {
                            "children": [
                              {
                                "attributes": {
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": "=",
                                  "type": "uint256"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 8603,
                                      "type": "uint256",
                                      "value": "absoluteResult"
                                    },
                                    "id": 8612,
                                    "name": "Identifier",
                                    "src": "10817:14:38"
                                  },
                                  {
                                    "attributes": {
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "isStructConstructorCall": false,
                                      "lValueRequested": false,
                                      "names": [
                                        null
                                      ],
                                      "tryCall": false,
                                      "type": "uint256",
                                      "type_conversion": false
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_uint256",
                                              "typeString": "uint256"
                                            },
                                            {
                                              "typeIdentifier": "t_uint256",
                                              "typeString": "uint256"
                                            }
                                          ],
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 10416,
                                          "type": "function (uint256,uint256) pure returns (uint256)",
                                          "value": "powu"
                                        },
                                        "id": 8613,
                                        "name": "Identifier",
                                        "src": "10834:4:38"
                                      },
                                      {
                                        "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_int128",
                                                      "typeString": "int128"
                                                    }
                                                  ],
                                                  "isConstant": false,
                                                  "isLValue": false,
                                                  "isPure": true,
                                                  "lValueRequested": false,
                                                  "type": "type(uint256)"
                                                },
                                                "children": [
                                                  {
                                                    "attributes": {
                                                      "name": "uint256"
                                                    },
                                                    "id": 8614,
                                                    "name": "ElementaryTypeName",
                                                    "src": "10840:7:38"
                                                  }
                                                ],
                                                "id": 8615,
                                                "name": "ElementaryTypeNameExpression",
                                                "src": "10840:7:38"
                                              },
                                              {
                                                "attributes": {
                                                  "overloadedDeclarations": [
                                                    null
                                                  ],
                                                  "referencedDeclaration": 8595,
                                                  "type": "int128",
                                                  "value": "x"
                                                },
                                                "id": 8616,
                                                "name": "Identifier",
                                                "src": "10849:1:38"
                                              }
                                            ],
                                            "id": 8617,
                                            "name": "FunctionCall",
                                            "src": "10840:11:38"
                                          },
                                          {
                                            "attributes": {
                                              "hexvalue": "3633",
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "lValueRequested": false,
                                              "token": "number",
                                              "type": "int_const 63",
                                              "value": "63"
                                            },
                                            "id": 8618,
                                            "name": "Literal",
                                            "src": "10855:2:38"
                                          }
                                        ],
                                        "id": 8619,
                                        "name": "BinaryOperation",
                                        "src": "10840:17:38"
                                      },
                                      {
                                        "attributes": {
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 8597,
                                          "type": "uint256",
                                          "value": "y"
                                        },
                                        "id": 8620,
                                        "name": "Identifier",
                                        "src": "10859:1:38"
                                      }
                                    ],
                                    "id": 8621,
                                    "name": "FunctionCall",
                                    "src": "10834:27:38"
                                  }
                                ],
                                "id": 8622,
                                "name": "Assignment",
                                "src": "10817:44:38"
                              }
                            ],
                            "id": 8623,
                            "name": "ExpressionStatement",
                            "src": "10817:44:38"
                          }
                        ],
                        "id": 8624,
                        "name": "Block",
                        "src": "10809:59:38"
                      },
                      {
                        "children": [
                          {
                            "children": [
                              {
                                "attributes": {
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": "=",
                                  "type": "uint256"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 8603,
                                      "type": "uint256",
                                      "value": "absoluteResult"
                                    },
                                    "id": 8625,
                                    "name": "Identifier",
                                    "src": "10925:14:38"
                                  },
                                  {
                                    "attributes": {
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "isStructConstructorCall": false,
                                      "lValueRequested": false,
                                      "names": [
                                        null
                                      ],
                                      "tryCall": false,
                                      "type": "uint256",
                                      "type_conversion": false
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_uint256",
                                              "typeString": "uint256"
                                            },
                                            {
                                              "typeIdentifier": "t_uint256",
                                              "typeString": "uint256"
                                            }
                                          ],
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 10416,
                                          "type": "function (uint256,uint256) pure returns (uint256)",
                                          "value": "powu"
                                        },
                                        "id": 8626,
                                        "name": "Identifier",
                                        "src": "10942:4:38"
                                      },
                                      {
                                        "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_uint128",
                                                      "typeString": "uint128"
                                                    }
                                                  ],
                                                  "isConstant": false,
                                                  "isLValue": false,
                                                  "isPure": true,
                                                  "lValueRequested": false,
                                                  "type": "type(uint256)"
                                                },
                                                "children": [
                                                  {
                                                    "attributes": {
                                                      "name": "uint256"
                                                    },
                                                    "id": 8627,
                                                    "name": "ElementaryTypeName",
                                                    "src": "10948:7:38"
                                                  }
                                                ],
                                                "id": 8628,
                                                "name": "ElementaryTypeNameExpression",
                                                "src": "10948:7:38"
                                              },
                                              {
                                                "attributes": {
                                                  "isConstant": false,
                                                  "isLValue": false,
                                                  "isPure": false,
                                                  "isStructConstructorCall": false,
                                                  "lValueRequested": false,
                                                  "names": [
                                                    null
                                                  ],
                                                  "tryCall": false,
                                                  "type": "uint128",
                                                  "type_conversion": true
                                                },
                                                "children": [
                                                  {
                                                    "attributes": {
                                                      "argumentTypes": [
                                                        {
                                                          "typeIdentifier": "t_int128",
                                                          "typeString": "int128"
                                                        }
                                                      ],
                                                      "isConstant": false,
                                                      "isLValue": false,
                                                      "isPure": true,
                                                      "lValueRequested": false,
                                                      "type": "type(uint128)"
                                                    },
                                                    "children": [
                                                      {
                                                        "attributes": {
                                                          "name": "uint128"
                                                        },
                                                        "id": 8629,
                                                        "name": "ElementaryTypeName",
                                                        "src": "10957:7:38"
                                                      }
                                                    ],
                                                    "id": 8630,
                                                    "name": "ElementaryTypeNameExpression",
                                                    "src": "10957:7:38"
                                                  },
                                                  {
                                                    "attributes": {
                                                      "isConstant": false,
                                                      "isLValue": false,
                                                      "isPure": false,
                                                      "lValueRequested": false,
                                                      "operator": "-",
                                                      "prefix": true,
                                                      "type": "int128"
                                                    },
                                                    "children": [
                                                      {
                                                        "attributes": {
                                                          "overloadedDeclarations": [
                                                            null
                                                          ],
                                                          "referencedDeclaration": 8595,
                                                          "type": "int128",
                                                          "value": "x"
                                                        },
                                                        "id": 8631,
                                                        "name": "Identifier",
                                                        "src": "10967:1:38"
                                                      }
                                                    ],
                                                    "id": 8632,
                                                    "name": "UnaryOperation",
                                                    "src": "10966:2:38"
                                                  }
                                                ],
                                                "id": 8633,
                                                "name": "FunctionCall",
                                                "src": "10957:12:38"
                                              }
                                            ],
                                            "id": 8634,
                                            "name": "FunctionCall",
                                            "src": "10948:22:38"
                                          },
                                          {
                                            "attributes": {
                                              "hexvalue": "3633",
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "lValueRequested": false,
                                              "token": "number",
                                              "type": "int_const 63",
                                              "value": "63"
                                            },
                                            "id": 8635,
                                            "name": "Literal",
                                            "src": "10974:2:38"
                                          }
                                        ],
                                        "id": 8636,
                                        "name": "BinaryOperation",
                                        "src": "10948:28:38"
                                      },
                                      {
                                        "attributes": {
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 8597,
                                          "type": "uint256",
                                          "value": "y"
                                        },
                                        "id": 8637,
                                        "name": "Identifier",
                                        "src": "10978:1:38"
                                      }
                                    ],
                                    "id": 8638,
                                    "name": "FunctionCall",
                                    "src": "10942:38:38"
                                  }
                                ],
                                "id": 8639,
                                "name": "Assignment",
                                "src": "10925:55:38"
                              }
                            ],
                            "id": 8640,
                            "name": "ExpressionStatement",
                            "src": "10925:55:38"
                          },
                          {
                            "children": [
                              {
                                "attributes": {
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": "=",
                                  "type": "bool"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 8606,
                                      "type": "bool",
                                      "value": "negativeResult"
                                    },
                                    "id": 8641,
                                    "name": "Identifier",
                                    "src": "10988:14:38"
                                  },
                                  {
                                    "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": 8597,
                                              "type": "uint256",
                                              "value": "y"
                                            },
                                            "id": 8642,
                                            "name": "Identifier",
                                            "src": "11005:1:38"
                                          },
                                          {
                                            "attributes": {
                                              "hexvalue": "31",
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "lValueRequested": false,
                                              "token": "number",
                                              "type": "int_const 1",
                                              "value": "1"
                                            },
                                            "id": 8643,
                                            "name": "Literal",
                                            "src": "11009:1:38"
                                          }
                                        ],
                                        "id": 8644,
                                        "name": "BinaryOperation",
                                        "src": "11005:5:38"
                                      },
                                      {
                                        "attributes": {
                                          "hexvalue": "30",
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "token": "number",
                                          "type": "int_const 0",
                                          "value": "0"
                                        },
                                        "id": 8645,
                                        "name": "Literal",
                                        "src": "11013:1:38"
                                      }
                                    ],
                                    "id": 8646,
                                    "name": "BinaryOperation",
                                    "src": "11005:9:38"
                                  }
                                ],
                                "id": 8647,
                                "name": "Assignment",
                                "src": "10988:26:38"
                              }
                            ],
                            "id": 8648,
                            "name": "ExpressionStatement",
                            "src": "10988:26:38"
                          }
                        ],
                        "id": 8649,
                        "name": "Block",
                        "src": "10874:147:38"
                      }
                    ],
                    "id": 8650,
                    "name": "IfStatement",
                    "src": "10797:224:38"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": ">>=",
                          "type": "uint256"
                        },
                        "children": [
                          {
                            "attributes": {
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 8603,
                              "type": "uint256",
                              "value": "absoluteResult"
                            },
                            "id": 8651,
                            "name": "Identifier",
                            "src": "11027:14:38"
                          },
                          {
                            "attributes": {
                              "hexvalue": "3633",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "token": "number",
                              "type": "int_const 63",
                              "value": "63"
                            },
                            "id": 8652,
                            "name": "Literal",
                            "src": "11046:2:38"
                          }
                        ],
                        "id": 8653,
                        "name": "Assignment",
                        "src": "11027:21:38"
                      }
                    ],
                    "id": 8654,
                    "name": "ExpressionStatement",
                    "src": "11027:21:38"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "overloadedDeclarations": [
                            null
                          ],
                          "referencedDeclaration": 8606,
                          "type": "bool",
                          "value": "negativeResult"
                        },
                        "id": 8655,
                        "name": "Identifier",
                        "src": "11059:14:38"
                      },
                      {
                        "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"
                                        }
                                      ],
                                      "overloadedDeclarations": [
                                        4294967278,
                                        4294967278
                                      ],
                                      "referencedDeclaration": 4294967278,
                                      "type": "function (bool) pure",
                                      "value": "require"
                                    },
                                    "id": 8656,
                                    "name": "Identifier",
                                    "src": "11083:7:38"
                                  },
                                  {
                                    "attributes": {
                                      "commonType": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      },
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "operator": "<=",
                                      "type": "bool"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 8603,
                                          "type": "uint256",
                                          "value": "absoluteResult"
                                        },
                                        "id": 8657,
                                        "name": "Identifier",
                                        "src": "11092:14:38"
                                      },
                                      {
                                        "attributes": {
                                          "hexvalue": "30783830303030303030303030303030303030303030303030303030303030303030",
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "token": "number",
                                          "type": "int_const 1701...(31 digits omitted)...5728",
                                          "value": "0x80000000000000000000000000000000"
                                        },
                                        "id": 8658,
                                        "name": "Literal",
                                        "src": "11110:34:38"
                                      }
                                    ],
                                    "id": 8659,
                                    "name": "BinaryOperation",
                                    "src": "11092:52:38"
                                  }
                                ],
                                "id": 8660,
                                "name": "FunctionCall",
                                "src": "11083:62:38"
                              }
                            ],
                            "id": 8661,
                            "name": "ExpressionStatement",
                            "src": "11083:62:38"
                          },
                          {
                            "attributes": {
                              "functionReturnParameters": 8601
                            },
                            "children": [
                              {
                                "attributes": {
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": "-",
                                  "prefix": true,
                                  "type": "int128"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "isStructConstructorCall": false,
                                      "lValueRequested": false,
                                      "names": [
                                        null
                                      ],
                                      "tryCall": false,
                                      "type": "int128",
                                      "type_conversion": true
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_uint256",
                                              "typeString": "uint256"
                                            }
                                          ],
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "type": "type(int128)"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "name": "int128"
                                            },
                                            "id": 8662,
                                            "name": "ElementaryTypeName",
                                            "src": "11161:6:38"
                                          }
                                        ],
                                        "id": 8663,
                                        "name": "ElementaryTypeNameExpression",
                                        "src": "11161:6:38"
                                      },
                                      {
                                        "attributes": {
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 8603,
                                          "type": "uint256",
                                          "value": "absoluteResult"
                                        },
                                        "id": 8664,
                                        "name": "Identifier",
                                        "src": "11169:14:38"
                                      }
                                    ],
                                    "id": 8665,
                                    "name": "FunctionCall",
                                    "src": "11161:23:38"
                                  }
                                ],
                                "id": 8666,
                                "name": "UnaryOperation",
                                "src": "11160:24:38"
                              }
                            ],
                            "id": 8667,
                            "name": "Return",
                            "src": "11153:31:38"
                          }
                        ],
                        "id": 8668,
                        "name": "Block",
                        "src": "11075:153:38"
                      },
                      {
                        "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"
                                        }
                                      ],
                                      "overloadedDeclarations": [
                                        4294967278,
                                        4294967278
                                      ],
                                      "referencedDeclaration": 4294967278,
                                      "type": "function (bool) pure",
                                      "value": "require"
                                    },
                                    "id": 8669,
                                    "name": "Identifier",
                                    "src": "11242:7:38"
                                  },
                                  {
                                    "attributes": {
                                      "commonType": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      },
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "operator": "<=",
                                      "type": "bool"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 8603,
                                          "type": "uint256",
                                          "value": "absoluteResult"
                                        },
                                        "id": 8670,
                                        "name": "Identifier",
                                        "src": "11251:14:38"
                                      },
                                      {
                                        "attributes": {
                                          "hexvalue": "30783746464646464646464646464646464646464646464646464646464646464646",
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "token": "number",
                                          "type": "int_const 1701...(31 digits omitted)...5727",
                                          "value": "0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
                                        },
                                        "id": 8671,
                                        "name": "Literal",
                                        "src": "11269:34:38"
                                      }
                                    ],
                                    "id": 8672,
                                    "name": "BinaryOperation",
                                    "src": "11251:52:38"
                                  }
                                ],
                                "id": 8673,
                                "name": "FunctionCall",
                                "src": "11242:62:38"
                              }
                            ],
                            "id": 8674,
                            "name": "ExpressionStatement",
                            "src": "11242:62:38"
                          },
                          {
                            "attributes": {
                              "functionReturnParameters": 8601
                            },
                            "children": [
                              {
                                "attributes": {
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "isStructConstructorCall": false,
                                  "lValueRequested": false,
                                  "names": [
                                    null
                                  ],
                                  "tryCall": false,
                                  "type": "int128",
                                  "type_conversion": true
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      ],
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "type": "type(int128)"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "name": "int128"
                                        },
                                        "id": 8675,
                                        "name": "ElementaryTypeName",
                                        "src": "11319:6:38"
                                      }
                                    ],
                                    "id": 8676,
                                    "name": "ElementaryTypeNameExpression",
                                    "src": "11319:6:38"
                                  },
                                  {
                                    "attributes": {
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 8603,
                                      "type": "uint256",
                                      "value": "absoluteResult"
                                    },
                                    "id": 8677,
                                    "name": "Identifier",
                                    "src": "11327:14:38"
                                  }
                                ],
                                "id": 8678,
                                "name": "FunctionCall",
                                "src": "11319:23:38"
                              }
                            ],
                            "id": 8679,
                            "name": "Return",
                            "src": "11312:30:38"
                          }
                        ],
                        "id": 8680,
                        "name": "Block",
                        "src": "11234:152:38"
                      }
                    ],
                    "id": 8681,
                    "name": "IfStatement",
                    "src": "11055:331:38"
                  }
                ],
                "id": 8682,
                "name": "Block",
                "src": "10730:660:38"
              }
            ],
            "id": 8683,
            "name": "FunctionDefinition",
            "src": "10664:726:38"
          },
          {
            "attributes": {
              "implemented": true,
              "isConstructor": false,
              "kind": "function",
              "modifiers": [
                null
              ],
              "name": "sqrt",
              "scope": 10621,
              "stateMutability": "pure",
              "virtual": false,
              "visibility": "internal"
            },
            "children": [
              {
                "attributes": {
                  "text": " Calculate sqrt (x) rounding down.  Revert if x < 0.\n @param x signed 64.64-bit fixed point number\n @return signed 64.64-bit fixed point number"
                },
                "id": 8684,
                "name": "StructuredDocumentation",
                "src": "11394:170:38"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "x",
                      "scope": 8710,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "int128",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "int128",
                          "type": "int128"
                        },
                        "id": 8685,
                        "name": "ElementaryTypeName",
                        "src": "11582:6:38"
                      }
                    ],
                    "id": 8686,
                    "name": "VariableDeclaration",
                    "src": "11582:8:38"
                  }
                ],
                "id": 8687,
                "name": "ParameterList",
                "src": "11581:10:38"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "",
                      "scope": 8710,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "int128",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "int128",
                          "type": "int128"
                        },
                        "id": 8688,
                        "name": "ElementaryTypeName",
                        "src": "11615:6:38"
                      }
                    ],
                    "id": 8689,
                    "name": "VariableDeclaration",
                    "src": "11615:6:38"
                  }
                ],
                "id": 8690,
                "name": "ParameterList",
                "src": "11614:8:38"
              },
              {
                "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"
                                }
                              ],
                              "overloadedDeclarations": [
                                4294967278,
                                4294967278
                              ],
                              "referencedDeclaration": 4294967278,
                              "type": "function (bool) pure",
                              "value": "require"
                            },
                            "id": 8691,
                            "name": "Identifier",
                            "src": "11629:7:38"
                          },
                          {
                            "attributes": {
                              "commonType": {
                                "typeIdentifier": "t_int128",
                                "typeString": "int128"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": ">=",
                              "type": "bool"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8686,
                                  "type": "int128",
                                  "value": "x"
                                },
                                "id": 8692,
                                "name": "Identifier",
                                "src": "11638:1:38"
                              },
                              {
                                "attributes": {
                                  "hexvalue": "30",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "token": "number",
                                  "type": "int_const 0",
                                  "value": "0"
                                },
                                "id": 8693,
                                "name": "Literal",
                                "src": "11643:1:38"
                              }
                            ],
                            "id": 8694,
                            "name": "BinaryOperation",
                            "src": "11638:6:38"
                          }
                        ],
                        "id": 8695,
                        "name": "FunctionCall",
                        "src": "11629:16:38"
                      }
                    ],
                    "id": 8696,
                    "name": "ExpressionStatement",
                    "src": "11629:16:38"
                  },
                  {
                    "attributes": {
                      "functionReturnParameters": 8690
                    },
                    "children": [
                      {
                        "attributes": {
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "tryCall": false,
                          "type": "int128",
                          "type_conversion": true
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint128",
                                  "typeString": "uint128"
                                }
                              ],
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "type": "type(int128)"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "name": "int128"
                                },
                                "id": 8697,
                                "name": "ElementaryTypeName",
                                "src": "11658:6:38"
                              }
                            ],
                            "id": 8698,
                            "name": "ElementaryTypeNameExpression",
                            "src": "11658:6:38"
                          },
                          {
                            "attributes": {
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "isStructConstructorCall": false,
                              "lValueRequested": false,
                              "names": [
                                null
                              ],
                              "tryCall": false,
                              "type": "uint128",
                              "type_conversion": false
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  ],
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 10620,
                                  "type": "function (uint256) pure returns (uint128)",
                                  "value": "sqrtu"
                                },
                                "id": 8699,
                                "name": "Identifier",
                                "src": "11666:5:38"
                              },
                              {
                                "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_int128",
                                              "typeString": "int128"
                                            }
                                          ],
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "type": "type(uint256)"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "name": "uint256"
                                            },
                                            "id": 8700,
                                            "name": "ElementaryTypeName",
                                            "src": "11673:7:38"
                                          }
                                        ],
                                        "id": 8701,
                                        "name": "ElementaryTypeNameExpression",
                                        "src": "11673:7:38"
                                      },
                                      {
                                        "attributes": {
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 8686,
                                          "type": "int128",
                                          "value": "x"
                                        },
                                        "id": 8702,
                                        "name": "Identifier",
                                        "src": "11682:1:38"
                                      }
                                    ],
                                    "id": 8703,
                                    "name": "FunctionCall",
                                    "src": "11673:11:38"
                                  },
                                  {
                                    "attributes": {
                                      "hexvalue": "3634",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "token": "number",
                                      "type": "int_const 64",
                                      "value": "64"
                                    },
                                    "id": 8704,
                                    "name": "Literal",
                                    "src": "11688:2:38"
                                  }
                                ],
                                "id": 8705,
                                "name": "BinaryOperation",
                                "src": "11673:17:38"
                              }
                            ],
                            "id": 8706,
                            "name": "FunctionCall",
                            "src": "11666:25:38"
                          }
                        ],
                        "id": 8707,
                        "name": "FunctionCall",
                        "src": "11658:34:38"
                      }
                    ],
                    "id": 8708,
                    "name": "Return",
                    "src": "11651:41:38"
                  }
                ],
                "id": 8709,
                "name": "Block",
                "src": "11623:74:38"
              }
            ],
            "id": 8710,
            "name": "FunctionDefinition",
            "src": "11567:130:38"
          },
          {
            "attributes": {
              "implemented": true,
              "isConstructor": false,
              "kind": "function",
              "modifiers": [
                null
              ],
              "name": "log_2",
              "scope": 10621,
              "stateMutability": "pure",
              "virtual": false,
              "visibility": "internal"
            },
            "children": [
              {
                "attributes": {
                  "text": " Calculate binary logarithm of x.  Revert if x <= 0.\n @param x signed 64.64-bit fixed point number\n @return signed 64.64-bit fixed point number"
                },
                "id": 8711,
                "name": "StructuredDocumentation",
                "src": "11701:170:38"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "x",
                      "scope": 8884,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "int128",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "int128",
                          "type": "int128"
                        },
                        "id": 8712,
                        "name": "ElementaryTypeName",
                        "src": "11890:6:38"
                      }
                    ],
                    "id": 8713,
                    "name": "VariableDeclaration",
                    "src": "11890:8:38"
                  }
                ],
                "id": 8714,
                "name": "ParameterList",
                "src": "11889:10:38"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "",
                      "scope": 8884,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "int128",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "int128",
                          "type": "int128"
                        },
                        "id": 8715,
                        "name": "ElementaryTypeName",
                        "src": "11923:6:38"
                      }
                    ],
                    "id": 8716,
                    "name": "VariableDeclaration",
                    "src": "11923:6:38"
                  }
                ],
                "id": 8717,
                "name": "ParameterList",
                "src": "11922:8:38"
              },
              {
                "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"
                                }
                              ],
                              "overloadedDeclarations": [
                                4294967278,
                                4294967278
                              ],
                              "referencedDeclaration": 4294967278,
                              "type": "function (bool) pure",
                              "value": "require"
                            },
                            "id": 8718,
                            "name": "Identifier",
                            "src": "11937:7:38"
                          },
                          {
                            "attributes": {
                              "commonType": {
                                "typeIdentifier": "t_int128",
                                "typeString": "int128"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": ">",
                              "type": "bool"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8713,
                                  "type": "int128",
                                  "value": "x"
                                },
                                "id": 8719,
                                "name": "Identifier",
                                "src": "11946:1:38"
                              },
                              {
                                "attributes": {
                                  "hexvalue": "30",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "token": "number",
                                  "type": "int_const 0",
                                  "value": "0"
                                },
                                "id": 8720,
                                "name": "Literal",
                                "src": "11950:1:38"
                              }
                            ],
                            "id": 8721,
                            "name": "BinaryOperation",
                            "src": "11946:5:38"
                          }
                        ],
                        "id": 8722,
                        "name": "FunctionCall",
                        "src": "11937:15:38"
                      }
                    ],
                    "id": 8723,
                    "name": "ExpressionStatement",
                    "src": "11937:15:38"
                  },
                  {
                    "attributes": {
                      "assignments": [
                        8725
                      ]
                    },
                    "children": [
                      {
                        "attributes": {
                          "constant": false,
                          "mutability": "mutable",
                          "name": "msb",
                          "scope": 8883,
                          "stateVariable": false,
                          "storageLocation": "default",
                          "type": "int256",
                          "visibility": "internal"
                        },
                        "children": [
                          {
                            "attributes": {
                              "name": "int256",
                              "type": "int256"
                            },
                            "id": 8724,
                            "name": "ElementaryTypeName",
                            "src": "11959:6:38"
                          }
                        ],
                        "id": 8725,
                        "name": "VariableDeclaration",
                        "src": "11959:10:38"
                      },
                      {
                        "attributes": {
                          "hexvalue": "30",
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "token": "number",
                          "type": "int_const 0",
                          "value": "0"
                        },
                        "id": 8726,
                        "name": "Literal",
                        "src": "11972:1:38"
                      }
                    ],
                    "id": 8727,
                    "name": "VariableDeclarationStatement",
                    "src": "11959:14:38"
                  },
                  {
                    "attributes": {
                      "assignments": [
                        8729
                      ]
                    },
                    "children": [
                      {
                        "attributes": {
                          "constant": false,
                          "mutability": "mutable",
                          "name": "xc",
                          "scope": 8883,
                          "stateVariable": false,
                          "storageLocation": "default",
                          "type": "int256",
                          "visibility": "internal"
                        },
                        "children": [
                          {
                            "attributes": {
                              "name": "int256",
                              "type": "int256"
                            },
                            "id": 8728,
                            "name": "ElementaryTypeName",
                            "src": "11979:6:38"
                          }
                        ],
                        "id": 8729,
                        "name": "VariableDeclaration",
                        "src": "11979:9:38"
                      },
                      {
                        "attributes": {
                          "overloadedDeclarations": [
                            null
                          ],
                          "referencedDeclaration": 8713,
                          "type": "int128",
                          "value": "x"
                        },
                        "id": 8730,
                        "name": "Identifier",
                        "src": "11991:1:38"
                      }
                    ],
                    "id": 8731,
                    "name": "VariableDeclarationStatement",
                    "src": "11979:13:38"
                  },
                  {
                    "attributes": {},
                    "children": [
                      {
                        "attributes": {
                          "commonType": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          },
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": ">=",
                          "type": "bool"
                        },
                        "children": [
                          {
                            "attributes": {
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 8729,
                              "type": "int256",
                              "value": "xc"
                            },
                            "id": 8732,
                            "name": "Identifier",
                            "src": "12002:2:38"
                          },
                          {
                            "attributes": {
                              "hexvalue": "30783130303030303030303030303030303030",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "token": "number",
                              "type": "int_const 18446744073709551616",
                              "value": "0x10000000000000000"
                            },
                            "id": 8733,
                            "name": "Literal",
                            "src": "12008:19:38"
                          }
                        ],
                        "id": 8734,
                        "name": "BinaryOperation",
                        "src": "12002:25:38"
                      },
                      {
                        "children": [
                          {
                            "children": [
                              {
                                "attributes": {
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": ">>=",
                                  "type": "int256"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 8729,
                                      "type": "int256",
                                      "value": "xc"
                                    },
                                    "id": 8735,
                                    "name": "Identifier",
                                    "src": "12031:2:38"
                                  },
                                  {
                                    "attributes": {
                                      "hexvalue": "3634",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "token": "number",
                                      "type": "int_const 64",
                                      "value": "64"
                                    },
                                    "id": 8736,
                                    "name": "Literal",
                                    "src": "12038:2:38"
                                  }
                                ],
                                "id": 8737,
                                "name": "Assignment",
                                "src": "12031:9:38"
                              }
                            ],
                            "id": 8738,
                            "name": "ExpressionStatement",
                            "src": "12031:9:38"
                          },
                          {
                            "children": [
                              {
                                "attributes": {
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": "+=",
                                  "type": "int256"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 8725,
                                      "type": "int256",
                                      "value": "msb"
                                    },
                                    "id": 8739,
                                    "name": "Identifier",
                                    "src": "12042:3:38"
                                  },
                                  {
                                    "attributes": {
                                      "hexvalue": "3634",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "token": "number",
                                      "type": "int_const 64",
                                      "value": "64"
                                    },
                                    "id": 8740,
                                    "name": "Literal",
                                    "src": "12049:2:38"
                                  }
                                ],
                                "id": 8741,
                                "name": "Assignment",
                                "src": "12042:9:38"
                              }
                            ],
                            "id": 8742,
                            "name": "ExpressionStatement",
                            "src": "12042:9:38"
                          }
                        ],
                        "id": 8743,
                        "name": "Block",
                        "src": "12029:25:38"
                      }
                    ],
                    "id": 8744,
                    "name": "IfStatement",
                    "src": "11998:56:38"
                  },
                  {
                    "attributes": {},
                    "children": [
                      {
                        "attributes": {
                          "commonType": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          },
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": ">=",
                          "type": "bool"
                        },
                        "children": [
                          {
                            "attributes": {
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 8729,
                              "type": "int256",
                              "value": "xc"
                            },
                            "id": 8745,
                            "name": "Identifier",
                            "src": "12063:2:38"
                          },
                          {
                            "attributes": {
                              "hexvalue": "3078313030303030303030",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "token": "number",
                              "type": "int_const 4294967296",
                              "value": "0x100000000"
                            },
                            "id": 8746,
                            "name": "Literal",
                            "src": "12069:11:38"
                          }
                        ],
                        "id": 8747,
                        "name": "BinaryOperation",
                        "src": "12063:17:38"
                      },
                      {
                        "children": [
                          {
                            "children": [
                              {
                                "attributes": {
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": ">>=",
                                  "type": "int256"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 8729,
                                      "type": "int256",
                                      "value": "xc"
                                    },
                                    "id": 8748,
                                    "name": "Identifier",
                                    "src": "12084:2:38"
                                  },
                                  {
                                    "attributes": {
                                      "hexvalue": "3332",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "token": "number",
                                      "type": "int_const 32",
                                      "value": "32"
                                    },
                                    "id": 8749,
                                    "name": "Literal",
                                    "src": "12091:2:38"
                                  }
                                ],
                                "id": 8750,
                                "name": "Assignment",
                                "src": "12084:9:38"
                              }
                            ],
                            "id": 8751,
                            "name": "ExpressionStatement",
                            "src": "12084:9:38"
                          },
                          {
                            "children": [
                              {
                                "attributes": {
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": "+=",
                                  "type": "int256"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 8725,
                                      "type": "int256",
                                      "value": "msb"
                                    },
                                    "id": 8752,
                                    "name": "Identifier",
                                    "src": "12095:3:38"
                                  },
                                  {
                                    "attributes": {
                                      "hexvalue": "3332",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "token": "number",
                                      "type": "int_const 32",
                                      "value": "32"
                                    },
                                    "id": 8753,
                                    "name": "Literal",
                                    "src": "12102:2:38"
                                  }
                                ],
                                "id": 8754,
                                "name": "Assignment",
                                "src": "12095:9:38"
                              }
                            ],
                            "id": 8755,
                            "name": "ExpressionStatement",
                            "src": "12095:9:38"
                          }
                        ],
                        "id": 8756,
                        "name": "Block",
                        "src": "12082:25:38"
                      }
                    ],
                    "id": 8757,
                    "name": "IfStatement",
                    "src": "12059:48:38"
                  },
                  {
                    "attributes": {},
                    "children": [
                      {
                        "attributes": {
                          "commonType": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          },
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": ">=",
                          "type": "bool"
                        },
                        "children": [
                          {
                            "attributes": {
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 8729,
                              "type": "int256",
                              "value": "xc"
                            },
                            "id": 8758,
                            "name": "Identifier",
                            "src": "12116:2:38"
                          },
                          {
                            "attributes": {
                              "hexvalue": "30783130303030",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "token": "number",
                              "type": "int_const 65536",
                              "value": "0x10000"
                            },
                            "id": 8759,
                            "name": "Literal",
                            "src": "12122:7:38"
                          }
                        ],
                        "id": 8760,
                        "name": "BinaryOperation",
                        "src": "12116:13:38"
                      },
                      {
                        "children": [
                          {
                            "children": [
                              {
                                "attributes": {
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": ">>=",
                                  "type": "int256"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 8729,
                                      "type": "int256",
                                      "value": "xc"
                                    },
                                    "id": 8761,
                                    "name": "Identifier",
                                    "src": "12133:2:38"
                                  },
                                  {
                                    "attributes": {
                                      "hexvalue": "3136",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "token": "number",
                                      "type": "int_const 16",
                                      "value": "16"
                                    },
                                    "id": 8762,
                                    "name": "Literal",
                                    "src": "12140:2:38"
                                  }
                                ],
                                "id": 8763,
                                "name": "Assignment",
                                "src": "12133:9:38"
                              }
                            ],
                            "id": 8764,
                            "name": "ExpressionStatement",
                            "src": "12133:9:38"
                          },
                          {
                            "children": [
                              {
                                "attributes": {
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": "+=",
                                  "type": "int256"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 8725,
                                      "type": "int256",
                                      "value": "msb"
                                    },
                                    "id": 8765,
                                    "name": "Identifier",
                                    "src": "12144:3:38"
                                  },
                                  {
                                    "attributes": {
                                      "hexvalue": "3136",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "token": "number",
                                      "type": "int_const 16",
                                      "value": "16"
                                    },
                                    "id": 8766,
                                    "name": "Literal",
                                    "src": "12151:2:38"
                                  }
                                ],
                                "id": 8767,
                                "name": "Assignment",
                                "src": "12144:9:38"
                              }
                            ],
                            "id": 8768,
                            "name": "ExpressionStatement",
                            "src": "12144:9:38"
                          }
                        ],
                        "id": 8769,
                        "name": "Block",
                        "src": "12131:25:38"
                      }
                    ],
                    "id": 8770,
                    "name": "IfStatement",
                    "src": "12112:44:38"
                  },
                  {
                    "attributes": {},
                    "children": [
                      {
                        "attributes": {
                          "commonType": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          },
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": ">=",
                          "type": "bool"
                        },
                        "children": [
                          {
                            "attributes": {
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 8729,
                              "type": "int256",
                              "value": "xc"
                            },
                            "id": 8771,
                            "name": "Identifier",
                            "src": "12165:2:38"
                          },
                          {
                            "attributes": {
                              "hexvalue": "3078313030",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "token": "number",
                              "type": "int_const 256",
                              "value": "0x100"
                            },
                            "id": 8772,
                            "name": "Literal",
                            "src": "12171:5:38"
                          }
                        ],
                        "id": 8773,
                        "name": "BinaryOperation",
                        "src": "12165:11:38"
                      },
                      {
                        "children": [
                          {
                            "children": [
                              {
                                "attributes": {
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": ">>=",
                                  "type": "int256"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 8729,
                                      "type": "int256",
                                      "value": "xc"
                                    },
                                    "id": 8774,
                                    "name": "Identifier",
                                    "src": "12180:2:38"
                                  },
                                  {
                                    "attributes": {
                                      "hexvalue": "38",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "token": "number",
                                      "type": "int_const 8",
                                      "value": "8"
                                    },
                                    "id": 8775,
                                    "name": "Literal",
                                    "src": "12187:1:38"
                                  }
                                ],
                                "id": 8776,
                                "name": "Assignment",
                                "src": "12180:8:38"
                              }
                            ],
                            "id": 8777,
                            "name": "ExpressionStatement",
                            "src": "12180:8:38"
                          },
                          {
                            "children": [
                              {
                                "attributes": {
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": "+=",
                                  "type": "int256"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 8725,
                                      "type": "int256",
                                      "value": "msb"
                                    },
                                    "id": 8778,
                                    "name": "Identifier",
                                    "src": "12190:3:38"
                                  },
                                  {
                                    "attributes": {
                                      "hexvalue": "38",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "token": "number",
                                      "type": "int_const 8",
                                      "value": "8"
                                    },
                                    "id": 8779,
                                    "name": "Literal",
                                    "src": "12197:1:38"
                                  }
                                ],
                                "id": 8780,
                                "name": "Assignment",
                                "src": "12190:8:38"
                              }
                            ],
                            "id": 8781,
                            "name": "ExpressionStatement",
                            "src": "12190:8:38"
                          }
                        ],
                        "id": 8782,
                        "name": "Block",
                        "src": "12178:23:38"
                      }
                    ],
                    "id": 8783,
                    "name": "IfStatement",
                    "src": "12161:40:38"
                  },
                  {
                    "attributes": {},
                    "children": [
                      {
                        "attributes": {
                          "commonType": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          },
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": ">=",
                          "type": "bool"
                        },
                        "children": [
                          {
                            "attributes": {
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 8729,
                              "type": "int256",
                              "value": "xc"
                            },
                            "id": 8784,
                            "name": "Identifier",
                            "src": "12210:2:38"
                          },
                          {
                            "attributes": {
                              "hexvalue": "30783130",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "token": "number",
                              "type": "int_const 16",
                              "value": "0x10"
                            },
                            "id": 8785,
                            "name": "Literal",
                            "src": "12216:4:38"
                          }
                        ],
                        "id": 8786,
                        "name": "BinaryOperation",
                        "src": "12210:10:38"
                      },
                      {
                        "children": [
                          {
                            "children": [
                              {
                                "attributes": {
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": ">>=",
                                  "type": "int256"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 8729,
                                      "type": "int256",
                                      "value": "xc"
                                    },
                                    "id": 8787,
                                    "name": "Identifier",
                                    "src": "12224:2:38"
                                  },
                                  {
                                    "attributes": {
                                      "hexvalue": "34",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "token": "number",
                                      "type": "int_const 4",
                                      "value": "4"
                                    },
                                    "id": 8788,
                                    "name": "Literal",
                                    "src": "12231:1:38"
                                  }
                                ],
                                "id": 8789,
                                "name": "Assignment",
                                "src": "12224:8:38"
                              }
                            ],
                            "id": 8790,
                            "name": "ExpressionStatement",
                            "src": "12224:8:38"
                          },
                          {
                            "children": [
                              {
                                "attributes": {
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": "+=",
                                  "type": "int256"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 8725,
                                      "type": "int256",
                                      "value": "msb"
                                    },
                                    "id": 8791,
                                    "name": "Identifier",
                                    "src": "12234:3:38"
                                  },
                                  {
                                    "attributes": {
                                      "hexvalue": "34",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "token": "number",
                                      "type": "int_const 4",
                                      "value": "4"
                                    },
                                    "id": 8792,
                                    "name": "Literal",
                                    "src": "12241:1:38"
                                  }
                                ],
                                "id": 8793,
                                "name": "Assignment",
                                "src": "12234:8:38"
                              }
                            ],
                            "id": 8794,
                            "name": "ExpressionStatement",
                            "src": "12234:8:38"
                          }
                        ],
                        "id": 8795,
                        "name": "Block",
                        "src": "12222:23:38"
                      }
                    ],
                    "id": 8796,
                    "name": "IfStatement",
                    "src": "12206:39:38"
                  },
                  {
                    "attributes": {},
                    "children": [
                      {
                        "attributes": {
                          "commonType": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          },
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": ">=",
                          "type": "bool"
                        },
                        "children": [
                          {
                            "attributes": {
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 8729,
                              "type": "int256",
                              "value": "xc"
                            },
                            "id": 8797,
                            "name": "Identifier",
                            "src": "12254:2:38"
                          },
                          {
                            "attributes": {
                              "hexvalue": "307834",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "token": "number",
                              "type": "int_const 4",
                              "value": "0x4"
                            },
                            "id": 8798,
                            "name": "Literal",
                            "src": "12260:3:38"
                          }
                        ],
                        "id": 8799,
                        "name": "BinaryOperation",
                        "src": "12254:9:38"
                      },
                      {
                        "children": [
                          {
                            "children": [
                              {
                                "attributes": {
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": ">>=",
                                  "type": "int256"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 8729,
                                      "type": "int256",
                                      "value": "xc"
                                    },
                                    "id": 8800,
                                    "name": "Identifier",
                                    "src": "12267:2:38"
                                  },
                                  {
                                    "attributes": {
                                      "hexvalue": "32",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "token": "number",
                                      "type": "int_const 2",
                                      "value": "2"
                                    },
                                    "id": 8801,
                                    "name": "Literal",
                                    "src": "12274:1:38"
                                  }
                                ],
                                "id": 8802,
                                "name": "Assignment",
                                "src": "12267:8:38"
                              }
                            ],
                            "id": 8803,
                            "name": "ExpressionStatement",
                            "src": "12267:8:38"
                          },
                          {
                            "children": [
                              {
                                "attributes": {
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": "+=",
                                  "type": "int256"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 8725,
                                      "type": "int256",
                                      "value": "msb"
                                    },
                                    "id": 8804,
                                    "name": "Identifier",
                                    "src": "12277:3:38"
                                  },
                                  {
                                    "attributes": {
                                      "hexvalue": "32",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "token": "number",
                                      "type": "int_const 2",
                                      "value": "2"
                                    },
                                    "id": 8805,
                                    "name": "Literal",
                                    "src": "12284:1:38"
                                  }
                                ],
                                "id": 8806,
                                "name": "Assignment",
                                "src": "12277:8:38"
                              }
                            ],
                            "id": 8807,
                            "name": "ExpressionStatement",
                            "src": "12277:8:38"
                          }
                        ],
                        "id": 8808,
                        "name": "Block",
                        "src": "12265:23:38"
                      }
                    ],
                    "id": 8809,
                    "name": "IfStatement",
                    "src": "12250:38:38"
                  },
                  {
                    "attributes": {},
                    "children": [
                      {
                        "attributes": {
                          "commonType": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          },
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": ">=",
                          "type": "bool"
                        },
                        "children": [
                          {
                            "attributes": {
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 8729,
                              "type": "int256",
                              "value": "xc"
                            },
                            "id": 8810,
                            "name": "Identifier",
                            "src": "12297:2:38"
                          },
                          {
                            "attributes": {
                              "hexvalue": "307832",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "token": "number",
                              "type": "int_const 2",
                              "value": "0x2"
                            },
                            "id": 8811,
                            "name": "Literal",
                            "src": "12303:3:38"
                          }
                        ],
                        "id": 8812,
                        "name": "BinaryOperation",
                        "src": "12297:9:38"
                      },
                      {
                        "children": [
                          {
                            "attributes": {
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "+=",
                              "type": "int256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8725,
                                  "type": "int256",
                                  "value": "msb"
                                },
                                "id": 8813,
                                "name": "Identifier",
                                "src": "12308:3:38"
                              },
                              {
                                "attributes": {
                                  "hexvalue": "31",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "token": "number",
                                  "type": "int_const 1",
                                  "value": "1"
                                },
                                "id": 8814,
                                "name": "Literal",
                                "src": "12315:1:38"
                              }
                            ],
                            "id": 8815,
                            "name": "Assignment",
                            "src": "12308:8:38"
                          }
                        ],
                        "id": 8816,
                        "name": "ExpressionStatement",
                        "src": "12308:8:38"
                      }
                    ],
                    "id": 8817,
                    "name": "IfStatement",
                    "src": "12293:23:38"
                  },
                  {
                    "attributes": {
                      "assignments": [
                        8819
                      ]
                    },
                    "children": [
                      {
                        "attributes": {
                          "constant": false,
                          "mutability": "mutable",
                          "name": "result",
                          "scope": 8883,
                          "stateVariable": false,
                          "storageLocation": "default",
                          "type": "int256",
                          "visibility": "internal"
                        },
                        "children": [
                          {
                            "attributes": {
                              "name": "int256",
                              "type": "int256"
                            },
                            "id": 8818,
                            "name": "ElementaryTypeName",
                            "src": "12355:6:38"
                          }
                        ],
                        "id": 8819,
                        "name": "VariableDeclaration",
                        "src": "12355:13:38"
                      },
                      {
                        "attributes": {
                          "commonType": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          },
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "<<",
                          "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": 8725,
                                  "type": "int256",
                                  "value": "msb"
                                },
                                "id": 8820,
                                "name": "Identifier",
                                "src": "12371:3:38"
                              },
                              {
                                "attributes": {
                                  "hexvalue": "3634",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "token": "number",
                                  "type": "int_const 64",
                                  "value": "64"
                                },
                                "id": 8821,
                                "name": "Literal",
                                "src": "12377:2:38"
                              }
                            ],
                            "id": 8822,
                            "name": "BinaryOperation",
                            "src": "12371:8:38"
                          },
                          {
                            "attributes": {
                              "hexvalue": "3634",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "token": "number",
                              "type": "int_const 64",
                              "value": "64"
                            },
                            "id": 8823,
                            "name": "Literal",
                            "src": "12383:2:38"
                          }
                        ],
                        "id": 8824,
                        "name": "BinaryOperation",
                        "src": "12371:14:38"
                      }
                    ],
                    "id": 8825,
                    "name": "VariableDeclarationStatement",
                    "src": "12355:30:38"
                  },
                  {
                    "attributes": {
                      "assignments": [
                        8827
                      ]
                    },
                    "children": [
                      {
                        "attributes": {
                          "constant": false,
                          "mutability": "mutable",
                          "name": "ux",
                          "scope": 8883,
                          "stateVariable": false,
                          "storageLocation": "default",
                          "type": "uint256",
                          "visibility": "internal"
                        },
                        "children": [
                          {
                            "attributes": {
                              "name": "uint256",
                              "type": "uint256"
                            },
                            "id": 8826,
                            "name": "ElementaryTypeName",
                            "src": "12391:7:38"
                          }
                        ],
                        "id": 8827,
                        "name": "VariableDeclaration",
                        "src": "12391:10:38"
                      },
                      {
                        "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_int128",
                                      "typeString": "int128"
                                    }
                                  ],
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "type": "type(uint256)"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "name": "uint256"
                                    },
                                    "id": 8828,
                                    "name": "ElementaryTypeName",
                                    "src": "12404:7:38"
                                  }
                                ],
                                "id": 8829,
                                "name": "ElementaryTypeNameExpression",
                                "src": "12404:7:38"
                              },
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8713,
                                  "type": "int128",
                                  "value": "x"
                                },
                                "id": 8830,
                                "name": "Identifier",
                                "src": "12413:1:38"
                              }
                            ],
                            "id": 8831,
                            "name": "FunctionCall",
                            "src": "12404:11:38"
                          },
                          {
                            "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": 8832,
                                    "name": "ElementaryTypeName",
                                    "src": "12419:7:38"
                                  }
                                ],
                                "id": 8833,
                                "name": "ElementaryTypeNameExpression",
                                "src": "12419:7:38"
                              },
                              {
                                "attributes": {
                                  "commonType": {
                                    "typeIdentifier": "t_int256",
                                    "typeString": "int256"
                                  },
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": "-",
                                  "type": "int256"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "hexvalue": "313237",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "token": "number",
                                      "type": "int_const 127",
                                      "value": "127"
                                    },
                                    "id": 8834,
                                    "name": "Literal",
                                    "src": "12428:3:38"
                                  },
                                  {
                                    "attributes": {
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 8725,
                                      "type": "int256",
                                      "value": "msb"
                                    },
                                    "id": 8835,
                                    "name": "Identifier",
                                    "src": "12434:3:38"
                                  }
                                ],
                                "id": 8836,
                                "name": "BinaryOperation",
                                "src": "12428:9:38"
                              }
                            ],
                            "id": 8837,
                            "name": "FunctionCall",
                            "src": "12419:19:38"
                          }
                        ],
                        "id": 8838,
                        "name": "BinaryOperation",
                        "src": "12404:34:38"
                      }
                    ],
                    "id": 8839,
                    "name": "VariableDeclarationStatement",
                    "src": "12391:47:38"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "assignments": [
                            8841
                          ]
                        },
                        "children": [
                          {
                            "attributes": {
                              "constant": false,
                              "mutability": "mutable",
                              "name": "bit",
                              "scope": 8877,
                              "stateVariable": false,
                              "storageLocation": "default",
                              "type": "int256",
                              "visibility": "internal"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "name": "int256",
                                  "type": "int256"
                                },
                                "id": 8840,
                                "name": "ElementaryTypeName",
                                "src": "12449:6:38"
                              }
                            ],
                            "id": 8841,
                            "name": "VariableDeclaration",
                            "src": "12449:10:38"
                          },
                          {
                            "attributes": {
                              "hexvalue": "307838303030303030303030303030303030",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "token": "number",
                              "type": "int_const 9223372036854775808",
                              "value": "0x8000000000000000"
                            },
                            "id": 8842,
                            "name": "Literal",
                            "src": "12462:18:38"
                          }
                        ],
                        "id": 8843,
                        "name": "VariableDeclarationStatement",
                        "src": "12449:31:38"
                      },
                      {
                        "attributes": {
                          "commonType": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          },
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": ">",
                          "type": "bool"
                        },
                        "children": [
                          {
                            "attributes": {
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 8841,
                              "type": "int256",
                              "value": "bit"
                            },
                            "id": 8844,
                            "name": "Identifier",
                            "src": "12482:3:38"
                          },
                          {
                            "attributes": {
                              "hexvalue": "30",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "token": "number",
                              "type": "int_const 0",
                              "value": "0"
                            },
                            "id": 8845,
                            "name": "Literal",
                            "src": "12488:1:38"
                          }
                        ],
                        "id": 8846,
                        "name": "BinaryOperation",
                        "src": "12482:7:38"
                      },
                      {
                        "children": [
                          {
                            "attributes": {
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": ">>=",
                              "type": "int256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8841,
                                  "type": "int256",
                                  "value": "bit"
                                },
                                "id": 8847,
                                "name": "Identifier",
                                "src": "12491:3:38"
                              },
                              {
                                "attributes": {
                                  "hexvalue": "31",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "token": "number",
                                  "type": "int_const 1",
                                  "value": "1"
                                },
                                "id": 8848,
                                "name": "Literal",
                                "src": "12499:1:38"
                              }
                            ],
                            "id": 8849,
                            "name": "Assignment",
                            "src": "12491:9:38"
                          }
                        ],
                        "id": 8850,
                        "name": "ExpressionStatement",
                        "src": "12491:9:38"
                      },
                      {
                        "children": [
                          {
                            "children": [
                              {
                                "attributes": {
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": "*=",
                                  "type": "uint256"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 8827,
                                      "type": "uint256",
                                      "value": "ux"
                                    },
                                    "id": 8851,
                                    "name": "Identifier",
                                    "src": "12510:2:38"
                                  },
                                  {
                                    "attributes": {
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 8827,
                                      "type": "uint256",
                                      "value": "ux"
                                    },
                                    "id": 8852,
                                    "name": "Identifier",
                                    "src": "12516:2:38"
                                  }
                                ],
                                "id": 8853,
                                "name": "Assignment",
                                "src": "12510:8:38"
                              }
                            ],
                            "id": 8854,
                            "name": "ExpressionStatement",
                            "src": "12510:8:38"
                          },
                          {
                            "attributes": {
                              "assignments": [
                                8856
                              ]
                            },
                            "children": [
                              {
                                "attributes": {
                                  "constant": false,
                                  "mutability": "mutable",
                                  "name": "b",
                                  "scope": 8876,
                                  "stateVariable": false,
                                  "storageLocation": "default",
                                  "type": "uint256",
                                  "visibility": "internal"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "name": "uint256",
                                      "type": "uint256"
                                    },
                                    "id": 8855,
                                    "name": "ElementaryTypeName",
                                    "src": "12526:7:38"
                                  }
                                ],
                                "id": 8856,
                                "name": "VariableDeclaration",
                                "src": "12526:9:38"
                              },
                              {
                                "attributes": {
                                  "commonType": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": ">>",
                                  "type": "uint256"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 8827,
                                      "type": "uint256",
                                      "value": "ux"
                                    },
                                    "id": 8857,
                                    "name": "Identifier",
                                    "src": "12538:2:38"
                                  },
                                  {
                                    "attributes": {
                                      "hexvalue": "323535",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "token": "number",
                                      "type": "int_const 255",
                                      "value": "255"
                                    },
                                    "id": 8858,
                                    "name": "Literal",
                                    "src": "12544:3:38"
                                  }
                                ],
                                "id": 8859,
                                "name": "BinaryOperation",
                                "src": "12538:9:38"
                              }
                            ],
                            "id": 8860,
                            "name": "VariableDeclarationStatement",
                            "src": "12526:21:38"
                          },
                          {
                            "children": [
                              {
                                "attributes": {
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": ">>=",
                                  "type": "uint256"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 8827,
                                      "type": "uint256",
                                      "value": "ux"
                                    },
                                    "id": 8861,
                                    "name": "Identifier",
                                    "src": "12555:2:38"
                                  },
                                  {
                                    "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": 8862,
                                        "name": "Literal",
                                        "src": "12562:3:38"
                                      },
                                      {
                                        "attributes": {
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 8856,
                                          "type": "uint256",
                                          "value": "b"
                                        },
                                        "id": 8863,
                                        "name": "Identifier",
                                        "src": "12568:1:38"
                                      }
                                    ],
                                    "id": 8864,
                                    "name": "BinaryOperation",
                                    "src": "12562:7:38"
                                  }
                                ],
                                "id": 8865,
                                "name": "Assignment",
                                "src": "12555:14:38"
                              }
                            ],
                            "id": 8866,
                            "name": "ExpressionStatement",
                            "src": "12555:14:38"
                          },
                          {
                            "children": [
                              {
                                "attributes": {
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": "+=",
                                  "type": "int256"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 8819,
                                      "type": "int256",
                                      "value": "result"
                                    },
                                    "id": 8867,
                                    "name": "Identifier",
                                    "src": "12577:6:38"
                                  },
                                  {
                                    "attributes": {
                                      "commonType": {
                                        "typeIdentifier": "t_int256",
                                        "typeString": "int256"
                                      },
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "operator": "*",
                                      "type": "int256"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 8841,
                                          "type": "int256",
                                          "value": "bit"
                                        },
                                        "id": 8868,
                                        "name": "Identifier",
                                        "src": "12587:3:38"
                                      },
                                      {
                                        "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": 8869,
                                                "name": "ElementaryTypeName",
                                                "src": "12593:6:38"
                                              }
                                            ],
                                            "id": 8870,
                                            "name": "ElementaryTypeNameExpression",
                                            "src": "12593:6:38"
                                          },
                                          {
                                            "attributes": {
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 8856,
                                              "type": "uint256",
                                              "value": "b"
                                            },
                                            "id": 8871,
                                            "name": "Identifier",
                                            "src": "12601:1:38"
                                          }
                                        ],
                                        "id": 8872,
                                        "name": "FunctionCall",
                                        "src": "12593:10:38"
                                      }
                                    ],
                                    "id": 8873,
                                    "name": "BinaryOperation",
                                    "src": "12587:16:38"
                                  }
                                ],
                                "id": 8874,
                                "name": "Assignment",
                                "src": "12577:26:38"
                              }
                            ],
                            "id": 8875,
                            "name": "ExpressionStatement",
                            "src": "12577:26:38"
                          }
                        ],
                        "id": 8876,
                        "name": "Block",
                        "src": "12502:108:38"
                      }
                    ],
                    "id": 8877,
                    "name": "ForStatement",
                    "src": "12444:166:38"
                  },
                  {
                    "attributes": {
                      "functionReturnParameters": 8717
                    },
                    "children": [
                      {
                        "attributes": {
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "tryCall": false,
                          "type": "int128",
                          "type_conversion": true
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_int256",
                                  "typeString": "int256"
                                }
                              ],
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "type": "type(int128)"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "name": "int128"
                                },
                                "id": 8878,
                                "name": "ElementaryTypeName",
                                "src": "12623:6:38"
                              }
                            ],
                            "id": 8879,
                            "name": "ElementaryTypeNameExpression",
                            "src": "12623:6:38"
                          },
                          {
                            "attributes": {
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 8819,
                              "type": "int256",
                              "value": "result"
                            },
                            "id": 8880,
                            "name": "Identifier",
                            "src": "12631:6:38"
                          }
                        ],
                        "id": 8881,
                        "name": "FunctionCall",
                        "src": "12623:15:38"
                      }
                    ],
                    "id": 8882,
                    "name": "Return",
                    "src": "12616:22:38"
                  }
                ],
                "id": 8883,
                "name": "Block",
                "src": "11931:712:38"
              }
            ],
            "id": 8884,
            "name": "FunctionDefinition",
            "src": "11874:769:38"
          },
          {
            "attributes": {
              "implemented": true,
              "isConstructor": false,
              "kind": "function",
              "modifiers": [
                null
              ],
              "name": "ln",
              "scope": 10621,
              "stateMutability": "pure",
              "virtual": false,
              "visibility": "internal"
            },
            "children": [
              {
                "attributes": {
                  "text": " Calculate natural logarithm of x.  Revert if x <= 0.\n @param x signed 64.64-bit fixed point number\n @return signed 64.64-bit fixed point number"
                },
                "id": 8885,
                "name": "StructuredDocumentation",
                "src": "12647:171:38"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "x",
                      "scope": 8913,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "int128",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "int128",
                          "type": "int128"
                        },
                        "id": 8886,
                        "name": "ElementaryTypeName",
                        "src": "12834:6:38"
                      }
                    ],
                    "id": 8887,
                    "name": "VariableDeclaration",
                    "src": "12834:8:38"
                  }
                ],
                "id": 8888,
                "name": "ParameterList",
                "src": "12833:10:38"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "",
                      "scope": 8913,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "int128",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "int128",
                          "type": "int128"
                        },
                        "id": 8889,
                        "name": "ElementaryTypeName",
                        "src": "12867:6:38"
                      }
                    ],
                    "id": 8890,
                    "name": "VariableDeclaration",
                    "src": "12867:6:38"
                  }
                ],
                "id": 8891,
                "name": "ParameterList",
                "src": "12866:8:38"
              },
              {
                "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"
                                }
                              ],
                              "overloadedDeclarations": [
                                4294967278,
                                4294967278
                              ],
                              "referencedDeclaration": 4294967278,
                              "type": "function (bool) pure",
                              "value": "require"
                            },
                            "id": 8892,
                            "name": "Identifier",
                            "src": "12881:7:38"
                          },
                          {
                            "attributes": {
                              "commonType": {
                                "typeIdentifier": "t_int128",
                                "typeString": "int128"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": ">",
                              "type": "bool"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8887,
                                  "type": "int128",
                                  "value": "x"
                                },
                                "id": 8893,
                                "name": "Identifier",
                                "src": "12890:1:38"
                              },
                              {
                                "attributes": {
                                  "hexvalue": "30",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "token": "number",
                                  "type": "int_const 0",
                                  "value": "0"
                                },
                                "id": 8894,
                                "name": "Literal",
                                "src": "12894:1:38"
                              }
                            ],
                            "id": 8895,
                            "name": "BinaryOperation",
                            "src": "12890:5:38"
                          }
                        ],
                        "id": 8896,
                        "name": "FunctionCall",
                        "src": "12881:15:38"
                      }
                    ],
                    "id": 8897,
                    "name": "ExpressionStatement",
                    "src": "12881:15:38"
                  },
                  {
                    "attributes": {
                      "functionReturnParameters": 8891
                    },
                    "children": [
                      {
                        "attributes": {
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "tryCall": false,
                          "type": "int128",
                          "type_conversion": true
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "type": "type(int128)"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "name": "int128"
                                },
                                "id": 8898,
                                "name": "ElementaryTypeName",
                                "src": "12910:6:38"
                              }
                            ],
                            "id": 8899,
                            "name": "ElementaryTypeNameExpression",
                            "src": "12910:6:38"
                          },
                          {
                            "attributes": {
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": ">>",
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "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_int128",
                                              "typeString": "int128"
                                            }
                                          ],
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "type": "type(uint256)"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "name": "uint256"
                                            },
                                            "id": 8900,
                                            "name": "ElementaryTypeName",
                                            "src": "12927:7:38"
                                          }
                                        ],
                                        "id": 8901,
                                        "name": "ElementaryTypeNameExpression",
                                        "src": "12927:7:38"
                                      },
                                      {
                                        "attributes": {
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "isStructConstructorCall": false,
                                          "lValueRequested": false,
                                          "names": [
                                            null
                                          ],
                                          "tryCall": false,
                                          "type": "int128",
                                          "type_conversion": false
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "argumentTypes": [
                                                {
                                                  "typeIdentifier": "t_int128",
                                                  "typeString": "int128"
                                                }
                                              ],
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 8884,
                                              "type": "function (int128) pure returns (int128)",
                                              "value": "log_2"
                                            },
                                            "id": 8902,
                                            "name": "Identifier",
                                            "src": "12936:5:38"
                                          },
                                          {
                                            "attributes": {
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 8887,
                                              "type": "int128",
                                              "value": "x"
                                            },
                                            "id": 8903,
                                            "name": "Identifier",
                                            "src": "12943:1:38"
                                          }
                                        ],
                                        "id": 8904,
                                        "name": "FunctionCall",
                                        "src": "12936:9:38"
                                      }
                                    ],
                                    "id": 8905,
                                    "name": "FunctionCall",
                                    "src": "12927:19:38"
                                  },
                                  {
                                    "attributes": {
                                      "hexvalue": "30784231373231374637443143463739414243394533423339383033463246364146",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "token": "number",
                                      "type": "int_const 2358...(31 digits omitted)...4399",
                                      "value": "0xB17217F7D1CF79ABC9E3B39803F2F6AF"
                                    },
                                    "id": 8906,
                                    "name": "Literal",
                                    "src": "12949:34:38"
                                  }
                                ],
                                "id": 8907,
                                "name": "BinaryOperation",
                                "src": "12927:56:38"
                              },
                              {
                                "attributes": {
                                  "hexvalue": "313238",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "token": "number",
                                  "type": "int_const 128",
                                  "value": "128"
                                },
                                "id": 8908,
                                "name": "Literal",
                                "src": "12987:3:38"
                              }
                            ],
                            "id": 8909,
                            "name": "BinaryOperation",
                            "src": "12927:63:38"
                          }
                        ],
                        "id": 8910,
                        "name": "FunctionCall",
                        "src": "12910:81:38"
                      }
                    ],
                    "id": 8911,
                    "name": "Return",
                    "src": "12903:88:38"
                  }
                ],
                "id": 8912,
                "name": "Block",
                "src": "12875:121:38"
              }
            ],
            "id": 8913,
            "name": "FunctionDefinition",
            "src": "12821:175:38"
          },
          {
            "attributes": {
              "implemented": true,
              "isConstructor": false,
              "kind": "function",
              "modifiers": [
                null
              ],
              "name": "exp_2",
              "scope": 10621,
              "stateMutability": "pure",
              "virtual": false,
              "visibility": "internal"
            },
            "children": [
              {
                "attributes": {
                  "text": " Calculate binary exponent of x.  Revert on overflow.\n @param x signed 64.64-bit fixed point number\n @return signed 64.64-bit fixed point number"
                },
                "id": 8914,
                "name": "StructuredDocumentation",
                "src": "13000:171:38"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "x",
                      "scope": 9861,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "int128",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "int128",
                          "type": "int128"
                        },
                        "id": 8915,
                        "name": "ElementaryTypeName",
                        "src": "13190:6:38"
                      }
                    ],
                    "id": 8916,
                    "name": "VariableDeclaration",
                    "src": "13190:8:38"
                  }
                ],
                "id": 8917,
                "name": "ParameterList",
                "src": "13189:10:38"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "",
                      "scope": 9861,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "int128",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "int128",
                          "type": "int128"
                        },
                        "id": 8918,
                        "name": "ElementaryTypeName",
                        "src": "13223:6:38"
                      }
                    ],
                    "id": 8919,
                    "name": "VariableDeclaration",
                    "src": "13223:6:38"
                  }
                ],
                "id": 8920,
                "name": "ParameterList",
                "src": "13222:8:38"
              },
              {
                "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"
                                }
                              ],
                              "overloadedDeclarations": [
                                4294967278,
                                4294967278
                              ],
                              "referencedDeclaration": 4294967278,
                              "type": "function (bool) pure",
                              "value": "require"
                            },
                            "id": 8921,
                            "name": "Identifier",
                            "src": "13237:7:38"
                          },
                          {
                            "attributes": {
                              "commonType": {
                                "typeIdentifier": "t_int128",
                                "typeString": "int128"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "<",
                              "type": "bool"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8916,
                                  "type": "int128",
                                  "value": "x"
                                },
                                "id": 8922,
                                "name": "Identifier",
                                "src": "13246:1:38"
                              },
                              {
                                "attributes": {
                                  "hexvalue": "3078343030303030303030303030303030303030",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "token": "number",
                                  "type": "int_const 1180591620717411303424",
                                  "value": "0x400000000000000000"
                                },
                                "id": 8923,
                                "name": "Literal",
                                "src": "13250:20:38"
                              }
                            ],
                            "id": 8924,
                            "name": "BinaryOperation",
                            "src": "13246:24:38"
                          }
                        ],
                        "id": 8925,
                        "name": "FunctionCall",
                        "src": "13237:34:38"
                      }
                    ],
                    "id": 8926,
                    "name": "ExpressionStatement",
                    "src": "13237:34:38"
                  },
                  {
                    "attributes": {},
                    "children": [
                      {
                        "attributes": {
                          "commonType": {
                            "typeIdentifier": "t_int128",
                            "typeString": "int128"
                          },
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "<",
                          "type": "bool"
                        },
                        "children": [
                          {
                            "attributes": {
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 8916,
                              "type": "int128",
                              "value": "x"
                            },
                            "id": 8927,
                            "name": "Identifier",
                            "src": "13294:1:38"
                          },
                          {
                            "attributes": {
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "operator": "-",
                              "prefix": true,
                              "type": "int_const -1180591620717411303424"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "hexvalue": "3078343030303030303030303030303030303030",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "token": "number",
                                  "type": "int_const 1180591620717411303424",
                                  "value": "0x400000000000000000"
                                },
                                "id": 8928,
                                "name": "Literal",
                                "src": "13299:20:38"
                              }
                            ],
                            "id": 8929,
                            "name": "UnaryOperation",
                            "src": "13298:21:38"
                          }
                        ],
                        "id": 8930,
                        "name": "BinaryOperation",
                        "src": "13294:25:38"
                      },
                      {
                        "attributes": {
                          "functionReturnParameters": 8920
                        },
                        "children": [
                          {
                            "attributes": {
                              "hexvalue": "30",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "token": "number",
                              "type": "int_const 0",
                              "value": "0"
                            },
                            "id": 8931,
                            "name": "Literal",
                            "src": "13328:1:38"
                          }
                        ],
                        "id": 8932,
                        "name": "Return",
                        "src": "13321:8:38"
                      }
                    ],
                    "id": 8933,
                    "name": "IfStatement",
                    "src": "13290:39:38"
                  },
                  {
                    "attributes": {
                      "assignments": [
                        8935
                      ]
                    },
                    "children": [
                      {
                        "attributes": {
                          "constant": false,
                          "mutability": "mutable",
                          "name": "result",
                          "scope": 9860,
                          "stateVariable": false,
                          "storageLocation": "default",
                          "type": "uint256",
                          "visibility": "internal"
                        },
                        "children": [
                          {
                            "attributes": {
                              "name": "uint256",
                              "type": "uint256"
                            },
                            "id": 8934,
                            "name": "ElementaryTypeName",
                            "src": "13349:7:38"
                          }
                        ],
                        "id": 8935,
                        "name": "VariableDeclaration",
                        "src": "13349:14:38"
                      },
                      {
                        "attributes": {
                          "hexvalue": "30783830303030303030303030303030303030303030303030303030303030303030",
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "token": "number",
                          "type": "int_const 1701...(31 digits omitted)...5728",
                          "value": "0x80000000000000000000000000000000"
                        },
                        "id": 8936,
                        "name": "Literal",
                        "src": "13366:34:38"
                      }
                    ],
                    "id": 8937,
                    "name": "VariableDeclarationStatement",
                    "src": "13349:51:38"
                  },
                  {
                    "attributes": {},
                    "children": [
                      {
                        "attributes": {
                          "commonType": {
                            "typeIdentifier": "t_int128",
                            "typeString": "int128"
                          },
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": ">",
                          "type": "bool"
                        },
                        "children": [
                          {
                            "attributes": {
                              "commonType": {
                                "typeIdentifier": "t_int128",
                                "typeString": "int128"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "&",
                              "type": "int128"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8916,
                                  "type": "int128",
                                  "value": "x"
                                },
                                "id": 8938,
                                "name": "Identifier",
                                "src": "13411:1:38"
                              },
                              {
                                "attributes": {
                                  "hexvalue": "307838303030303030303030303030303030",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "token": "number",
                                  "type": "int_const 9223372036854775808",
                                  "value": "0x8000000000000000"
                                },
                                "id": 8939,
                                "name": "Literal",
                                "src": "13415:18:38"
                              }
                            ],
                            "id": 8940,
                            "name": "BinaryOperation",
                            "src": "13411:22:38"
                          },
                          {
                            "attributes": {
                              "hexvalue": "30",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "token": "number",
                              "type": "int_const 0",
                              "value": "0"
                            },
                            "id": 8941,
                            "name": "Literal",
                            "src": "13436:1:38"
                          }
                        ],
                        "id": 8942,
                        "name": "BinaryOperation",
                        "src": "13411:26:38"
                      },
                      {
                        "children": [
                          {
                            "attributes": {
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "=",
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8935,
                                  "type": "uint256",
                                  "value": "result"
                                },
                                "id": 8943,
                                "name": "Identifier",
                                "src": "13445:6:38"
                              },
                              {
                                "attributes": {
                                  "commonType": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": ">>",
                                  "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": 8935,
                                          "type": "uint256",
                                          "value": "result"
                                        },
                                        "id": 8944,
                                        "name": "Identifier",
                                        "src": "13454:6:38"
                                      },
                                      {
                                        "attributes": {
                                          "hexvalue": "3078313641303945363637463342434339303842324642313336364541393537443345",
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "token": "number",
                                          "type": "int_const 4812...(31 digits omitted)...3854",
                                          "value": "0x16A09E667F3BCC908B2FB1366EA957D3E"
                                        },
                                        "id": 8945,
                                        "name": "Literal",
                                        "src": "13463:35:38"
                                      }
                                    ],
                                    "id": 8946,
                                    "name": "BinaryOperation",
                                    "src": "13454:44:38"
                                  },
                                  {
                                    "attributes": {
                                      "hexvalue": "313238",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "token": "number",
                                      "type": "int_const 128",
                                      "value": "128"
                                    },
                                    "id": 8947,
                                    "name": "Literal",
                                    "src": "13502:3:38"
                                  }
                                ],
                                "id": 8948,
                                "name": "BinaryOperation",
                                "src": "13454:51:38"
                              }
                            ],
                            "id": 8949,
                            "name": "Assignment",
                            "src": "13445:60:38"
                          }
                        ],
                        "id": 8950,
                        "name": "ExpressionStatement",
                        "src": "13445:60:38"
                      }
                    ],
                    "id": 8951,
                    "name": "IfStatement",
                    "src": "13407:98:38"
                  },
                  {
                    "attributes": {},
                    "children": [
                      {
                        "attributes": {
                          "commonType": {
                            "typeIdentifier": "t_int128",
                            "typeString": "int128"
                          },
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": ">",
                          "type": "bool"
                        },
                        "children": [
                          {
                            "attributes": {
                              "commonType": {
                                "typeIdentifier": "t_int128",
                                "typeString": "int128"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "&",
                              "type": "int128"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8916,
                                  "type": "int128",
                                  "value": "x"
                                },
                                "id": 8952,
                                "name": "Identifier",
                                "src": "13515:1:38"
                              },
                              {
                                "attributes": {
                                  "hexvalue": "307834303030303030303030303030303030",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "token": "number",
                                  "type": "int_const 4611686018427387904",
                                  "value": "0x4000000000000000"
                                },
                                "id": 8953,
                                "name": "Literal",
                                "src": "13519:18:38"
                              }
                            ],
                            "id": 8954,
                            "name": "BinaryOperation",
                            "src": "13515:22:38"
                          },
                          {
                            "attributes": {
                              "hexvalue": "30",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "token": "number",
                              "type": "int_const 0",
                              "value": "0"
                            },
                            "id": 8955,
                            "name": "Literal",
                            "src": "13540:1:38"
                          }
                        ],
                        "id": 8956,
                        "name": "BinaryOperation",
                        "src": "13515:26:38"
                      },
                      {
                        "children": [
                          {
                            "attributes": {
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "=",
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8935,
                                  "type": "uint256",
                                  "value": "result"
                                },
                                "id": 8957,
                                "name": "Identifier",
                                "src": "13549:6:38"
                              },
                              {
                                "attributes": {
                                  "commonType": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": ">>",
                                  "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": 8935,
                                          "type": "uint256",
                                          "value": "result"
                                        },
                                        "id": 8958,
                                        "name": "Identifier",
                                        "src": "13558:6:38"
                                      },
                                      {
                                        "attributes": {
                                          "hexvalue": "3078313330364645304133314237313532444538443541343633303543383545444543",
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "token": "number",
                                          "type": "int_const 4046...(31 digits omitted)...5948",
                                          "value": "0x1306FE0A31B7152DE8D5A46305C85EDEC"
                                        },
                                        "id": 8959,
                                        "name": "Literal",
                                        "src": "13567:35:38"
                                      }
                                    ],
                                    "id": 8960,
                                    "name": "BinaryOperation",
                                    "src": "13558:44:38"
                                  },
                                  {
                                    "attributes": {
                                      "hexvalue": "313238",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "token": "number",
                                      "type": "int_const 128",
                                      "value": "128"
                                    },
                                    "id": 8961,
                                    "name": "Literal",
                                    "src": "13606:3:38"
                                  }
                                ],
                                "id": 8962,
                                "name": "BinaryOperation",
                                "src": "13558:51:38"
                              }
                            ],
                            "id": 8963,
                            "name": "Assignment",
                            "src": "13549:60:38"
                          }
                        ],
                        "id": 8964,
                        "name": "ExpressionStatement",
                        "src": "13549:60:38"
                      }
                    ],
                    "id": 8965,
                    "name": "IfStatement",
                    "src": "13511:98:38"
                  },
                  {
                    "attributes": {},
                    "children": [
                      {
                        "attributes": {
                          "commonType": {
                            "typeIdentifier": "t_int128",
                            "typeString": "int128"
                          },
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": ">",
                          "type": "bool"
                        },
                        "children": [
                          {
                            "attributes": {
                              "commonType": {
                                "typeIdentifier": "t_int128",
                                "typeString": "int128"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "&",
                              "type": "int128"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8916,
                                  "type": "int128",
                                  "value": "x"
                                },
                                "id": 8966,
                                "name": "Identifier",
                                "src": "13619:1:38"
                              },
                              {
                                "attributes": {
                                  "hexvalue": "307832303030303030303030303030303030",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "token": "number",
                                  "type": "int_const 2305843009213693952",
                                  "value": "0x2000000000000000"
                                },
                                "id": 8967,
                                "name": "Literal",
                                "src": "13623:18:38"
                              }
                            ],
                            "id": 8968,
                            "name": "BinaryOperation",
                            "src": "13619:22:38"
                          },
                          {
                            "attributes": {
                              "hexvalue": "30",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "token": "number",
                              "type": "int_const 0",
                              "value": "0"
                            },
                            "id": 8969,
                            "name": "Literal",
                            "src": "13644:1:38"
                          }
                        ],
                        "id": 8970,
                        "name": "BinaryOperation",
                        "src": "13619:26:38"
                      },
                      {
                        "children": [
                          {
                            "attributes": {
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "=",
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8935,
                                  "type": "uint256",
                                  "value": "result"
                                },
                                "id": 8971,
                                "name": "Identifier",
                                "src": "13653:6:38"
                              },
                              {
                                "attributes": {
                                  "commonType": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": ">>",
                                  "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": 8935,
                                          "type": "uint256",
                                          "value": "result"
                                        },
                                        "id": 8972,
                                        "name": "Identifier",
                                        "src": "13662:6:38"
                                      },
                                      {
                                        "attributes": {
                                          "hexvalue": "3078313137324238334337443531374144434446374338433530454231344137393146",
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "token": "number",
                                          "type": "int_const 3710...(31 digits omitted)...6767",
                                          "value": "0x1172B83C7D517ADCDF7C8C50EB14A791F"
                                        },
                                        "id": 8973,
                                        "name": "Literal",
                                        "src": "13671:35:38"
                                      }
                                    ],
                                    "id": 8974,
                                    "name": "BinaryOperation",
                                    "src": "13662:44:38"
                                  },
                                  {
                                    "attributes": {
                                      "hexvalue": "313238",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "token": "number",
                                      "type": "int_const 128",
                                      "value": "128"
                                    },
                                    "id": 8975,
                                    "name": "Literal",
                                    "src": "13710:3:38"
                                  }
                                ],
                                "id": 8976,
                                "name": "BinaryOperation",
                                "src": "13662:51:38"
                              }
                            ],
                            "id": 8977,
                            "name": "Assignment",
                            "src": "13653:60:38"
                          }
                        ],
                        "id": 8978,
                        "name": "ExpressionStatement",
                        "src": "13653:60:38"
                      }
                    ],
                    "id": 8979,
                    "name": "IfStatement",
                    "src": "13615:98:38"
                  },
                  {
                    "attributes": {},
                    "children": [
                      {
                        "attributes": {
                          "commonType": {
                            "typeIdentifier": "t_int128",
                            "typeString": "int128"
                          },
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": ">",
                          "type": "bool"
                        },
                        "children": [
                          {
                            "attributes": {
                              "commonType": {
                                "typeIdentifier": "t_int128",
                                "typeString": "int128"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "&",
                              "type": "int128"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8916,
                                  "type": "int128",
                                  "value": "x"
                                },
                                "id": 8980,
                                "name": "Identifier",
                                "src": "13723:1:38"
                              },
                              {
                                "attributes": {
                                  "hexvalue": "307831303030303030303030303030303030",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "token": "number",
                                  "type": "int_const 1152921504606846976",
                                  "value": "0x1000000000000000"
                                },
                                "id": 8981,
                                "name": "Literal",
                                "src": "13727:18:38"
                              }
                            ],
                            "id": 8982,
                            "name": "BinaryOperation",
                            "src": "13723:22:38"
                          },
                          {
                            "attributes": {
                              "hexvalue": "30",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "token": "number",
                              "type": "int_const 0",
                              "value": "0"
                            },
                            "id": 8983,
                            "name": "Literal",
                            "src": "13748:1:38"
                          }
                        ],
                        "id": 8984,
                        "name": "BinaryOperation",
                        "src": "13723:26:38"
                      },
                      {
                        "children": [
                          {
                            "attributes": {
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "=",
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8935,
                                  "type": "uint256",
                                  "value": "result"
                                },
                                "id": 8985,
                                "name": "Identifier",
                                "src": "13757:6:38"
                              },
                              {
                                "attributes": {
                                  "commonType": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": ">>",
                                  "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": 8935,
                                          "type": "uint256",
                                          "value": "result"
                                        },
                                        "id": 8986,
                                        "name": "Identifier",
                                        "src": "13766:6:38"
                                      },
                                      {
                                        "attributes": {
                                          "hexvalue": "3078313042353538364346393839304636323938423932423731383432413938333633",
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "token": "number",
                                          "type": "int_const 3553...(31 digits omitted)...3443",
                                          "value": "0x10B5586CF9890F6298B92B71842A98363"
                                        },
                                        "id": 8987,
                                        "name": "Literal",
                                        "src": "13775:35:38"
                                      }
                                    ],
                                    "id": 8988,
                                    "name": "BinaryOperation",
                                    "src": "13766:44:38"
                                  },
                                  {
                                    "attributes": {
                                      "hexvalue": "313238",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "token": "number",
                                      "type": "int_const 128",
                                      "value": "128"
                                    },
                                    "id": 8989,
                                    "name": "Literal",
                                    "src": "13814:3:38"
                                  }
                                ],
                                "id": 8990,
                                "name": "BinaryOperation",
                                "src": "13766:51:38"
                              }
                            ],
                            "id": 8991,
                            "name": "Assignment",
                            "src": "13757:60:38"
                          }
                        ],
                        "id": 8992,
                        "name": "ExpressionStatement",
                        "src": "13757:60:38"
                      }
                    ],
                    "id": 8993,
                    "name": "IfStatement",
                    "src": "13719:98:38"
                  },
                  {
                    "attributes": {},
                    "children": [
                      {
                        "attributes": {
                          "commonType": {
                            "typeIdentifier": "t_int128",
                            "typeString": "int128"
                          },
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": ">",
                          "type": "bool"
                        },
                        "children": [
                          {
                            "attributes": {
                              "commonType": {
                                "typeIdentifier": "t_int128",
                                "typeString": "int128"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "&",
                              "type": "int128"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8916,
                                  "type": "int128",
                                  "value": "x"
                                },
                                "id": 8994,
                                "name": "Identifier",
                                "src": "13827:1:38"
                              },
                              {
                                "attributes": {
                                  "hexvalue": "3078383030303030303030303030303030",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "token": "number",
                                  "type": "int_const 576460752303423488",
                                  "value": "0x800000000000000"
                                },
                                "id": 8995,
                                "name": "Literal",
                                "src": "13831:17:38"
                              }
                            ],
                            "id": 8996,
                            "name": "BinaryOperation",
                            "src": "13827:21:38"
                          },
                          {
                            "attributes": {
                              "hexvalue": "30",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "token": "number",
                              "type": "int_const 0",
                              "value": "0"
                            },
                            "id": 8997,
                            "name": "Literal",
                            "src": "13851:1:38"
                          }
                        ],
                        "id": 8998,
                        "name": "BinaryOperation",
                        "src": "13827:25:38"
                      },
                      {
                        "children": [
                          {
                            "attributes": {
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "=",
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8935,
                                  "type": "uint256",
                                  "value": "result"
                                },
                                "id": 8999,
                                "name": "Identifier",
                                "src": "13860:6:38"
                              },
                              {
                                "attributes": {
                                  "commonType": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": ">>",
                                  "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": 8935,
                                          "type": "uint256",
                                          "value": "result"
                                        },
                                        "id": 9000,
                                        "name": "Identifier",
                                        "src": "13869:6:38"
                                      },
                                      {
                                        "attributes": {
                                          "hexvalue": "3078313035394230443331353835373433414537433534384542363843413431374644",
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "token": "number",
                                          "type": "int_const 3477...(31 digits omitted)...8461",
                                          "value": "0x1059B0D31585743AE7C548EB68CA417FD"
                                        },
                                        "id": 9001,
                                        "name": "Literal",
                                        "src": "13878:35:38"
                                      }
                                    ],
                                    "id": 9002,
                                    "name": "BinaryOperation",
                                    "src": "13869:44:38"
                                  },
                                  {
                                    "attributes": {
                                      "hexvalue": "313238",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "token": "number",
                                      "type": "int_const 128",
                                      "value": "128"
                                    },
                                    "id": 9003,
                                    "name": "Literal",
                                    "src": "13917:3:38"
                                  }
                                ],
                                "id": 9004,
                                "name": "BinaryOperation",
                                "src": "13869:51:38"
                              }
                            ],
                            "id": 9005,
                            "name": "Assignment",
                            "src": "13860:60:38"
                          }
                        ],
                        "id": 9006,
                        "name": "ExpressionStatement",
                        "src": "13860:60:38"
                      }
                    ],
                    "id": 9007,
                    "name": "IfStatement",
                    "src": "13823:97:38"
                  },
                  {
                    "attributes": {},
                    "children": [
                      {
                        "attributes": {
                          "commonType": {
                            "typeIdentifier": "t_int128",
                            "typeString": "int128"
                          },
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": ">",
                          "type": "bool"
                        },
                        "children": [
                          {
                            "attributes": {
                              "commonType": {
                                "typeIdentifier": "t_int128",
                                "typeString": "int128"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "&",
                              "type": "int128"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8916,
                                  "type": "int128",
                                  "value": "x"
                                },
                                "id": 9008,
                                "name": "Identifier",
                                "src": "13930:1:38"
                              },
                              {
                                "attributes": {
                                  "hexvalue": "3078343030303030303030303030303030",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "token": "number",
                                  "type": "int_const 288230376151711744",
                                  "value": "0x400000000000000"
                                },
                                "id": 9009,
                                "name": "Literal",
                                "src": "13934:17:38"
                              }
                            ],
                            "id": 9010,
                            "name": "BinaryOperation",
                            "src": "13930:21:38"
                          },
                          {
                            "attributes": {
                              "hexvalue": "30",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "token": "number",
                              "type": "int_const 0",
                              "value": "0"
                            },
                            "id": 9011,
                            "name": "Literal",
                            "src": "13954:1:38"
                          }
                        ],
                        "id": 9012,
                        "name": "BinaryOperation",
                        "src": "13930:25:38"
                      },
                      {
                        "children": [
                          {
                            "attributes": {
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "=",
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8935,
                                  "type": "uint256",
                                  "value": "result"
                                },
                                "id": 9013,
                                "name": "Identifier",
                                "src": "13963:6:38"
                              },
                              {
                                "attributes": {
                                  "commonType": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": ">>",
                                  "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": 8935,
                                          "type": "uint256",
                                          "value": "result"
                                        },
                                        "id": 9014,
                                        "name": "Identifier",
                                        "src": "13972:6:38"
                                      },
                                      {
                                        "attributes": {
                                          "hexvalue": "3078313032433941334537373830363045453646374341434134463741323942444538",
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "token": "number",
                                          "type": "int_const 3439...(31 digits omitted)...1112",
                                          "value": "0x102C9A3E778060EE6F7CACA4F7A29BDE8"
                                        },
                                        "id": 9015,
                                        "name": "Literal",
                                        "src": "13981:35:38"
                                      }
                                    ],
                                    "id": 9016,
                                    "name": "BinaryOperation",
                                    "src": "13972:44:38"
                                  },
                                  {
                                    "attributes": {
                                      "hexvalue": "313238",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "token": "number",
                                      "type": "int_const 128",
                                      "value": "128"
                                    },
                                    "id": 9017,
                                    "name": "Literal",
                                    "src": "14020:3:38"
                                  }
                                ],
                                "id": 9018,
                                "name": "BinaryOperation",
                                "src": "13972:51:38"
                              }
                            ],
                            "id": 9019,
                            "name": "Assignment",
                            "src": "13963:60:38"
                          }
                        ],
                        "id": 9020,
                        "name": "ExpressionStatement",
                        "src": "13963:60:38"
                      }
                    ],
                    "id": 9021,
                    "name": "IfStatement",
                    "src": "13926:97:38"
                  },
                  {
                    "attributes": {},
                    "children": [
                      {
                        "attributes": {
                          "commonType": {
                            "typeIdentifier": "t_int128",
                            "typeString": "int128"
                          },
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": ">",
                          "type": "bool"
                        },
                        "children": [
                          {
                            "attributes": {
                              "commonType": {
                                "typeIdentifier": "t_int128",
                                "typeString": "int128"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "&",
                              "type": "int128"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8916,
                                  "type": "int128",
                                  "value": "x"
                                },
                                "id": 9022,
                                "name": "Identifier",
                                "src": "14033:1:38"
                              },
                              {
                                "attributes": {
                                  "hexvalue": "3078323030303030303030303030303030",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "token": "number",
                                  "type": "int_const 144115188075855872",
                                  "value": "0x200000000000000"
                                },
                                "id": 9023,
                                "name": "Literal",
                                "src": "14037:17:38"
                              }
                            ],
                            "id": 9024,
                            "name": "BinaryOperation",
                            "src": "14033:21:38"
                          },
                          {
                            "attributes": {
                              "hexvalue": "30",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "token": "number",
                              "type": "int_const 0",
                              "value": "0"
                            },
                            "id": 9025,
                            "name": "Literal",
                            "src": "14057:1:38"
                          }
                        ],
                        "id": 9026,
                        "name": "BinaryOperation",
                        "src": "14033:25:38"
                      },
                      {
                        "children": [
                          {
                            "attributes": {
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "=",
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8935,
                                  "type": "uint256",
                                  "value": "result"
                                },
                                "id": 9027,
                                "name": "Identifier",
                                "src": "14066:6:38"
                              },
                              {
                                "attributes": {
                                  "commonType": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": ">>",
                                  "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": 8935,
                                          "type": "uint256",
                                          "value": "result"
                                        },
                                        "id": 9028,
                                        "name": "Identifier",
                                        "src": "14075:6:38"
                                      },
                                      {
                                        "attributes": {
                                          "hexvalue": "3078313031363344413946423333333536443834413636414533333644434446413346",
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "token": "number",
                                          "type": "int_const 3421...(31 digits omitted)...6143",
                                          "value": "0x10163DA9FB33356D84A66AE336DCDFA3F"
                                        },
                                        "id": 9029,
                                        "name": "Literal",
                                        "src": "14084:35:38"
                                      }
                                    ],
                                    "id": 9030,
                                    "name": "BinaryOperation",
                                    "src": "14075:44:38"
                                  },
                                  {
                                    "attributes": {
                                      "hexvalue": "313238",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "token": "number",
                                      "type": "int_const 128",
                                      "value": "128"
                                    },
                                    "id": 9031,
                                    "name": "Literal",
                                    "src": "14123:3:38"
                                  }
                                ],
                                "id": 9032,
                                "name": "BinaryOperation",
                                "src": "14075:51:38"
                              }
                            ],
                            "id": 9033,
                            "name": "Assignment",
                            "src": "14066:60:38"
                          }
                        ],
                        "id": 9034,
                        "name": "ExpressionStatement",
                        "src": "14066:60:38"
                      }
                    ],
                    "id": 9035,
                    "name": "IfStatement",
                    "src": "14029:97:38"
                  },
                  {
                    "attributes": {},
                    "children": [
                      {
                        "attributes": {
                          "commonType": {
                            "typeIdentifier": "t_int128",
                            "typeString": "int128"
                          },
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": ">",
                          "type": "bool"
                        },
                        "children": [
                          {
                            "attributes": {
                              "commonType": {
                                "typeIdentifier": "t_int128",
                                "typeString": "int128"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "&",
                              "type": "int128"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8916,
                                  "type": "int128",
                                  "value": "x"
                                },
                                "id": 9036,
                                "name": "Identifier",
                                "src": "14136:1:38"
                              },
                              {
                                "attributes": {
                                  "hexvalue": "3078313030303030303030303030303030",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "token": "number",
                                  "type": "int_const 72057594037927936",
                                  "value": "0x100000000000000"
                                },
                                "id": 9037,
                                "name": "Literal",
                                "src": "14140:17:38"
                              }
                            ],
                            "id": 9038,
                            "name": "BinaryOperation",
                            "src": "14136:21:38"
                          },
                          {
                            "attributes": {
                              "hexvalue": "30",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "token": "number",
                              "type": "int_const 0",
                              "value": "0"
                            },
                            "id": 9039,
                            "name": "Literal",
                            "src": "14160:1:38"
                          }
                        ],
                        "id": 9040,
                        "name": "BinaryOperation",
                        "src": "14136:25:38"
                      },
                      {
                        "children": [
                          {
                            "attributes": {
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "=",
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8935,
                                  "type": "uint256",
                                  "value": "result"
                                },
                                "id": 9041,
                                "name": "Identifier",
                                "src": "14169:6:38"
                              },
                              {
                                "attributes": {
                                  "commonType": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": ">>",
                                  "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": 8935,
                                          "type": "uint256",
                                          "value": "result"
                                        },
                                        "id": 9042,
                                        "name": "Identifier",
                                        "src": "14178:6:38"
                                      },
                                      {
                                        "attributes": {
                                          "hexvalue": "3078313030423141464135414243424544363132394142313345433131444339353433",
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "token": "number",
                                          "type": "int_const 3412...(31 digits omitted)...9651",
                                          "value": "0x100B1AFA5ABCBED6129AB13EC11DC9543"
                                        },
                                        "id": 9043,
                                        "name": "Literal",
                                        "src": "14187:35:38"
                                      }
                                    ],
                                    "id": 9044,
                                    "name": "BinaryOperation",
                                    "src": "14178:44:38"
                                  },
                                  {
                                    "attributes": {
                                      "hexvalue": "313238",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "token": "number",
                                      "type": "int_const 128",
                                      "value": "128"
                                    },
                                    "id": 9045,
                                    "name": "Literal",
                                    "src": "14226:3:38"
                                  }
                                ],
                                "id": 9046,
                                "name": "BinaryOperation",
                                "src": "14178:51:38"
                              }
                            ],
                            "id": 9047,
                            "name": "Assignment",
                            "src": "14169:60:38"
                          }
                        ],
                        "id": 9048,
                        "name": "ExpressionStatement",
                        "src": "14169:60:38"
                      }
                    ],
                    "id": 9049,
                    "name": "IfStatement",
                    "src": "14132:97:38"
                  },
                  {
                    "attributes": {},
                    "children": [
                      {
                        "attributes": {
                          "commonType": {
                            "typeIdentifier": "t_int128",
                            "typeString": "int128"
                          },
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": ">",
                          "type": "bool"
                        },
                        "children": [
                          {
                            "attributes": {
                              "commonType": {
                                "typeIdentifier": "t_int128",
                                "typeString": "int128"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "&",
                              "type": "int128"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8916,
                                  "type": "int128",
                                  "value": "x"
                                },
                                "id": 9050,
                                "name": "Identifier",
                                "src": "14239:1:38"
                              },
                              {
                                "attributes": {
                                  "hexvalue": "30783830303030303030303030303030",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "token": "number",
                                  "type": "int_const 36028797018963968",
                                  "value": "0x80000000000000"
                                },
                                "id": 9051,
                                "name": "Literal",
                                "src": "14243:16:38"
                              }
                            ],
                            "id": 9052,
                            "name": "BinaryOperation",
                            "src": "14239:20:38"
                          },
                          {
                            "attributes": {
                              "hexvalue": "30",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "token": "number",
                              "type": "int_const 0",
                              "value": "0"
                            },
                            "id": 9053,
                            "name": "Literal",
                            "src": "14262:1:38"
                          }
                        ],
                        "id": 9054,
                        "name": "BinaryOperation",
                        "src": "14239:24:38"
                      },
                      {
                        "children": [
                          {
                            "attributes": {
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "=",
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8935,
                                  "type": "uint256",
                                  "value": "result"
                                },
                                "id": 9055,
                                "name": "Identifier",
                                "src": "14271:6:38"
                              },
                              {
                                "attributes": {
                                  "commonType": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": ">>",
                                  "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": 8935,
                                          "type": "uint256",
                                          "value": "result"
                                        },
                                        "id": 9056,
                                        "name": "Identifier",
                                        "src": "14280:6:38"
                                      },
                                      {
                                        "attributes": {
                                          "hexvalue": "3078313030353843383644413143303945413146463139443239344346324636373942",
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "token": "number",
                                          "type": "int_const 3407...(31 digits omitted)...2955",
                                          "value": "0x10058C86DA1C09EA1FF19D294CF2F679B"
                                        },
                                        "id": 9057,
                                        "name": "Literal",
                                        "src": "14289:35:38"
                                      }
                                    ],
                                    "id": 9058,
                                    "name": "BinaryOperation",
                                    "src": "14280:44:38"
                                  },
                                  {
                                    "attributes": {
                                      "hexvalue": "313238",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "token": "number",
                                      "type": "int_const 128",
                                      "value": "128"
                                    },
                                    "id": 9059,
                                    "name": "Literal",
                                    "src": "14328:3:38"
                                  }
                                ],
                                "id": 9060,
                                "name": "BinaryOperation",
                                "src": "14280:51:38"
                              }
                            ],
                            "id": 9061,
                            "name": "Assignment",
                            "src": "14271:60:38"
                          }
                        ],
                        "id": 9062,
                        "name": "ExpressionStatement",
                        "src": "14271:60:38"
                      }
                    ],
                    "id": 9063,
                    "name": "IfStatement",
                    "src": "14235:96:38"
                  },
                  {
                    "attributes": {},
                    "children": [
                      {
                        "attributes": {
                          "commonType": {
                            "typeIdentifier": "t_int128",
                            "typeString": "int128"
                          },
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": ">",
                          "type": "bool"
                        },
                        "children": [
                          {
                            "attributes": {
                              "commonType": {
                                "typeIdentifier": "t_int128",
                                "typeString": "int128"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "&",
                              "type": "int128"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8916,
                                  "type": "int128",
                                  "value": "x"
                                },
                                "id": 9064,
                                "name": "Identifier",
                                "src": "14341:1:38"
                              },
                              {
                                "attributes": {
                                  "hexvalue": "30783430303030303030303030303030",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "token": "number",
                                  "type": "int_const 18014398509481984",
                                  "value": "0x40000000000000"
                                },
                                "id": 9065,
                                "name": "Literal",
                                "src": "14345:16:38"
                              }
                            ],
                            "id": 9066,
                            "name": "BinaryOperation",
                            "src": "14341:20:38"
                          },
                          {
                            "attributes": {
                              "hexvalue": "30",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "token": "number",
                              "type": "int_const 0",
                              "value": "0"
                            },
                            "id": 9067,
                            "name": "Literal",
                            "src": "14364:1:38"
                          }
                        ],
                        "id": 9068,
                        "name": "BinaryOperation",
                        "src": "14341:24:38"
                      },
                      {
                        "children": [
                          {
                            "attributes": {
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "=",
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8935,
                                  "type": "uint256",
                                  "value": "result"
                                },
                                "id": 9069,
                                "name": "Identifier",
                                "src": "14373:6:38"
                              },
                              {
                                "attributes": {
                                  "commonType": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": ">>",
                                  "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": 8935,
                                          "type": "uint256",
                                          "value": "result"
                                        },
                                        "id": 9070,
                                        "name": "Identifier",
                                        "src": "14382:6:38"
                                      },
                                      {
                                        "attributes": {
                                          "hexvalue": "3078313030324336303545324538434543353036443231424643383941323341303046",
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "token": "number",
                                          "type": "int_const 3405...(31 digits omitted)...6639",
                                          "value": "0x1002C605E2E8CEC506D21BFC89A23A00F"
                                        },
                                        "id": 9071,
                                        "name": "Literal",
                                        "src": "14391:35:38"
                                      }
                                    ],
                                    "id": 9072,
                                    "name": "BinaryOperation",
                                    "src": "14382:44:38"
                                  },
                                  {
                                    "attributes": {
                                      "hexvalue": "313238",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "token": "number",
                                      "type": "int_const 128",
                                      "value": "128"
                                    },
                                    "id": 9073,
                                    "name": "Literal",
                                    "src": "14430:3:38"
                                  }
                                ],
                                "id": 9074,
                                "name": "BinaryOperation",
                                "src": "14382:51:38"
                              }
                            ],
                            "id": 9075,
                            "name": "Assignment",
                            "src": "14373:60:38"
                          }
                        ],
                        "id": 9076,
                        "name": "ExpressionStatement",
                        "src": "14373:60:38"
                      }
                    ],
                    "id": 9077,
                    "name": "IfStatement",
                    "src": "14337:96:38"
                  },
                  {
                    "attributes": {},
                    "children": [
                      {
                        "attributes": {
                          "commonType": {
                            "typeIdentifier": "t_int128",
                            "typeString": "int128"
                          },
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": ">",
                          "type": "bool"
                        },
                        "children": [
                          {
                            "attributes": {
                              "commonType": {
                                "typeIdentifier": "t_int128",
                                "typeString": "int128"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "&",
                              "type": "int128"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8916,
                                  "type": "int128",
                                  "value": "x"
                                },
                                "id": 9078,
                                "name": "Identifier",
                                "src": "14443:1:38"
                              },
                              {
                                "attributes": {
                                  "hexvalue": "30783230303030303030303030303030",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "token": "number",
                                  "type": "int_const 9007199254740992",
                                  "value": "0x20000000000000"
                                },
                                "id": 9079,
                                "name": "Literal",
                                "src": "14447:16:38"
                              }
                            ],
                            "id": 9080,
                            "name": "BinaryOperation",
                            "src": "14443:20:38"
                          },
                          {
                            "attributes": {
                              "hexvalue": "30",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "token": "number",
                              "type": "int_const 0",
                              "value": "0"
                            },
                            "id": 9081,
                            "name": "Literal",
                            "src": "14466:1:38"
                          }
                        ],
                        "id": 9082,
                        "name": "BinaryOperation",
                        "src": "14443:24:38"
                      },
                      {
                        "children": [
                          {
                            "attributes": {
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "=",
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8935,
                                  "type": "uint256",
                                  "value": "result"
                                },
                                "id": 9083,
                                "name": "Identifier",
                                "src": "14475:6:38"
                              },
                              {
                                "attributes": {
                                  "commonType": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": ">>",
                                  "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": 8935,
                                          "type": "uint256",
                                          "value": "result"
                                        },
                                        "id": 9084,
                                        "name": "Identifier",
                                        "src": "14484:6:38"
                                      },
                                      {
                                        "attributes": {
                                          "hexvalue": "3078313030313632463339303430353146413132384243413943353543333145354446",
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "token": "number",
                                          "type": "int_const 3403...(31 digits omitted)...1535",
                                          "value": "0x100162F3904051FA128BCA9C55C31E5DF"
                                        },
                                        "id": 9085,
                                        "name": "Literal",
                                        "src": "14493:35:38"
                                      }
                                    ],
                                    "id": 9086,
                                    "name": "BinaryOperation",
                                    "src": "14484:44:38"
                                  },
                                  {
                                    "attributes": {
                                      "hexvalue": "313238",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "token": "number",
                                      "type": "int_const 128",
                                      "value": "128"
                                    },
                                    "id": 9087,
                                    "name": "Literal",
                                    "src": "14532:3:38"
                                  }
                                ],
                                "id": 9088,
                                "name": "BinaryOperation",
                                "src": "14484:51:38"
                              }
                            ],
                            "id": 9089,
                            "name": "Assignment",
                            "src": "14475:60:38"
                          }
                        ],
                        "id": 9090,
                        "name": "ExpressionStatement",
                        "src": "14475:60:38"
                      }
                    ],
                    "id": 9091,
                    "name": "IfStatement",
                    "src": "14439:96:38"
                  },
                  {
                    "attributes": {},
                    "children": [
                      {
                        "attributes": {
                          "commonType": {
                            "typeIdentifier": "t_int128",
                            "typeString": "int128"
                          },
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": ">",
                          "type": "bool"
                        },
                        "children": [
                          {
                            "attributes": {
                              "commonType": {
                                "typeIdentifier": "t_int128",
                                "typeString": "int128"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "&",
                              "type": "int128"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8916,
                                  "type": "int128",
                                  "value": "x"
                                },
                                "id": 9092,
                                "name": "Identifier",
                                "src": "14545:1:38"
                              },
                              {
                                "attributes": {
                                  "hexvalue": "30783130303030303030303030303030",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "token": "number",
                                  "type": "int_const 4503599627370496",
                                  "value": "0x10000000000000"
                                },
                                "id": 9093,
                                "name": "Literal",
                                "src": "14549:16:38"
                              }
                            ],
                            "id": 9094,
                            "name": "BinaryOperation",
                            "src": "14545:20:38"
                          },
                          {
                            "attributes": {
                              "hexvalue": "30",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "token": "number",
                              "type": "int_const 0",
                              "value": "0"
                            },
                            "id": 9095,
                            "name": "Literal",
                            "src": "14568:1:38"
                          }
                        ],
                        "id": 9096,
                        "name": "BinaryOperation",
                        "src": "14545:24:38"
                      },
                      {
                        "children": [
                          {
                            "attributes": {
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "=",
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8935,
                                  "type": "uint256",
                                  "value": "result"
                                },
                                "id": 9097,
                                "name": "Identifier",
                                "src": "14577:6:38"
                              },
                              {
                                "attributes": {
                                  "commonType": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": ">>",
                                  "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": 8935,
                                          "type": "uint256",
                                          "value": "result"
                                        },
                                        "id": 9098,
                                        "name": "Identifier",
                                        "src": "14586:6:38"
                                      },
                                      {
                                        "attributes": {
                                          "hexvalue": "3078313030304231373545464644433736424133384533313637314341393339373235",
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "token": "number",
                                          "type": "int_const 3403...(31 digits omitted)...6133",
                                          "value": "0x1000B175EFFDC76BA38E31671CA939725"
                                        },
                                        "id": 9099,
                                        "name": "Literal",
                                        "src": "14595:35:38"
                                      }
                                    ],
                                    "id": 9100,
                                    "name": "BinaryOperation",
                                    "src": "14586:44:38"
                                  },
                                  {
                                    "attributes": {
                                      "hexvalue": "313238",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "token": "number",
                                      "type": "int_const 128",
                                      "value": "128"
                                    },
                                    "id": 9101,
                                    "name": "Literal",
                                    "src": "14634:3:38"
                                  }
                                ],
                                "id": 9102,
                                "name": "BinaryOperation",
                                "src": "14586:51:38"
                              }
                            ],
                            "id": 9103,
                            "name": "Assignment",
                            "src": "14577:60:38"
                          }
                        ],
                        "id": 9104,
                        "name": "ExpressionStatement",
                        "src": "14577:60:38"
                      }
                    ],
                    "id": 9105,
                    "name": "IfStatement",
                    "src": "14541:96:38"
                  },
                  {
                    "attributes": {},
                    "children": [
                      {
                        "attributes": {
                          "commonType": {
                            "typeIdentifier": "t_int128",
                            "typeString": "int128"
                          },
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": ">",
                          "type": "bool"
                        },
                        "children": [
                          {
                            "attributes": {
                              "commonType": {
                                "typeIdentifier": "t_int128",
                                "typeString": "int128"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "&",
                              "type": "int128"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8916,
                                  "type": "int128",
                                  "value": "x"
                                },
                                "id": 9106,
                                "name": "Identifier",
                                "src": "14647:1:38"
                              },
                              {
                                "attributes": {
                                  "hexvalue": "307838303030303030303030303030",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "token": "number",
                                  "type": "int_const 2251799813685248",
                                  "value": "0x8000000000000"
                                },
                                "id": 9107,
                                "name": "Literal",
                                "src": "14651:15:38"
                              }
                            ],
                            "id": 9108,
                            "name": "BinaryOperation",
                            "src": "14647:19:38"
                          },
                          {
                            "attributes": {
                              "hexvalue": "30",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "token": "number",
                              "type": "int_const 0",
                              "value": "0"
                            },
                            "id": 9109,
                            "name": "Literal",
                            "src": "14669:1:38"
                          }
                        ],
                        "id": 9110,
                        "name": "BinaryOperation",
                        "src": "14647:23:38"
                      },
                      {
                        "children": [
                          {
                            "attributes": {
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "=",
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8935,
                                  "type": "uint256",
                                  "value": "result"
                                },
                                "id": 9111,
                                "name": "Identifier",
                                "src": "14678:6:38"
                              },
                              {
                                "attributes": {
                                  "commonType": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": ">>",
                                  "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": 8935,
                                          "type": "uint256",
                                          "value": "result"
                                        },
                                        "id": 9112,
                                        "name": "Identifier",
                                        "src": "14687:6:38"
                                      },
                                      {
                                        "attributes": {
                                          "hexvalue": "3078313030303538424130314642394639364436434143443442313830393137433344",
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "token": "number",
                                          "type": "int_const 3403...(31 digits omitted)...1661",
                                          "value": "0x100058BA01FB9F96D6CACD4B180917C3D"
                                        },
                                        "id": 9113,
                                        "name": "Literal",
                                        "src": "14696:35:38"
                                      }
                                    ],
                                    "id": 9114,
                                    "name": "BinaryOperation",
                                    "src": "14687:44:38"
                                  },
                                  {
                                    "attributes": {
                                      "hexvalue": "313238",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "token": "number",
                                      "type": "int_const 128",
                                      "value": "128"
                                    },
                                    "id": 9115,
                                    "name": "Literal",
                                    "src": "14735:3:38"
                                  }
                                ],
                                "id": 9116,
                                "name": "BinaryOperation",
                                "src": "14687:51:38"
                              }
                            ],
                            "id": 9117,
                            "name": "Assignment",
                            "src": "14678:60:38"
                          }
                        ],
                        "id": 9118,
                        "name": "ExpressionStatement",
                        "src": "14678:60:38"
                      }
                    ],
                    "id": 9119,
                    "name": "IfStatement",
                    "src": "14643:95:38"
                  },
                  {
                    "attributes": {},
                    "children": [
                      {
                        "attributes": {
                          "commonType": {
                            "typeIdentifier": "t_int128",
                            "typeString": "int128"
                          },
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": ">",
                          "type": "bool"
                        },
                        "children": [
                          {
                            "attributes": {
                              "commonType": {
                                "typeIdentifier": "t_int128",
                                "typeString": "int128"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "&",
                              "type": "int128"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8916,
                                  "type": "int128",
                                  "value": "x"
                                },
                                "id": 9120,
                                "name": "Identifier",
                                "src": "14748:1:38"
                              },
                              {
                                "attributes": {
                                  "hexvalue": "307834303030303030303030303030",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "token": "number",
                                  "type": "int_const 1125899906842624",
                                  "value": "0x4000000000000"
                                },
                                "id": 9121,
                                "name": "Literal",
                                "src": "14752:15:38"
                              }
                            ],
                            "id": 9122,
                            "name": "BinaryOperation",
                            "src": "14748:19:38"
                          },
                          {
                            "attributes": {
                              "hexvalue": "30",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "token": "number",
                              "type": "int_const 0",
                              "value": "0"
                            },
                            "id": 9123,
                            "name": "Literal",
                            "src": "14770:1:38"
                          }
                        ],
                        "id": 9124,
                        "name": "BinaryOperation",
                        "src": "14748:23:38"
                      },
                      {
                        "children": [
                          {
                            "attributes": {
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "=",
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8935,
                                  "type": "uint256",
                                  "value": "result"
                                },
                                "id": 9125,
                                "name": "Identifier",
                                "src": "14779:6:38"
                              },
                              {
                                "attributes": {
                                  "commonType": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": ">>",
                                  "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": 8935,
                                          "type": "uint256",
                                          "value": "result"
                                        },
                                        "id": 9126,
                                        "name": "Identifier",
                                        "src": "14788:6:38"
                                      },
                                      {
                                        "attributes": {
                                          "hexvalue": "3078313030303243354343333744413934393144303938354333343843363845374233",
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "token": "number",
                                          "type": "int_const 3402...(31 digits omitted)...1603",
                                          "value": "0x10002C5CC37DA9491D0985C348C68E7B3"
                                        },
                                        "id": 9127,
                                        "name": "Literal",
                                        "src": "14797:35:38"
                                      }
                                    ],
                                    "id": 9128,
                                    "name": "BinaryOperation",
                                    "src": "14788:44:38"
                                  },
                                  {
                                    "attributes": {
                                      "hexvalue": "313238",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "token": "number",
                                      "type": "int_const 128",
                                      "value": "128"
                                    },
                                    "id": 9129,
                                    "name": "Literal",
                                    "src": "14836:3:38"
                                  }
                                ],
                                "id": 9130,
                                "name": "BinaryOperation",
                                "src": "14788:51:38"
                              }
                            ],
                            "id": 9131,
                            "name": "Assignment",
                            "src": "14779:60:38"
                          }
                        ],
                        "id": 9132,
                        "name": "ExpressionStatement",
                        "src": "14779:60:38"
                      }
                    ],
                    "id": 9133,
                    "name": "IfStatement",
                    "src": "14744:95:38"
                  },
                  {
                    "attributes": {},
                    "children": [
                      {
                        "attributes": {
                          "commonType": {
                            "typeIdentifier": "t_int128",
                            "typeString": "int128"
                          },
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": ">",
                          "type": "bool"
                        },
                        "children": [
                          {
                            "attributes": {
                              "commonType": {
                                "typeIdentifier": "t_int128",
                                "typeString": "int128"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "&",
                              "type": "int128"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8916,
                                  "type": "int128",
                                  "value": "x"
                                },
                                "id": 9134,
                                "name": "Identifier",
                                "src": "14849:1:38"
                              },
                              {
                                "attributes": {
                                  "hexvalue": "307832303030303030303030303030",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "token": "number",
                                  "type": "int_const 562949953421312",
                                  "value": "0x2000000000000"
                                },
                                "id": 9135,
                                "name": "Literal",
                                "src": "14853:15:38"
                              }
                            ],
                            "id": 9136,
                            "name": "BinaryOperation",
                            "src": "14849:19:38"
                          },
                          {
                            "attributes": {
                              "hexvalue": "30",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "token": "number",
                              "type": "int_const 0",
                              "value": "0"
                            },
                            "id": 9137,
                            "name": "Literal",
                            "src": "14871:1:38"
                          }
                        ],
                        "id": 9138,
                        "name": "BinaryOperation",
                        "src": "14849:23:38"
                      },
                      {
                        "children": [
                          {
                            "attributes": {
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "=",
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8935,
                                  "type": "uint256",
                                  "value": "result"
                                },
                                "id": 9139,
                                "name": "Identifier",
                                "src": "14880:6:38"
                              },
                              {
                                "attributes": {
                                  "commonType": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": ">>",
                                  "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": 8935,
                                          "type": "uint256",
                                          "value": "result"
                                        },
                                        "id": 9140,
                                        "name": "Identifier",
                                        "src": "14889:6:38"
                                      },
                                      {
                                        "attributes": {
                                          "hexvalue": "3078313030303136324535323545453035343735343435374435393935323932303236",
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "token": "number",
                                          "type": "int_const 3402...(31 digits omitted)...3862",
                                          "value": "0x1000162E525EE054754457D5995292026"
                                        },
                                        "id": 9141,
                                        "name": "Literal",
                                        "src": "14898:35:38"
                                      }
                                    ],
                                    "id": 9142,
                                    "name": "BinaryOperation",
                                    "src": "14889:44:38"
                                  },
                                  {
                                    "attributes": {
                                      "hexvalue": "313238",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "token": "number",
                                      "type": "int_const 128",
                                      "value": "128"
                                    },
                                    "id": 9143,
                                    "name": "Literal",
                                    "src": "14937:3:38"
                                  }
                                ],
                                "id": 9144,
                                "name": "BinaryOperation",
                                "src": "14889:51:38"
                              }
                            ],
                            "id": 9145,
                            "name": "Assignment",
                            "src": "14880:60:38"
                          }
                        ],
                        "id": 9146,
                        "name": "ExpressionStatement",
                        "src": "14880:60:38"
                      }
                    ],
                    "id": 9147,
                    "name": "IfStatement",
                    "src": "14845:95:38"
                  },
                  {
                    "attributes": {},
                    "children": [
                      {
                        "attributes": {
                          "commonType": {
                            "typeIdentifier": "t_int128",
                            "typeString": "int128"
                          },
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": ">",
                          "type": "bool"
                        },
                        "children": [
                          {
                            "attributes": {
                              "commonType": {
                                "typeIdentifier": "t_int128",
                                "typeString": "int128"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "&",
                              "type": "int128"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8916,
                                  "type": "int128",
                                  "value": "x"
                                },
                                "id": 9148,
                                "name": "Identifier",
                                "src": "14950:1:38"
                              },
                              {
                                "attributes": {
                                  "hexvalue": "307831303030303030303030303030",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "token": "number",
                                  "type": "int_const 281474976710656",
                                  "value": "0x1000000000000"
                                },
                                "id": 9149,
                                "name": "Literal",
                                "src": "14954:15:38"
                              }
                            ],
                            "id": 9150,
                            "name": "BinaryOperation",
                            "src": "14950:19:38"
                          },
                          {
                            "attributes": {
                              "hexvalue": "30",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "token": "number",
                              "type": "int_const 0",
                              "value": "0"
                            },
                            "id": 9151,
                            "name": "Literal",
                            "src": "14972:1:38"
                          }
                        ],
                        "id": 9152,
                        "name": "BinaryOperation",
                        "src": "14950:23:38"
                      },
                      {
                        "children": [
                          {
                            "attributes": {
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "=",
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8935,
                                  "type": "uint256",
                                  "value": "result"
                                },
                                "id": 9153,
                                "name": "Identifier",
                                "src": "14981:6:38"
                              },
                              {
                                "attributes": {
                                  "commonType": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": ">>",
                                  "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": 8935,
                                          "type": "uint256",
                                          "value": "result"
                                        },
                                        "id": 9154,
                                        "name": "Identifier",
                                        "src": "14990:6:38"
                                      },
                                      {
                                        "attributes": {
                                          "hexvalue": "3078313030303042313732353537373543303430363138424634413441444538334643",
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "token": "number",
                                          "type": "int_const 3402...(31 digits omitted)...1036",
                                          "value": "0x10000B17255775C040618BF4A4ADE83FC"
                                        },
                                        "id": 9155,
                                        "name": "Literal",
                                        "src": "14999:35:38"
                                      }
                                    ],
                                    "id": 9156,
                                    "name": "BinaryOperation",
                                    "src": "14990:44:38"
                                  },
                                  {
                                    "attributes": {
                                      "hexvalue": "313238",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "token": "number",
                                      "type": "int_const 128",
                                      "value": "128"
                                    },
                                    "id": 9157,
                                    "name": "Literal",
                                    "src": "15038:3:38"
                                  }
                                ],
                                "id": 9158,
                                "name": "BinaryOperation",
                                "src": "14990:51:38"
                              }
                            ],
                            "id": 9159,
                            "name": "Assignment",
                            "src": "14981:60:38"
                          }
                        ],
                        "id": 9160,
                        "name": "ExpressionStatement",
                        "src": "14981:60:38"
                      }
                    ],
                    "id": 9161,
                    "name": "IfStatement",
                    "src": "14946:95:38"
                  },
                  {
                    "attributes": {},
                    "children": [
                      {
                        "attributes": {
                          "commonType": {
                            "typeIdentifier": "t_int128",
                            "typeString": "int128"
                          },
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": ">",
                          "type": "bool"
                        },
                        "children": [
                          {
                            "attributes": {
                              "commonType": {
                                "typeIdentifier": "t_int128",
                                "typeString": "int128"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "&",
                              "type": "int128"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8916,
                                  "type": "int128",
                                  "value": "x"
                                },
                                "id": 9162,
                                "name": "Identifier",
                                "src": "15051:1:38"
                              },
                              {
                                "attributes": {
                                  "hexvalue": "3078383030303030303030303030",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "token": "number",
                                  "type": "int_const 140737488355328",
                                  "value": "0x800000000000"
                                },
                                "id": 9163,
                                "name": "Literal",
                                "src": "15055:14:38"
                              }
                            ],
                            "id": 9164,
                            "name": "BinaryOperation",
                            "src": "15051:18:38"
                          },
                          {
                            "attributes": {
                              "hexvalue": "30",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "token": "number",
                              "type": "int_const 0",
                              "value": "0"
                            },
                            "id": 9165,
                            "name": "Literal",
                            "src": "15072:1:38"
                          }
                        ],
                        "id": 9166,
                        "name": "BinaryOperation",
                        "src": "15051:22:38"
                      },
                      {
                        "children": [
                          {
                            "attributes": {
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "=",
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8935,
                                  "type": "uint256",
                                  "value": "result"
                                },
                                "id": 9167,
                                "name": "Identifier",
                                "src": "15081:6:38"
                              },
                              {
                                "attributes": {
                                  "commonType": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": ">>",
                                  "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": 8935,
                                          "type": "uint256",
                                          "value": "result"
                                        },
                                        "id": 9168,
                                        "name": "Identifier",
                                        "src": "15090:6:38"
                                      },
                                      {
                                        "attributes": {
                                          "hexvalue": "3078313030303035384239314235424339414532454544383145394237443443464142",
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "token": "number",
                                          "type": "int_const 3402...(31 digits omitted)...8555",
                                          "value": "0x1000058B91B5BC9AE2EED81E9B7D4CFAB"
                                        },
                                        "id": 9169,
                                        "name": "Literal",
                                        "src": "15099:35:38"
                                      }
                                    ],
                                    "id": 9170,
                                    "name": "BinaryOperation",
                                    "src": "15090:44:38"
                                  },
                                  {
                                    "attributes": {
                                      "hexvalue": "313238",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "token": "number",
                                      "type": "int_const 128",
                                      "value": "128"
                                    },
                                    "id": 9171,
                                    "name": "Literal",
                                    "src": "15138:3:38"
                                  }
                                ],
                                "id": 9172,
                                "name": "BinaryOperation",
                                "src": "15090:51:38"
                              }
                            ],
                            "id": 9173,
                            "name": "Assignment",
                            "src": "15081:60:38"
                          }
                        ],
                        "id": 9174,
                        "name": "ExpressionStatement",
                        "src": "15081:60:38"
                      }
                    ],
                    "id": 9175,
                    "name": "IfStatement",
                    "src": "15047:94:38"
                  },
                  {
                    "attributes": {},
                    "children": [
                      {
                        "attributes": {
                          "commonType": {
                            "typeIdentifier": "t_int128",
                            "typeString": "int128"
                          },
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": ">",
                          "type": "bool"
                        },
                        "children": [
                          {
                            "attributes": {
                              "commonType": {
                                "typeIdentifier": "t_int128",
                                "typeString": "int128"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "&",
                              "type": "int128"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8916,
                                  "type": "int128",
                                  "value": "x"
                                },
                                "id": 9176,
                                "name": "Identifier",
                                "src": "15151:1:38"
                              },
                              {
                                "attributes": {
                                  "hexvalue": "3078343030303030303030303030",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "token": "number",
                                  "type": "int_const 70368744177664",
                                  "value": "0x400000000000"
                                },
                                "id": 9177,
                                "name": "Literal",
                                "src": "15155:14:38"
                              }
                            ],
                            "id": 9178,
                            "name": "BinaryOperation",
                            "src": "15151:18:38"
                          },
                          {
                            "attributes": {
                              "hexvalue": "30",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "token": "number",
                              "type": "int_const 0",
                              "value": "0"
                            },
                            "id": 9179,
                            "name": "Literal",
                            "src": "15172:1:38"
                          }
                        ],
                        "id": 9180,
                        "name": "BinaryOperation",
                        "src": "15151:22:38"
                      },
                      {
                        "children": [
                          {
                            "attributes": {
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "=",
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8935,
                                  "type": "uint256",
                                  "value": "result"
                                },
                                "id": 9181,
                                "name": "Identifier",
                                "src": "15181:6:38"
                              },
                              {
                                "attributes": {
                                  "commonType": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": ">>",
                                  "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": 8935,
                                          "type": "uint256",
                                          "value": "result"
                                        },
                                        "id": 9182,
                                        "name": "Identifier",
                                        "src": "15190:6:38"
                                      },
                                      {
                                        "attributes": {
                                          "hexvalue": "3078313030303032433543383944354543364341344437433841434330313742374339",
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "token": "number",
                                          "type": "int_const 3402...(31 digits omitted)...6521",
                                          "value": "0x100002C5C89D5EC6CA4D7C8ACC017B7C9"
                                        },
                                        "id": 9183,
                                        "name": "Literal",
                                        "src": "15199:35:38"
                                      }
                                    ],
                                    "id": 9184,
                                    "name": "BinaryOperation",
                                    "src": "15190:44:38"
                                  },
                                  {
                                    "attributes": {
                                      "hexvalue": "313238",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "token": "number",
                                      "type": "int_const 128",
                                      "value": "128"
                                    },
                                    "id": 9185,
                                    "name": "Literal",
                                    "src": "15238:3:38"
                                  }
                                ],
                                "id": 9186,
                                "name": "BinaryOperation",
                                "src": "15190:51:38"
                              }
                            ],
                            "id": 9187,
                            "name": "Assignment",
                            "src": "15181:60:38"
                          }
                        ],
                        "id": 9188,
                        "name": "ExpressionStatement",
                        "src": "15181:60:38"
                      }
                    ],
                    "id": 9189,
                    "name": "IfStatement",
                    "src": "15147:94:38"
                  },
                  {
                    "attributes": {},
                    "children": [
                      {
                        "attributes": {
                          "commonType": {
                            "typeIdentifier": "t_int128",
                            "typeString": "int128"
                          },
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": ">",
                          "type": "bool"
                        },
                        "children": [
                          {
                            "attributes": {
                              "commonType": {
                                "typeIdentifier": "t_int128",
                                "typeString": "int128"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "&",
                              "type": "int128"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8916,
                                  "type": "int128",
                                  "value": "x"
                                },
                                "id": 9190,
                                "name": "Identifier",
                                "src": "15251:1:38"
                              },
                              {
                                "attributes": {
                                  "hexvalue": "3078323030303030303030303030",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "token": "number",
                                  "type": "int_const 35184372088832",
                                  "value": "0x200000000000"
                                },
                                "id": 9191,
                                "name": "Literal",
                                "src": "15255:14:38"
                              }
                            ],
                            "id": 9192,
                            "name": "BinaryOperation",
                            "src": "15251:18:38"
                          },
                          {
                            "attributes": {
                              "hexvalue": "30",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "token": "number",
                              "type": "int_const 0",
                              "value": "0"
                            },
                            "id": 9193,
                            "name": "Literal",
                            "src": "15272:1:38"
                          }
                        ],
                        "id": 9194,
                        "name": "BinaryOperation",
                        "src": "15251:22:38"
                      },
                      {
                        "children": [
                          {
                            "attributes": {
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "=",
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8935,
                                  "type": "uint256",
                                  "value": "result"
                                },
                                "id": 9195,
                                "name": "Identifier",
                                "src": "15281:6:38"
                              },
                              {
                                "attributes": {
                                  "commonType": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": ">>",
                                  "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": 8935,
                                          "type": "uint256",
                                          "value": "result"
                                        },
                                        "id": 9196,
                                        "name": "Identifier",
                                        "src": "15290:6:38"
                                      },
                                      {
                                        "attributes": {
                                          "hexvalue": "3078313030303031363245343346344638333130363045303244383339413944313644",
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "token": "number",
                                          "type": "int_const 3402...(31 digits omitted)...1549",
                                          "value": "0x10000162E43F4F831060E02D839A9D16D"
                                        },
                                        "id": 9197,
                                        "name": "Literal",
                                        "src": "15299:35:38"
                                      }
                                    ],
                                    "id": 9198,
                                    "name": "BinaryOperation",
                                    "src": "15290:44:38"
                                  },
                                  {
                                    "attributes": {
                                      "hexvalue": "313238",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "token": "number",
                                      "type": "int_const 128",
                                      "value": "128"
                                    },
                                    "id": 9199,
                                    "name": "Literal",
                                    "src": "15338:3:38"
                                  }
                                ],
                                "id": 9200,
                                "name": "BinaryOperation",
                                "src": "15290:51:38"
                              }
                            ],
                            "id": 9201,
                            "name": "Assignment",
                            "src": "15281:60:38"
                          }
                        ],
                        "id": 9202,
                        "name": "ExpressionStatement",
                        "src": "15281:60:38"
                      }
                    ],
                    "id": 9203,
                    "name": "IfStatement",
                    "src": "15247:94:38"
                  },
                  {
                    "attributes": {},
                    "children": [
                      {
                        "attributes": {
                          "commonType": {
                            "typeIdentifier": "t_int128",
                            "typeString": "int128"
                          },
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": ">",
                          "type": "bool"
                        },
                        "children": [
                          {
                            "attributes": {
                              "commonType": {
                                "typeIdentifier": "t_int128",
                                "typeString": "int128"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "&",
                              "type": "int128"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8916,
                                  "type": "int128",
                                  "value": "x"
                                },
                                "id": 9204,
                                "name": "Identifier",
                                "src": "15351:1:38"
                              },
                              {
                                "attributes": {
                                  "hexvalue": "3078313030303030303030303030",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "token": "number",
                                  "type": "int_const 17592186044416",
                                  "value": "0x100000000000"
                                },
                                "id": 9205,
                                "name": "Literal",
                                "src": "15355:14:38"
                              }
                            ],
                            "id": 9206,
                            "name": "BinaryOperation",
                            "src": "15351:18:38"
                          },
                          {
                            "attributes": {
                              "hexvalue": "30",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "token": "number",
                              "type": "int_const 0",
                              "value": "0"
                            },
                            "id": 9207,
                            "name": "Literal",
                            "src": "15372:1:38"
                          }
                        ],
                        "id": 9208,
                        "name": "BinaryOperation",
                        "src": "15351:22:38"
                      },
                      {
                        "children": [
                          {
                            "attributes": {
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "=",
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8935,
                                  "type": "uint256",
                                  "value": "result"
                                },
                                "id": 9209,
                                "name": "Identifier",
                                "src": "15381:6:38"
                              },
                              {
                                "attributes": {
                                  "commonType": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": ">>",
                                  "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": 8935,
                                          "type": "uint256",
                                          "value": "result"
                                        },
                                        "id": 9210,
                                        "name": "Identifier",
                                        "src": "15390:6:38"
                                      },
                                      {
                                        "attributes": {
                                          "hexvalue": "3078313030303030423137323142434643393944394638393045413036393131373633",
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "token": "number",
                                          "type": "int_const 3402...(31 digits omitted)...3747",
                                          "value": "0x100000B1721BCFC99D9F890EA06911763"
                                        },
                                        "id": 9211,
                                        "name": "Literal",
                                        "src": "15399:35:38"
                                      }
                                    ],
                                    "id": 9212,
                                    "name": "BinaryOperation",
                                    "src": "15390:44:38"
                                  },
                                  {
                                    "attributes": {
                                      "hexvalue": "313238",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "token": "number",
                                      "type": "int_const 128",
                                      "value": "128"
                                    },
                                    "id": 9213,
                                    "name": "Literal",
                                    "src": "15438:3:38"
                                  }
                                ],
                                "id": 9214,
                                "name": "BinaryOperation",
                                "src": "15390:51:38"
                              }
                            ],
                            "id": 9215,
                            "name": "Assignment",
                            "src": "15381:60:38"
                          }
                        ],
                        "id": 9216,
                        "name": "ExpressionStatement",
                        "src": "15381:60:38"
                      }
                    ],
                    "id": 9217,
                    "name": "IfStatement",
                    "src": "15347:94:38"
                  },
                  {
                    "attributes": {},
                    "children": [
                      {
                        "attributes": {
                          "commonType": {
                            "typeIdentifier": "t_int128",
                            "typeString": "int128"
                          },
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": ">",
                          "type": "bool"
                        },
                        "children": [
                          {
                            "attributes": {
                              "commonType": {
                                "typeIdentifier": "t_int128",
                                "typeString": "int128"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "&",
                              "type": "int128"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8916,
                                  "type": "int128",
                                  "value": "x"
                                },
                                "id": 9218,
                                "name": "Identifier",
                                "src": "15451:1:38"
                              },
                              {
                                "attributes": {
                                  "hexvalue": "30783830303030303030303030",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "token": "number",
                                  "type": "int_const 8796093022208",
                                  "value": "0x80000000000"
                                },
                                "id": 9219,
                                "name": "Literal",
                                "src": "15455:13:38"
                              }
                            ],
                            "id": 9220,
                            "name": "BinaryOperation",
                            "src": "15451:17:38"
                          },
                          {
                            "attributes": {
                              "hexvalue": "30",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "token": "number",
                              "type": "int_const 0",
                              "value": "0"
                            },
                            "id": 9221,
                            "name": "Literal",
                            "src": "15471:1:38"
                          }
                        ],
                        "id": 9222,
                        "name": "BinaryOperation",
                        "src": "15451:21:38"
                      },
                      {
                        "children": [
                          {
                            "attributes": {
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "=",
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8935,
                                  "type": "uint256",
                                  "value": "result"
                                },
                                "id": 9223,
                                "name": "Identifier",
                                "src": "15480:6:38"
                              },
                              {
                                "attributes": {
                                  "commonType": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": ">>",
                                  "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": 8935,
                                          "type": "uint256",
                                          "value": "result"
                                        },
                                        "id": 9224,
                                        "name": "Identifier",
                                        "src": "15489:6:38"
                                      },
                                      {
                                        "attributes": {
                                          "hexvalue": "3078313030303030353842393043463145364439374639434131344442434331363238",
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "token": "number",
                                          "type": "int_const 3402...(31 digits omitted)...9432",
                                          "value": "0x10000058B90CF1E6D97F9CA14DBCC1628"
                                        },
                                        "id": 9225,
                                        "name": "Literal",
                                        "src": "15498:35:38"
                                      }
                                    ],
                                    "id": 9226,
                                    "name": "BinaryOperation",
                                    "src": "15489:44:38"
                                  },
                                  {
                                    "attributes": {
                                      "hexvalue": "313238",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "token": "number",
                                      "type": "int_const 128",
                                      "value": "128"
                                    },
                                    "id": 9227,
                                    "name": "Literal",
                                    "src": "15537:3:38"
                                  }
                                ],
                                "id": 9228,
                                "name": "BinaryOperation",
                                "src": "15489:51:38"
                              }
                            ],
                            "id": 9229,
                            "name": "Assignment",
                            "src": "15480:60:38"
                          }
                        ],
                        "id": 9230,
                        "name": "ExpressionStatement",
                        "src": "15480:60:38"
                      }
                    ],
                    "id": 9231,
                    "name": "IfStatement",
                    "src": "15447:93:38"
                  },
                  {
                    "attributes": {},
                    "children": [
                      {
                        "attributes": {
                          "commonType": {
                            "typeIdentifier": "t_int128",
                            "typeString": "int128"
                          },
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": ">",
                          "type": "bool"
                        },
                        "children": [
                          {
                            "attributes": {
                              "commonType": {
                                "typeIdentifier": "t_int128",
                                "typeString": "int128"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "&",
                              "type": "int128"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8916,
                                  "type": "int128",
                                  "value": "x"
                                },
                                "id": 9232,
                                "name": "Identifier",
                                "src": "15550:1:38"
                              },
                              {
                                "attributes": {
                                  "hexvalue": "30783430303030303030303030",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "token": "number",
                                  "type": "int_const 4398046511104",
                                  "value": "0x40000000000"
                                },
                                "id": 9233,
                                "name": "Literal",
                                "src": "15554:13:38"
                              }
                            ],
                            "id": 9234,
                            "name": "BinaryOperation",
                            "src": "15550:17:38"
                          },
                          {
                            "attributes": {
                              "hexvalue": "30",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "token": "number",
                              "type": "int_const 0",
                              "value": "0"
                            },
                            "id": 9235,
                            "name": "Literal",
                            "src": "15570:1:38"
                          }
                        ],
                        "id": 9236,
                        "name": "BinaryOperation",
                        "src": "15550:21:38"
                      },
                      {
                        "children": [
                          {
                            "attributes": {
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "=",
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8935,
                                  "type": "uint256",
                                  "value": "result"
                                },
                                "id": 9237,
                                "name": "Identifier",
                                "src": "15579:6:38"
                              },
                              {
                                "attributes": {
                                  "commonType": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": ">>",
                                  "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": 8935,
                                          "type": "uint256",
                                          "value": "result"
                                        },
                                        "id": 9238,
                                        "name": "Identifier",
                                        "src": "15588:6:38"
                                      },
                                      {
                                        "attributes": {
                                          "hexvalue": "3078313030303030324335433836334237334630313634363846364241433543413242",
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "token": "number",
                                          "type": "int_const 3402...(31 digits omitted)...2059",
                                          "value": "0x1000002C5C863B73F016468F6BAC5CA2B"
                                        },
                                        "id": 9239,
                                        "name": "Literal",
                                        "src": "15597:35:38"
                                      }
                                    ],
                                    "id": 9240,
                                    "name": "BinaryOperation",
                                    "src": "15588:44:38"
                                  },
                                  {
                                    "attributes": {
                                      "hexvalue": "313238",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "token": "number",
                                      "type": "int_const 128",
                                      "value": "128"
                                    },
                                    "id": 9241,
                                    "name": "Literal",
                                    "src": "15636:3:38"
                                  }
                                ],
                                "id": 9242,
                                "name": "BinaryOperation",
                                "src": "15588:51:38"
                              }
                            ],
                            "id": 9243,
                            "name": "Assignment",
                            "src": "15579:60:38"
                          }
                        ],
                        "id": 9244,
                        "name": "ExpressionStatement",
                        "src": "15579:60:38"
                      }
                    ],
                    "id": 9245,
                    "name": "IfStatement",
                    "src": "15546:93:38"
                  },
                  {
                    "attributes": {},
                    "children": [
                      {
                        "attributes": {
                          "commonType": {
                            "typeIdentifier": "t_int128",
                            "typeString": "int128"
                          },
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": ">",
                          "type": "bool"
                        },
                        "children": [
                          {
                            "attributes": {
                              "commonType": {
                                "typeIdentifier": "t_int128",
                                "typeString": "int128"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "&",
                              "type": "int128"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8916,
                                  "type": "int128",
                                  "value": "x"
                                },
                                "id": 9246,
                                "name": "Identifier",
                                "src": "15649:1:38"
                              },
                              {
                                "attributes": {
                                  "hexvalue": "30783230303030303030303030",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "token": "number",
                                  "type": "int_const 2199023255552",
                                  "value": "0x20000000000"
                                },
                                "id": 9247,
                                "name": "Literal",
                                "src": "15653:13:38"
                              }
                            ],
                            "id": 9248,
                            "name": "BinaryOperation",
                            "src": "15649:17:38"
                          },
                          {
                            "attributes": {
                              "hexvalue": "30",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "token": "number",
                              "type": "int_const 0",
                              "value": "0"
                            },
                            "id": 9249,
                            "name": "Literal",
                            "src": "15669:1:38"
                          }
                        ],
                        "id": 9250,
                        "name": "BinaryOperation",
                        "src": "15649:21:38"
                      },
                      {
                        "children": [
                          {
                            "attributes": {
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "=",
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8935,
                                  "type": "uint256",
                                  "value": "result"
                                },
                                "id": 9251,
                                "name": "Identifier",
                                "src": "15678:6:38"
                              },
                              {
                                "attributes": {
                                  "commonType": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": ">>",
                                  "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": 8935,
                                          "type": "uint256",
                                          "value": "result"
                                        },
                                        "id": 9252,
                                        "name": "Identifier",
                                        "src": "15687:6:38"
                                      },
                                      {
                                        "attributes": {
                                          "hexvalue": "3078313030303030313632453433304535413138463631313945334330323238324135",
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "token": "number",
                                          "type": "int_const 3402...(31 digits omitted)...0389",
                                          "value": "0x100000162E430E5A18F6119E3C02282A5"
                                        },
                                        "id": 9253,
                                        "name": "Literal",
                                        "src": "15696:35:38"
                                      }
                                    ],
                                    "id": 9254,
                                    "name": "BinaryOperation",
                                    "src": "15687:44:38"
                                  },
                                  {
                                    "attributes": {
                                      "hexvalue": "313238",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "token": "number",
                                      "type": "int_const 128",
                                      "value": "128"
                                    },
                                    "id": 9255,
                                    "name": "Literal",
                                    "src": "15735:3:38"
                                  }
                                ],
                                "id": 9256,
                                "name": "BinaryOperation",
                                "src": "15687:51:38"
                              }
                            ],
                            "id": 9257,
                            "name": "Assignment",
                            "src": "15678:60:38"
                          }
                        ],
                        "id": 9258,
                        "name": "ExpressionStatement",
                        "src": "15678:60:38"
                      }
                    ],
                    "id": 9259,
                    "name": "IfStatement",
                    "src": "15645:93:38"
                  },
                  {
                    "attributes": {},
                    "children": [
                      {
                        "attributes": {
                          "commonType": {
                            "typeIdentifier": "t_int128",
                            "typeString": "int128"
                          },
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": ">",
                          "type": "bool"
                        },
                        "children": [
                          {
                            "attributes": {
                              "commonType": {
                                "typeIdentifier": "t_int128",
                                "typeString": "int128"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "&",
                              "type": "int128"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8916,
                                  "type": "int128",
                                  "value": "x"
                                },
                                "id": 9260,
                                "name": "Identifier",
                                "src": "15748:1:38"
                              },
                              {
                                "attributes": {
                                  "hexvalue": "30783130303030303030303030",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "token": "number",
                                  "type": "int_const 1099511627776",
                                  "value": "0x10000000000"
                                },
                                "id": 9261,
                                "name": "Literal",
                                "src": "15752:13:38"
                              }
                            ],
                            "id": 9262,
                            "name": "BinaryOperation",
                            "src": "15748:17:38"
                          },
                          {
                            "attributes": {
                              "hexvalue": "30",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "token": "number",
                              "type": "int_const 0",
                              "value": "0"
                            },
                            "id": 9263,
                            "name": "Literal",
                            "src": "15768:1:38"
                          }
                        ],
                        "id": 9264,
                        "name": "BinaryOperation",
                        "src": "15748:21:38"
                      },
                      {
                        "children": [
                          {
                            "attributes": {
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "=",
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8935,
                                  "type": "uint256",
                                  "value": "result"
                                },
                                "id": 9265,
                                "name": "Identifier",
                                "src": "15777:6:38"
                              },
                              {
                                "attributes": {
                                  "commonType": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": ">>",
                                  "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": 8935,
                                          "type": "uint256",
                                          "value": "result"
                                        },
                                        "id": 9266,
                                        "name": "Identifier",
                                        "src": "15786:6:38"
                                      },
                                      {
                                        "attributes": {
                                          "hexvalue": "3078313030303030304231373231383335353134423836453644393645464431424645",
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "token": "number",
                                          "type": "int_const 3402...(31 digits omitted)...2670",
                                          "value": "0x1000000B1721835514B86E6D96EFD1BFE"
                                        },
                                        "id": 9267,
                                        "name": "Literal",
                                        "src": "15795:35:38"
                                      }
                                    ],
                                    "id": 9268,
                                    "name": "BinaryOperation",
                                    "src": "15786:44:38"
                                  },
                                  {
                                    "attributes": {
                                      "hexvalue": "313238",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "token": "number",
                                      "type": "int_const 128",
                                      "value": "128"
                                    },
                                    "id": 9269,
                                    "name": "Literal",
                                    "src": "15834:3:38"
                                  }
                                ],
                                "id": 9270,
                                "name": "BinaryOperation",
                                "src": "15786:51:38"
                              }
                            ],
                            "id": 9271,
                            "name": "Assignment",
                            "src": "15777:60:38"
                          }
                        ],
                        "id": 9272,
                        "name": "ExpressionStatement",
                        "src": "15777:60:38"
                      }
                    ],
                    "id": 9273,
                    "name": "IfStatement",
                    "src": "15744:93:38"
                  },
                  {
                    "attributes": {},
                    "children": [
                      {
                        "attributes": {
                          "commonType": {
                            "typeIdentifier": "t_int128",
                            "typeString": "int128"
                          },
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": ">",
                          "type": "bool"
                        },
                        "children": [
                          {
                            "attributes": {
                              "commonType": {
                                "typeIdentifier": "t_int128",
                                "typeString": "int128"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "&",
                              "type": "int128"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8916,
                                  "type": "int128",
                                  "value": "x"
                                },
                                "id": 9274,
                                "name": "Identifier",
                                "src": "15847:1:38"
                              },
                              {
                                "attributes": {
                                  "hexvalue": "307838303030303030303030",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "token": "number",
                                  "type": "int_const 549755813888",
                                  "value": "0x8000000000"
                                },
                                "id": 9275,
                                "name": "Literal",
                                "src": "15851:12:38"
                              }
                            ],
                            "id": 9276,
                            "name": "BinaryOperation",
                            "src": "15847:16:38"
                          },
                          {
                            "attributes": {
                              "hexvalue": "30",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "token": "number",
                              "type": "int_const 0",
                              "value": "0"
                            },
                            "id": 9277,
                            "name": "Literal",
                            "src": "15866:1:38"
                          }
                        ],
                        "id": 9278,
                        "name": "BinaryOperation",
                        "src": "15847:20:38"
                      },
                      {
                        "children": [
                          {
                            "attributes": {
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "=",
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8935,
                                  "type": "uint256",
                                  "value": "result"
                                },
                                "id": 9279,
                                "name": "Identifier",
                                "src": "15875:6:38"
                              },
                              {
                                "attributes": {
                                  "commonType": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": ">>",
                                  "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": 8935,
                                          "type": "uint256",
                                          "value": "result"
                                        },
                                        "id": 9280,
                                        "name": "Identifier",
                                        "src": "15884:6:38"
                                      },
                                      {
                                        "attributes": {
                                          "hexvalue": "3078313030303030303538423930433042343843364245354446383436433542324546",
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "token": "number",
                                          "type": "int_const 3402...(31 digits omitted)...7567",
                                          "value": "0x100000058B90C0B48C6BE5DF846C5B2EF"
                                        },
                                        "id": 9281,
                                        "name": "Literal",
                                        "src": "15893:35:38"
                                      }
                                    ],
                                    "id": 9282,
                                    "name": "BinaryOperation",
                                    "src": "15884:44:38"
                                  },
                                  {
                                    "attributes": {
                                      "hexvalue": "313238",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "token": "number",
                                      "type": "int_const 128",
                                      "value": "128"
                                    },
                                    "id": 9283,
                                    "name": "Literal",
                                    "src": "15932:3:38"
                                  }
                                ],
                                "id": 9284,
                                "name": "BinaryOperation",
                                "src": "15884:51:38"
                              }
                            ],
                            "id": 9285,
                            "name": "Assignment",
                            "src": "15875:60:38"
                          }
                        ],
                        "id": 9286,
                        "name": "ExpressionStatement",
                        "src": "15875:60:38"
                      }
                    ],
                    "id": 9287,
                    "name": "IfStatement",
                    "src": "15843:92:38"
                  },
                  {
                    "attributes": {},
                    "children": [
                      {
                        "attributes": {
                          "commonType": {
                            "typeIdentifier": "t_int128",
                            "typeString": "int128"
                          },
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": ">",
                          "type": "bool"
                        },
                        "children": [
                          {
                            "attributes": {
                              "commonType": {
                                "typeIdentifier": "t_int128",
                                "typeString": "int128"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "&",
                              "type": "int128"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8916,
                                  "type": "int128",
                                  "value": "x"
                                },
                                "id": 9288,
                                "name": "Identifier",
                                "src": "15945:1:38"
                              },
                              {
                                "attributes": {
                                  "hexvalue": "307834303030303030303030",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "token": "number",
                                  "type": "int_const 274877906944",
                                  "value": "0x4000000000"
                                },
                                "id": 9289,
                                "name": "Literal",
                                "src": "15949:12:38"
                              }
                            ],
                            "id": 9290,
                            "name": "BinaryOperation",
                            "src": "15945:16:38"
                          },
                          {
                            "attributes": {
                              "hexvalue": "30",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "token": "number",
                              "type": "int_const 0",
                              "value": "0"
                            },
                            "id": 9291,
                            "name": "Literal",
                            "src": "15964:1:38"
                          }
                        ],
                        "id": 9292,
                        "name": "BinaryOperation",
                        "src": "15945:20:38"
                      },
                      {
                        "children": [
                          {
                            "attributes": {
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "=",
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8935,
                                  "type": "uint256",
                                  "value": "result"
                                },
                                "id": 9293,
                                "name": "Identifier",
                                "src": "15973:6:38"
                              },
                              {
                                "attributes": {
                                  "commonType": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": ">>",
                                  "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": 8935,
                                          "type": "uint256",
                                          "value": "result"
                                        },
                                        "id": 9294,
                                        "name": "Identifier",
                                        "src": "15982:6:38"
                                      },
                                      {
                                        "attributes": {
                                          "hexvalue": "3078313030303030303243354338363031434336423945393432313343373237333741",
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "token": "number",
                                          "type": "int_const 3402...(31 digits omitted)...2378",
                                          "value": "0x10000002C5C8601CC6B9E94213C72737A"
                                        },
                                        "id": 9295,
                                        "name": "Literal",
                                        "src": "15991:35:38"
                                      }
                                    ],
                                    "id": 9296,
                                    "name": "BinaryOperation",
                                    "src": "15982:44:38"
                                  },
                                  {
                                    "attributes": {
                                      "hexvalue": "313238",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "token": "number",
                                      "type": "int_const 128",
                                      "value": "128"
                                    },
                                    "id": 9297,
                                    "name": "Literal",
                                    "src": "16030:3:38"
                                  }
                                ],
                                "id": 9298,
                                "name": "BinaryOperation",
                                "src": "15982:51:38"
                              }
                            ],
                            "id": 9299,
                            "name": "Assignment",
                            "src": "15973:60:38"
                          }
                        ],
                        "id": 9300,
                        "name": "ExpressionStatement",
                        "src": "15973:60:38"
                      }
                    ],
                    "id": 9301,
                    "name": "IfStatement",
                    "src": "15941:92:38"
                  },
                  {
                    "attributes": {},
                    "children": [
                      {
                        "attributes": {
                          "commonType": {
                            "typeIdentifier": "t_int128",
                            "typeString": "int128"
                          },
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": ">",
                          "type": "bool"
                        },
                        "children": [
                          {
                            "attributes": {
                              "commonType": {
                                "typeIdentifier": "t_int128",
                                "typeString": "int128"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "&",
                              "type": "int128"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8916,
                                  "type": "int128",
                                  "value": "x"
                                },
                                "id": 9302,
                                "name": "Identifier",
                                "src": "16043:1:38"
                              },
                              {
                                "attributes": {
                                  "hexvalue": "307832303030303030303030",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "token": "number",
                                  "type": "int_const 137438953472",
                                  "value": "0x2000000000"
                                },
                                "id": 9303,
                                "name": "Literal",
                                "src": "16047:12:38"
                              }
                            ],
                            "id": 9304,
                            "name": "BinaryOperation",
                            "src": "16043:16:38"
                          },
                          {
                            "attributes": {
                              "hexvalue": "30",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "token": "number",
                              "type": "int_const 0",
                              "value": "0"
                            },
                            "id": 9305,
                            "name": "Literal",
                            "src": "16062:1:38"
                          }
                        ],
                        "id": 9306,
                        "name": "BinaryOperation",
                        "src": "16043:20:38"
                      },
                      {
                        "children": [
                          {
                            "attributes": {
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "=",
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8935,
                                  "type": "uint256",
                                  "value": "result"
                                },
                                "id": 9307,
                                "name": "Identifier",
                                "src": "16071:6:38"
                              },
                              {
                                "attributes": {
                                  "commonType": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": ">>",
                                  "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": 8935,
                                          "type": "uint256",
                                          "value": "result"
                                        },
                                        "id": 9308,
                                        "name": "Identifier",
                                        "src": "16080:6:38"
                                      },
                                      {
                                        "attributes": {
                                          "hexvalue": "3078313030303030303136324534324646463033374446333841413242323139463036",
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "token": "number",
                                          "type": "int_const 3402...(31 digits omitted)...7590",
                                          "value": "0x1000000162E42FFF037DF38AA2B219F06"
                                        },
                                        "id": 9309,
                                        "name": "Literal",
                                        "src": "16089:35:38"
                                      }
                                    ],
                                    "id": 9310,
                                    "name": "BinaryOperation",
                                    "src": "16080:44:38"
                                  },
                                  {
                                    "attributes": {
                                      "hexvalue": "313238",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "token": "number",
                                      "type": "int_const 128",
                                      "value": "128"
                                    },
                                    "id": 9311,
                                    "name": "Literal",
                                    "src": "16128:3:38"
                                  }
                                ],
                                "id": 9312,
                                "name": "BinaryOperation",
                                "src": "16080:51:38"
                              }
                            ],
                            "id": 9313,
                            "name": "Assignment",
                            "src": "16071:60:38"
                          }
                        ],
                        "id": 9314,
                        "name": "ExpressionStatement",
                        "src": "16071:60:38"
                      }
                    ],
                    "id": 9315,
                    "name": "IfStatement",
                    "src": "16039:92:38"
                  },
                  {
                    "attributes": {},
                    "children": [
                      {
                        "attributes": {
                          "commonType": {
                            "typeIdentifier": "t_int128",
                            "typeString": "int128"
                          },
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": ">",
                          "type": "bool"
                        },
                        "children": [
                          {
                            "attributes": {
                              "commonType": {
                                "typeIdentifier": "t_int128",
                                "typeString": "int128"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "&",
                              "type": "int128"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8916,
                                  "type": "int128",
                                  "value": "x"
                                },
                                "id": 9316,
                                "name": "Identifier",
                                "src": "16141:1:38"
                              },
                              {
                                "attributes": {
                                  "hexvalue": "307831303030303030303030",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "token": "number",
                                  "type": "int_const 68719476736",
                                  "value": "0x1000000000"
                                },
                                "id": 9317,
                                "name": "Literal",
                                "src": "16145:12:38"
                              }
                            ],
                            "id": 9318,
                            "name": "BinaryOperation",
                            "src": "16141:16:38"
                          },
                          {
                            "attributes": {
                              "hexvalue": "30",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "token": "number",
                              "type": "int_const 0",
                              "value": "0"
                            },
                            "id": 9319,
                            "name": "Literal",
                            "src": "16160:1:38"
                          }
                        ],
                        "id": 9320,
                        "name": "BinaryOperation",
                        "src": "16141:20:38"
                      },
                      {
                        "children": [
                          {
                            "attributes": {
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "=",
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8935,
                                  "type": "uint256",
                                  "value": "result"
                                },
                                "id": 9321,
                                "name": "Identifier",
                                "src": "16169:6:38"
                              },
                              {
                                "attributes": {
                                  "commonType": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": ">>",
                                  "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": 8935,
                                          "type": "uint256",
                                          "value": "result"
                                        },
                                        "id": 9322,
                                        "name": "Identifier",
                                        "src": "16178:6:38"
                                      },
                                      {
                                        "attributes": {
                                          "hexvalue": "3078313030303030303042313732313746424139433733394141353831394634344639",
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "token": "number",
                                          "type": "int_const 3402...(31 digits omitted)...6761",
                                          "value": "0x10000000B17217FBA9C739AA5819F44F9"
                                        },
                                        "id": 9323,
                                        "name": "Literal",
                                        "src": "16187:35:38"
                                      }
                                    ],
                                    "id": 9324,
                                    "name": "BinaryOperation",
                                    "src": "16178:44:38"
                                  },
                                  {
                                    "attributes": {
                                      "hexvalue": "313238",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "token": "number",
                                      "type": "int_const 128",
                                      "value": "128"
                                    },
                                    "id": 9325,
                                    "name": "Literal",
                                    "src": "16226:3:38"
                                  }
                                ],
                                "id": 9326,
                                "name": "BinaryOperation",
                                "src": "16178:51:38"
                              }
                            ],
                            "id": 9327,
                            "name": "Assignment",
                            "src": "16169:60:38"
                          }
                        ],
                        "id": 9328,
                        "name": "ExpressionStatement",
                        "src": "16169:60:38"
                      }
                    ],
                    "id": 9329,
                    "name": "IfStatement",
                    "src": "16137:92:38"
                  },
                  {
                    "attributes": {},
                    "children": [
                      {
                        "attributes": {
                          "commonType": {
                            "typeIdentifier": "t_int128",
                            "typeString": "int128"
                          },
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": ">",
                          "type": "bool"
                        },
                        "children": [
                          {
                            "attributes": {
                              "commonType": {
                                "typeIdentifier": "t_int128",
                                "typeString": "int128"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "&",
                              "type": "int128"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8916,
                                  "type": "int128",
                                  "value": "x"
                                },
                                "id": 9330,
                                "name": "Identifier",
                                "src": "16239:1:38"
                              },
                              {
                                "attributes": {
                                  "hexvalue": "3078383030303030303030",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "token": "number",
                                  "type": "int_const 34359738368",
                                  "value": "0x800000000"
                                },
                                "id": 9331,
                                "name": "Literal",
                                "src": "16243:11:38"
                              }
                            ],
                            "id": 9332,
                            "name": "BinaryOperation",
                            "src": "16239:15:38"
                          },
                          {
                            "attributes": {
                              "hexvalue": "30",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "token": "number",
                              "type": "int_const 0",
                              "value": "0"
                            },
                            "id": 9333,
                            "name": "Literal",
                            "src": "16257:1:38"
                          }
                        ],
                        "id": 9334,
                        "name": "BinaryOperation",
                        "src": "16239:19:38"
                      },
                      {
                        "children": [
                          {
                            "attributes": {
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "=",
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8935,
                                  "type": "uint256",
                                  "value": "result"
                                },
                                "id": 9335,
                                "name": "Identifier",
                                "src": "16266:6:38"
                              },
                              {
                                "attributes": {
                                  "commonType": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": ">>",
                                  "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": 8935,
                                          "type": "uint256",
                                          "value": "result"
                                        },
                                        "id": 9336,
                                        "name": "Identifier",
                                        "src": "16275:6:38"
                                      },
                                      {
                                        "attributes": {
                                          "hexvalue": "3078313030303030303035384239304246434445453541434433433143454443383233",
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "token": "number",
                                          "type": "int_const 3402...(31 digits omitted)...1443",
                                          "value": "0x1000000058B90BFCDEE5ACD3C1CEDC823"
                                        },
                                        "id": 9337,
                                        "name": "Literal",
                                        "src": "16284:35:38"
                                      }
                                    ],
                                    "id": 9338,
                                    "name": "BinaryOperation",
                                    "src": "16275:44:38"
                                  },
                                  {
                                    "attributes": {
                                      "hexvalue": "313238",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "token": "number",
                                      "type": "int_const 128",
                                      "value": "128"
                                    },
                                    "id": 9339,
                                    "name": "Literal",
                                    "src": "16323:3:38"
                                  }
                                ],
                                "id": 9340,
                                "name": "BinaryOperation",
                                "src": "16275:51:38"
                              }
                            ],
                            "id": 9341,
                            "name": "Assignment",
                            "src": "16266:60:38"
                          }
                        ],
                        "id": 9342,
                        "name": "ExpressionStatement",
                        "src": "16266:60:38"
                      }
                    ],
                    "id": 9343,
                    "name": "IfStatement",
                    "src": "16235:91:38"
                  },
                  {
                    "attributes": {},
                    "children": [
                      {
                        "attributes": {
                          "commonType": {
                            "typeIdentifier": "t_int128",
                            "typeString": "int128"
                          },
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": ">",
                          "type": "bool"
                        },
                        "children": [
                          {
                            "attributes": {
                              "commonType": {
                                "typeIdentifier": "t_int128",
                                "typeString": "int128"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "&",
                              "type": "int128"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8916,
                                  "type": "int128",
                                  "value": "x"
                                },
                                "id": 9344,
                                "name": "Identifier",
                                "src": "16336:1:38"
                              },
                              {
                                "attributes": {
                                  "hexvalue": "3078343030303030303030",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "token": "number",
                                  "type": "int_const 17179869184",
                                  "value": "0x400000000"
                                },
                                "id": 9345,
                                "name": "Literal",
                                "src": "16340:11:38"
                              }
                            ],
                            "id": 9346,
                            "name": "BinaryOperation",
                            "src": "16336:15:38"
                          },
                          {
                            "attributes": {
                              "hexvalue": "30",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "token": "number",
                              "type": "int_const 0",
                              "value": "0"
                            },
                            "id": 9347,
                            "name": "Literal",
                            "src": "16354:1:38"
                          }
                        ],
                        "id": 9348,
                        "name": "BinaryOperation",
                        "src": "16336:19:38"
                      },
                      {
                        "children": [
                          {
                            "attributes": {
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "=",
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8935,
                                  "type": "uint256",
                                  "value": "result"
                                },
                                "id": 9349,
                                "name": "Identifier",
                                "src": "16363:6:38"
                              },
                              {
                                "attributes": {
                                  "commonType": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": ">>",
                                  "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": 8935,
                                          "type": "uint256",
                                          "value": "result"
                                        },
                                        "id": 9350,
                                        "name": "Identifier",
                                        "src": "16372:6:38"
                                      },
                                      {
                                        "attributes": {
                                          "hexvalue": "3078313030303030303032433543383546453331463335413641333044413142453530",
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "token": "number",
                                          "type": "int_const 3402...(31 digits omitted)...7984",
                                          "value": "0x100000002C5C85FE31F35A6A30DA1BE50"
                                        },
                                        "id": 9351,
                                        "name": "Literal",
                                        "src": "16381:35:38"
                                      }
                                    ],
                                    "id": 9352,
                                    "name": "BinaryOperation",
                                    "src": "16372:44:38"
                                  },
                                  {
                                    "attributes": {
                                      "hexvalue": "313238",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "token": "number",
                                      "type": "int_const 128",
                                      "value": "128"
                                    },
                                    "id": 9353,
                                    "name": "Literal",
                                    "src": "16420:3:38"
                                  }
                                ],
                                "id": 9354,
                                "name": "BinaryOperation",
                                "src": "16372:51:38"
                              }
                            ],
                            "id": 9355,
                            "name": "Assignment",
                            "src": "16363:60:38"
                          }
                        ],
                        "id": 9356,
                        "name": "ExpressionStatement",
                        "src": "16363:60:38"
                      }
                    ],
                    "id": 9357,
                    "name": "IfStatement",
                    "src": "16332:91:38"
                  },
                  {
                    "attributes": {},
                    "children": [
                      {
                        "attributes": {
                          "commonType": {
                            "typeIdentifier": "t_int128",
                            "typeString": "int128"
                          },
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": ">",
                          "type": "bool"
                        },
                        "children": [
                          {
                            "attributes": {
                              "commonType": {
                                "typeIdentifier": "t_int128",
                                "typeString": "int128"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "&",
                              "type": "int128"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8916,
                                  "type": "int128",
                                  "value": "x"
                                },
                                "id": 9358,
                                "name": "Identifier",
                                "src": "16433:1:38"
                              },
                              {
                                "attributes": {
                                  "hexvalue": "3078323030303030303030",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "token": "number",
                                  "type": "int_const 8589934592",
                                  "value": "0x200000000"
                                },
                                "id": 9359,
                                "name": "Literal",
                                "src": "16437:11:38"
                              }
                            ],
                            "id": 9360,
                            "name": "BinaryOperation",
                            "src": "16433:15:38"
                          },
                          {
                            "attributes": {
                              "hexvalue": "30",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "token": "number",
                              "type": "int_const 0",
                              "value": "0"
                            },
                            "id": 9361,
                            "name": "Literal",
                            "src": "16451:1:38"
                          }
                        ],
                        "id": 9362,
                        "name": "BinaryOperation",
                        "src": "16433:19:38"
                      },
                      {
                        "children": [
                          {
                            "attributes": {
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "=",
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8935,
                                  "type": "uint256",
                                  "value": "result"
                                },
                                "id": 9363,
                                "name": "Identifier",
                                "src": "16460:6:38"
                              },
                              {
                                "attributes": {
                                  "commonType": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": ">>",
                                  "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": 8935,
                                          "type": "uint256",
                                          "value": "result"
                                        },
                                        "id": 9364,
                                        "name": "Identifier",
                                        "src": "16469:6:38"
                                      },
                                      {
                                        "attributes": {
                                          "hexvalue": "3078313030303030303031363245343246463039393943453335343142394646464346",
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "token": "number",
                                          "type": "int_const 3402...(31 digits omitted)...0063",
                                          "value": "0x10000000162E42FF0999CE3541B9FFFCF"
                                        },
                                        "id": 9365,
                                        "name": "Literal",
                                        "src": "16478:35:38"
                                      }
                                    ],
                                    "id": 9366,
                                    "name": "BinaryOperation",
                                    "src": "16469:44:38"
                                  },
                                  {
                                    "attributes": {
                                      "hexvalue": "313238",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "token": "number",
                                      "type": "int_const 128",
                                      "value": "128"
                                    },
                                    "id": 9367,
                                    "name": "Literal",
                                    "src": "16517:3:38"
                                  }
                                ],
                                "id": 9368,
                                "name": "BinaryOperation",
                                "src": "16469:51:38"
                              }
                            ],
                            "id": 9369,
                            "name": "Assignment",
                            "src": "16460:60:38"
                          }
                        ],
                        "id": 9370,
                        "name": "ExpressionStatement",
                        "src": "16460:60:38"
                      }
                    ],
                    "id": 9371,
                    "name": "IfStatement",
                    "src": "16429:91:38"
                  },
                  {
                    "attributes": {},
                    "children": [
                      {
                        "attributes": {
                          "commonType": {
                            "typeIdentifier": "t_int128",
                            "typeString": "int128"
                          },
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": ">",
                          "type": "bool"
                        },
                        "children": [
                          {
                            "attributes": {
                              "commonType": {
                                "typeIdentifier": "t_int128",
                                "typeString": "int128"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "&",
                              "type": "int128"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8916,
                                  "type": "int128",
                                  "value": "x"
                                },
                                "id": 9372,
                                "name": "Identifier",
                                "src": "16530:1:38"
                              },
                              {
                                "attributes": {
                                  "hexvalue": "3078313030303030303030",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "token": "number",
                                  "type": "int_const 4294967296",
                                  "value": "0x100000000"
                                },
                                "id": 9373,
                                "name": "Literal",
                                "src": "16534:11:38"
                              }
                            ],
                            "id": 9374,
                            "name": "BinaryOperation",
                            "src": "16530:15:38"
                          },
                          {
                            "attributes": {
                              "hexvalue": "30",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "token": "number",
                              "type": "int_const 0",
                              "value": "0"
                            },
                            "id": 9375,
                            "name": "Literal",
                            "src": "16548:1:38"
                          }
                        ],
                        "id": 9376,
                        "name": "BinaryOperation",
                        "src": "16530:19:38"
                      },
                      {
                        "children": [
                          {
                            "attributes": {
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "=",
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8935,
                                  "type": "uint256",
                                  "value": "result"
                                },
                                "id": 9377,
                                "name": "Identifier",
                                "src": "16557:6:38"
                              },
                              {
                                "attributes": {
                                  "commonType": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": ">>",
                                  "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": 8935,
                                          "type": "uint256",
                                          "value": "result"
                                        },
                                        "id": 9378,
                                        "name": "Identifier",
                                        "src": "16566:6:38"
                                      },
                                      {
                                        "attributes": {
                                          "hexvalue": "3078313030303030303030423137323137463830463445463541414444413435353534",
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "token": "number",
                                          "type": "int_const 3402...(31 digits omitted)...8340",
                                          "value": "0x100000000B17217F80F4EF5AADDA45554"
                                        },
                                        "id": 9379,
                                        "name": "Literal",
                                        "src": "16575:35:38"
                                      }
                                    ],
                                    "id": 9380,
                                    "name": "BinaryOperation",
                                    "src": "16566:44:38"
                                  },
                                  {
                                    "attributes": {
                                      "hexvalue": "313238",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "token": "number",
                                      "type": "int_const 128",
                                      "value": "128"
                                    },
                                    "id": 9381,
                                    "name": "Literal",
                                    "src": "16614:3:38"
                                  }
                                ],
                                "id": 9382,
                                "name": "BinaryOperation",
                                "src": "16566:51:38"
                              }
                            ],
                            "id": 9383,
                            "name": "Assignment",
                            "src": "16557:60:38"
                          }
                        ],
                        "id": 9384,
                        "name": "ExpressionStatement",
                        "src": "16557:60:38"
                      }
                    ],
                    "id": 9385,
                    "name": "IfStatement",
                    "src": "16526:91:38"
                  },
                  {
                    "attributes": {},
                    "children": [
                      {
                        "attributes": {
                          "commonType": {
                            "typeIdentifier": "t_int128",
                            "typeString": "int128"
                          },
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": ">",
                          "type": "bool"
                        },
                        "children": [
                          {
                            "attributes": {
                              "commonType": {
                                "typeIdentifier": "t_int128",
                                "typeString": "int128"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "&",
                              "type": "int128"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8916,
                                  "type": "int128",
                                  "value": "x"
                                },
                                "id": 9386,
                                "name": "Identifier",
                                "src": "16627:1:38"
                              },
                              {
                                "attributes": {
                                  "hexvalue": "30783830303030303030",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "token": "number",
                                  "type": "int_const 2147483648",
                                  "value": "0x80000000"
                                },
                                "id": 9387,
                                "name": "Literal",
                                "src": "16631:10:38"
                              }
                            ],
                            "id": 9388,
                            "name": "BinaryOperation",
                            "src": "16627:14:38"
                          },
                          {
                            "attributes": {
                              "hexvalue": "30",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "token": "number",
                              "type": "int_const 0",
                              "value": "0"
                            },
                            "id": 9389,
                            "name": "Literal",
                            "src": "16644:1:38"
                          }
                        ],
                        "id": 9390,
                        "name": "BinaryOperation",
                        "src": "16627:18:38"
                      },
                      {
                        "children": [
                          {
                            "attributes": {
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "=",
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8935,
                                  "type": "uint256",
                                  "value": "result"
                                },
                                "id": 9391,
                                "name": "Identifier",
                                "src": "16653:6:38"
                              },
                              {
                                "attributes": {
                                  "commonType": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": ">>",
                                  "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": 8935,
                                          "type": "uint256",
                                          "value": "result"
                                        },
                                        "id": 9392,
                                        "name": "Identifier",
                                        "src": "16662:6:38"
                                      },
                                      {
                                        "attributes": {
                                          "hexvalue": "3078313030303030303030353842393042464246383437394244354138314235314144",
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "token": "number",
                                          "type": "int_const 3402...(31 digits omitted)...9917",
                                          "value": "0x10000000058B90BFBF8479BD5A81B51AD"
                                        },
                                        "id": 9393,
                                        "name": "Literal",
                                        "src": "16671:35:38"
                                      }
                                    ],
                                    "id": 9394,
                                    "name": "BinaryOperation",
                                    "src": "16662:44:38"
                                  },
                                  {
                                    "attributes": {
                                      "hexvalue": "313238",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "token": "number",
                                      "type": "int_const 128",
                                      "value": "128"
                                    },
                                    "id": 9395,
                                    "name": "Literal",
                                    "src": "16710:3:38"
                                  }
                                ],
                                "id": 9396,
                                "name": "BinaryOperation",
                                "src": "16662:51:38"
                              }
                            ],
                            "id": 9397,
                            "name": "Assignment",
                            "src": "16653:60:38"
                          }
                        ],
                        "id": 9398,
                        "name": "ExpressionStatement",
                        "src": "16653:60:38"
                      }
                    ],
                    "id": 9399,
                    "name": "IfStatement",
                    "src": "16623:90:38"
                  },
                  {
                    "attributes": {},
                    "children": [
                      {
                        "attributes": {
                          "commonType": {
                            "typeIdentifier": "t_int128",
                            "typeString": "int128"
                          },
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": ">",
                          "type": "bool"
                        },
                        "children": [
                          {
                            "attributes": {
                              "commonType": {
                                "typeIdentifier": "t_int128",
                                "typeString": "int128"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "&",
                              "type": "int128"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8916,
                                  "type": "int128",
                                  "value": "x"
                                },
                                "id": 9400,
                                "name": "Identifier",
                                "src": "16723:1:38"
                              },
                              {
                                "attributes": {
                                  "hexvalue": "30783430303030303030",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "token": "number",
                                  "type": "int_const 1073741824",
                                  "value": "0x40000000"
                                },
                                "id": 9401,
                                "name": "Literal",
                                "src": "16727:10:38"
                              }
                            ],
                            "id": 9402,
                            "name": "BinaryOperation",
                            "src": "16723:14:38"
                          },
                          {
                            "attributes": {
                              "hexvalue": "30",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "token": "number",
                              "type": "int_const 0",
                              "value": "0"
                            },
                            "id": 9403,
                            "name": "Literal",
                            "src": "16740:1:38"
                          }
                        ],
                        "id": 9404,
                        "name": "BinaryOperation",
                        "src": "16723:18:38"
                      },
                      {
                        "children": [
                          {
                            "attributes": {
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "=",
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8935,
                                  "type": "uint256",
                                  "value": "result"
                                },
                                "id": 9405,
                                "name": "Identifier",
                                "src": "16749:6:38"
                              },
                              {
                                "attributes": {
                                  "commonType": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": ">>",
                                  "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": 8935,
                                          "type": "uint256",
                                          "value": "result"
                                        },
                                        "id": 9406,
                                        "name": "Identifier",
                                        "src": "16758:6:38"
                                      },
                                      {
                                        "attributes": {
                                          "hexvalue": "3078313030303030303030324335433835464446383442443632414533304137344343",
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "token": "number",
                                          "type": "int_const 3402...(31 digits omitted)...7644",
                                          "value": "0x1000000002C5C85FDF84BD62AE30A74CC"
                                        },
                                        "id": 9407,
                                        "name": "Literal",
                                        "src": "16767:35:38"
                                      }
                                    ],
                                    "id": 9408,
                                    "name": "BinaryOperation",
                                    "src": "16758:44:38"
                                  },
                                  {
                                    "attributes": {
                                      "hexvalue": "313238",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "token": "number",
                                      "type": "int_const 128",
                                      "value": "128"
                                    },
                                    "id": 9409,
                                    "name": "Literal",
                                    "src": "16806:3:38"
                                  }
                                ],
                                "id": 9410,
                                "name": "BinaryOperation",
                                "src": "16758:51:38"
                              }
                            ],
                            "id": 9411,
                            "name": "Assignment",
                            "src": "16749:60:38"
                          }
                        ],
                        "id": 9412,
                        "name": "ExpressionStatement",
                        "src": "16749:60:38"
                      }
                    ],
                    "id": 9413,
                    "name": "IfStatement",
                    "src": "16719:90:38"
                  },
                  {
                    "attributes": {},
                    "children": [
                      {
                        "attributes": {
                          "commonType": {
                            "typeIdentifier": "t_int128",
                            "typeString": "int128"
                          },
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": ">",
                          "type": "bool"
                        },
                        "children": [
                          {
                            "attributes": {
                              "commonType": {
                                "typeIdentifier": "t_int128",
                                "typeString": "int128"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "&",
                              "type": "int128"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8916,
                                  "type": "int128",
                                  "value": "x"
                                },
                                "id": 9414,
                                "name": "Identifier",
                                "src": "16819:1:38"
                              },
                              {
                                "attributes": {
                                  "hexvalue": "30783230303030303030",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "token": "number",
                                  "type": "int_const 536870912",
                                  "value": "0x20000000"
                                },
                                "id": 9415,
                                "name": "Literal",
                                "src": "16823:10:38"
                              }
                            ],
                            "id": 9416,
                            "name": "BinaryOperation",
                            "src": "16819:14:38"
                          },
                          {
                            "attributes": {
                              "hexvalue": "30",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "token": "number",
                              "type": "int_const 0",
                              "value": "0"
                            },
                            "id": 9417,
                            "name": "Literal",
                            "src": "16836:1:38"
                          }
                        ],
                        "id": 9418,
                        "name": "BinaryOperation",
                        "src": "16819:18:38"
                      },
                      {
                        "children": [
                          {
                            "attributes": {
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "=",
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8935,
                                  "type": "uint256",
                                  "value": "result"
                                },
                                "id": 9419,
                                "name": "Identifier",
                                "src": "16845:6:38"
                              },
                              {
                                "attributes": {
                                  "commonType": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": ">>",
                                  "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": 8935,
                                          "type": "uint256",
                                          "value": "result"
                                        },
                                        "id": 9420,
                                        "name": "Identifier",
                                        "src": "16854:6:38"
                                      },
                                      {
                                        "attributes": {
                                          "hexvalue": "3078313030303030303030313632453432464546423246454432353735353942444141",
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "token": "number",
                                          "type": "int_const 3402...(31 digits omitted)...4346",
                                          "value": "0x100000000162E42FEFB2FED257559BDAA"
                                        },
                                        "id": 9421,
                                        "name": "Literal",
                                        "src": "16863:35:38"
                                      }
                                    ],
                                    "id": 9422,
                                    "name": "BinaryOperation",
                                    "src": "16854:44:38"
                                  },
                                  {
                                    "attributes": {
                                      "hexvalue": "313238",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "token": "number",
                                      "type": "int_const 128",
                                      "value": "128"
                                    },
                                    "id": 9423,
                                    "name": "Literal",
                                    "src": "16902:3:38"
                                  }
                                ],
                                "id": 9424,
                                "name": "BinaryOperation",
                                "src": "16854:51:38"
                              }
                            ],
                            "id": 9425,
                            "name": "Assignment",
                            "src": "16845:60:38"
                          }
                        ],
                        "id": 9426,
                        "name": "ExpressionStatement",
                        "src": "16845:60:38"
                      }
                    ],
                    "id": 9427,
                    "name": "IfStatement",
                    "src": "16815:90:38"
                  },
                  {
                    "attributes": {},
                    "children": [
                      {
                        "attributes": {
                          "commonType": {
                            "typeIdentifier": "t_int128",
                            "typeString": "int128"
                          },
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": ">",
                          "type": "bool"
                        },
                        "children": [
                          {
                            "attributes": {
                              "commonType": {
                                "typeIdentifier": "t_int128",
                                "typeString": "int128"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "&",
                              "type": "int128"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8916,
                                  "type": "int128",
                                  "value": "x"
                                },
                                "id": 9428,
                                "name": "Identifier",
                                "src": "16915:1:38"
                              },
                              {
                                "attributes": {
                                  "hexvalue": "30783130303030303030",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "token": "number",
                                  "type": "int_const 268435456",
                                  "value": "0x10000000"
                                },
                                "id": 9429,
                                "name": "Literal",
                                "src": "16919:10:38"
                              }
                            ],
                            "id": 9430,
                            "name": "BinaryOperation",
                            "src": "16915:14:38"
                          },
                          {
                            "attributes": {
                              "hexvalue": "30",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "token": "number",
                              "type": "int_const 0",
                              "value": "0"
                            },
                            "id": 9431,
                            "name": "Literal",
                            "src": "16932:1:38"
                          }
                        ],
                        "id": 9432,
                        "name": "BinaryOperation",
                        "src": "16915:18:38"
                      },
                      {
                        "children": [
                          {
                            "attributes": {
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "=",
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8935,
                                  "type": "uint256",
                                  "value": "result"
                                },
                                "id": 9433,
                                "name": "Identifier",
                                "src": "16941:6:38"
                              },
                              {
                                "attributes": {
                                  "commonType": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": ">>",
                                  "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": 8935,
                                          "type": "uint256",
                                          "value": "result"
                                        },
                                        "id": 9434,
                                        "name": "Identifier",
                                        "src": "16950:6:38"
                                      },
                                      {
                                        "attributes": {
                                          "hexvalue": "3078313030303030303030304231373231374637443541373731364242413441394145",
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "token": "number",
                                          "type": "int_const 3402...(31 digits omitted)...9950",
                                          "value": "0x1000000000B17217F7D5A7716BBA4A9AE"
                                        },
                                        "id": 9435,
                                        "name": "Literal",
                                        "src": "16959:35:38"
                                      }
                                    ],
                                    "id": 9436,
                                    "name": "BinaryOperation",
                                    "src": "16950:44:38"
                                  },
                                  {
                                    "attributes": {
                                      "hexvalue": "313238",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "token": "number",
                                      "type": "int_const 128",
                                      "value": "128"
                                    },
                                    "id": 9437,
                                    "name": "Literal",
                                    "src": "16998:3:38"
                                  }
                                ],
                                "id": 9438,
                                "name": "BinaryOperation",
                                "src": "16950:51:38"
                              }
                            ],
                            "id": 9439,
                            "name": "Assignment",
                            "src": "16941:60:38"
                          }
                        ],
                        "id": 9440,
                        "name": "ExpressionStatement",
                        "src": "16941:60:38"
                      }
                    ],
                    "id": 9441,
                    "name": "IfStatement",
                    "src": "16911:90:38"
                  },
                  {
                    "attributes": {},
                    "children": [
                      {
                        "attributes": {
                          "commonType": {
                            "typeIdentifier": "t_int128",
                            "typeString": "int128"
                          },
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": ">",
                          "type": "bool"
                        },
                        "children": [
                          {
                            "attributes": {
                              "commonType": {
                                "typeIdentifier": "t_int128",
                                "typeString": "int128"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "&",
                              "type": "int128"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8916,
                                  "type": "int128",
                                  "value": "x"
                                },
                                "id": 9442,
                                "name": "Identifier",
                                "src": "17011:1:38"
                              },
                              {
                                "attributes": {
                                  "hexvalue": "307838303030303030",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "token": "number",
                                  "type": "int_const 134217728",
                                  "value": "0x8000000"
                                },
                                "id": 9443,
                                "name": "Literal",
                                "src": "17015:9:38"
                              }
                            ],
                            "id": 9444,
                            "name": "BinaryOperation",
                            "src": "17011:13:38"
                          },
                          {
                            "attributes": {
                              "hexvalue": "30",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "token": "number",
                              "type": "int_const 0",
                              "value": "0"
                            },
                            "id": 9445,
                            "name": "Literal",
                            "src": "17027:1:38"
                          }
                        ],
                        "id": 9446,
                        "name": "BinaryOperation",
                        "src": "17011:17:38"
                      },
                      {
                        "children": [
                          {
                            "attributes": {
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "=",
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8935,
                                  "type": "uint256",
                                  "value": "result"
                                },
                                "id": 9447,
                                "name": "Identifier",
                                "src": "17036:6:38"
                              },
                              {
                                "attributes": {
                                  "commonType": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": ">>",
                                  "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": 8935,
                                          "type": "uint256",
                                          "value": "result"
                                        },
                                        "id": 9448,
                                        "name": "Identifier",
                                        "src": "17045:6:38"
                                      },
                                      {
                                        "attributes": {
                                          "hexvalue": "3078313030303030303030303538423930424642453944444241433545313039434345",
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "token": "number",
                                          "type": "int_const 3402...(31 digits omitted)...1790",
                                          "value": "0x100000000058B90BFBE9DDBAC5E109CCE"
                                        },
                                        "id": 9449,
                                        "name": "Literal",
                                        "src": "17054:35:38"
                                      }
                                    ],
                                    "id": 9450,
                                    "name": "BinaryOperation",
                                    "src": "17045:44:38"
                                  },
                                  {
                                    "attributes": {
                                      "hexvalue": "313238",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "token": "number",
                                      "type": "int_const 128",
                                      "value": "128"
                                    },
                                    "id": 9451,
                                    "name": "Literal",
                                    "src": "17093:3:38"
                                  }
                                ],
                                "id": 9452,
                                "name": "BinaryOperation",
                                "src": "17045:51:38"
                              }
                            ],
                            "id": 9453,
                            "name": "Assignment",
                            "src": "17036:60:38"
                          }
                        ],
                        "id": 9454,
                        "name": "ExpressionStatement",
                        "src": "17036:60:38"
                      }
                    ],
                    "id": 9455,
                    "name": "IfStatement",
                    "src": "17007:89:38"
                  },
                  {
                    "attributes": {},
                    "children": [
                      {
                        "attributes": {
                          "commonType": {
                            "typeIdentifier": "t_int128",
                            "typeString": "int128"
                          },
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": ">",
                          "type": "bool"
                        },
                        "children": [
                          {
                            "attributes": {
                              "commonType": {
                                "typeIdentifier": "t_int128",
                                "typeString": "int128"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "&",
                              "type": "int128"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8916,
                                  "type": "int128",
                                  "value": "x"
                                },
                                "id": 9456,
                                "name": "Identifier",
                                "src": "17106:1:38"
                              },
                              {
                                "attributes": {
                                  "hexvalue": "307834303030303030",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "token": "number",
                                  "type": "int_const 67108864",
                                  "value": "0x4000000"
                                },
                                "id": 9457,
                                "name": "Literal",
                                "src": "17110:9:38"
                              }
                            ],
                            "id": 9458,
                            "name": "BinaryOperation",
                            "src": "17106:13:38"
                          },
                          {
                            "attributes": {
                              "hexvalue": "30",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "token": "number",
                              "type": "int_const 0",
                              "value": "0"
                            },
                            "id": 9459,
                            "name": "Literal",
                            "src": "17122:1:38"
                          }
                        ],
                        "id": 9460,
                        "name": "BinaryOperation",
                        "src": "17106:17:38"
                      },
                      {
                        "children": [
                          {
                            "attributes": {
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "=",
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8935,
                                  "type": "uint256",
                                  "value": "result"
                                },
                                "id": 9461,
                                "name": "Identifier",
                                "src": "17131:6:38"
                              },
                              {
                                "attributes": {
                                  "commonType": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": ">>",
                                  "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": 8935,
                                          "type": "uint256",
                                          "value": "result"
                                        },
                                        "id": 9462,
                                        "name": "Identifier",
                                        "src": "17140:6:38"
                                      },
                                      {
                                        "attributes": {
                                          "hexvalue": "3078313030303030303030303243354338354644463442313544453646313745423044",
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "token": "number",
                                          "type": "int_const 3402...(31 digits omitted)...3373",
                                          "value": "0x10000000002C5C85FDF4B15DE6F17EB0D"
                                        },
                                        "id": 9463,
                                        "name": "Literal",
                                        "src": "17149:35:38"
                                      }
                                    ],
                                    "id": 9464,
                                    "name": "BinaryOperation",
                                    "src": "17140:44:38"
                                  },
                                  {
                                    "attributes": {
                                      "hexvalue": "313238",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "token": "number",
                                      "type": "int_const 128",
                                      "value": "128"
                                    },
                                    "id": 9465,
                                    "name": "Literal",
                                    "src": "17188:3:38"
                                  }
                                ],
                                "id": 9466,
                                "name": "BinaryOperation",
                                "src": "17140:51:38"
                              }
                            ],
                            "id": 9467,
                            "name": "Assignment",
                            "src": "17131:60:38"
                          }
                        ],
                        "id": 9468,
                        "name": "ExpressionStatement",
                        "src": "17131:60:38"
                      }
                    ],
                    "id": 9469,
                    "name": "IfStatement",
                    "src": "17102:89:38"
                  },
                  {
                    "attributes": {},
                    "children": [
                      {
                        "attributes": {
                          "commonType": {
                            "typeIdentifier": "t_int128",
                            "typeString": "int128"
                          },
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": ">",
                          "type": "bool"
                        },
                        "children": [
                          {
                            "attributes": {
                              "commonType": {
                                "typeIdentifier": "t_int128",
                                "typeString": "int128"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "&",
                              "type": "int128"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8916,
                                  "type": "int128",
                                  "value": "x"
                                },
                                "id": 9470,
                                "name": "Identifier",
                                "src": "17201:1:38"
                              },
                              {
                                "attributes": {
                                  "hexvalue": "307832303030303030",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "token": "number",
                                  "type": "int_const 33554432",
                                  "value": "0x2000000"
                                },
                                "id": 9471,
                                "name": "Literal",
                                "src": "17205:9:38"
                              }
                            ],
                            "id": 9472,
                            "name": "BinaryOperation",
                            "src": "17201:13:38"
                          },
                          {
                            "attributes": {
                              "hexvalue": "30",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "token": "number",
                              "type": "int_const 0",
                              "value": "0"
                            },
                            "id": 9473,
                            "name": "Literal",
                            "src": "17217:1:38"
                          }
                        ],
                        "id": 9474,
                        "name": "BinaryOperation",
                        "src": "17201:17:38"
                      },
                      {
                        "children": [
                          {
                            "attributes": {
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "=",
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8935,
                                  "type": "uint256",
                                  "value": "result"
                                },
                                "id": 9475,
                                "name": "Identifier",
                                "src": "17226:6:38"
                              },
                              {
                                "attributes": {
                                  "commonType": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": ">>",
                                  "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": 8935,
                                          "type": "uint256",
                                          "value": "result"
                                        },
                                        "id": 9476,
                                        "name": "Identifier",
                                        "src": "17235:6:38"
                                      },
                                      {
                                        "attributes": {
                                          "hexvalue": "3078313030303030303030303136324534324645464134393446313437384644453035",
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "token": "number",
                                          "type": "int_const 3402...(31 digits omitted)...0693",
                                          "value": "0x1000000000162E42FEFA494F1478FDE05"
                                        },
                                        "id": 9477,
                                        "name": "Literal",
                                        "src": "17244:35:38"
                                      }
                                    ],
                                    "id": 9478,
                                    "name": "BinaryOperation",
                                    "src": "17235:44:38"
                                  },
                                  {
                                    "attributes": {
                                      "hexvalue": "313238",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "token": "number",
                                      "type": "int_const 128",
                                      "value": "128"
                                    },
                                    "id": 9479,
                                    "name": "Literal",
                                    "src": "17283:3:38"
                                  }
                                ],
                                "id": 9480,
                                "name": "BinaryOperation",
                                "src": "17235:51:38"
                              }
                            ],
                            "id": 9481,
                            "name": "Assignment",
                            "src": "17226:60:38"
                          }
                        ],
                        "id": 9482,
                        "name": "ExpressionStatement",
                        "src": "17226:60:38"
                      }
                    ],
                    "id": 9483,
                    "name": "IfStatement",
                    "src": "17197:89:38"
                  },
                  {
                    "attributes": {},
                    "children": [
                      {
                        "attributes": {
                          "commonType": {
                            "typeIdentifier": "t_int128",
                            "typeString": "int128"
                          },
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": ">",
                          "type": "bool"
                        },
                        "children": [
                          {
                            "attributes": {
                              "commonType": {
                                "typeIdentifier": "t_int128",
                                "typeString": "int128"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "&",
                              "type": "int128"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8916,
                                  "type": "int128",
                                  "value": "x"
                                },
                                "id": 9484,
                                "name": "Identifier",
                                "src": "17296:1:38"
                              },
                              {
                                "attributes": {
                                  "hexvalue": "307831303030303030",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "token": "number",
                                  "type": "int_const 16777216",
                                  "value": "0x1000000"
                                },
                                "id": 9485,
                                "name": "Literal",
                                "src": "17300:9:38"
                              }
                            ],
                            "id": 9486,
                            "name": "BinaryOperation",
                            "src": "17296:13:38"
                          },
                          {
                            "attributes": {
                              "hexvalue": "30",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "token": "number",
                              "type": "int_const 0",
                              "value": "0"
                            },
                            "id": 9487,
                            "name": "Literal",
                            "src": "17312:1:38"
                          }
                        ],
                        "id": 9488,
                        "name": "BinaryOperation",
                        "src": "17296:17:38"
                      },
                      {
                        "children": [
                          {
                            "attributes": {
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "=",
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8935,
                                  "type": "uint256",
                                  "value": "result"
                                },
                                "id": 9489,
                                "name": "Identifier",
                                "src": "17321:6:38"
                              },
                              {
                                "attributes": {
                                  "commonType": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": ">>",
                                  "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": 8935,
                                          "type": "uint256",
                                          "value": "result"
                                        },
                                        "id": 9490,
                                        "name": "Identifier",
                                        "src": "17330:6:38"
                                      },
                                      {
                                        "attributes": {
                                          "hexvalue": "3078313030303030303030303042313732313746374432304346393237433845393443",
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "token": "number",
                                          "type": "int_const 3402...(31 digits omitted)...9436",
                                          "value": "0x10000000000B17217F7D20CF927C8E94C"
                                        },
                                        "id": 9491,
                                        "name": "Literal",
                                        "src": "17339:35:38"
                                      }
                                    ],
                                    "id": 9492,
                                    "name": "BinaryOperation",
                                    "src": "17330:44:38"
                                  },
                                  {
                                    "attributes": {
                                      "hexvalue": "313238",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "token": "number",
                                      "type": "int_const 128",
                                      "value": "128"
                                    },
                                    "id": 9493,
                                    "name": "Literal",
                                    "src": "17378:3:38"
                                  }
                                ],
                                "id": 9494,
                                "name": "BinaryOperation",
                                "src": "17330:51:38"
                              }
                            ],
                            "id": 9495,
                            "name": "Assignment",
                            "src": "17321:60:38"
                          }
                        ],
                        "id": 9496,
                        "name": "ExpressionStatement",
                        "src": "17321:60:38"
                      }
                    ],
                    "id": 9497,
                    "name": "IfStatement",
                    "src": "17292:89:38"
                  },
                  {
                    "attributes": {},
                    "children": [
                      {
                        "attributes": {
                          "commonType": {
                            "typeIdentifier": "t_int128",
                            "typeString": "int128"
                          },
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": ">",
                          "type": "bool"
                        },
                        "children": [
                          {
                            "attributes": {
                              "commonType": {
                                "typeIdentifier": "t_int128",
                                "typeString": "int128"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "&",
                              "type": "int128"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8916,
                                  "type": "int128",
                                  "value": "x"
                                },
                                "id": 9498,
                                "name": "Identifier",
                                "src": "17391:1:38"
                              },
                              {
                                "attributes": {
                                  "hexvalue": "3078383030303030",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "token": "number",
                                  "type": "int_const 8388608",
                                  "value": "0x800000"
                                },
                                "id": 9499,
                                "name": "Literal",
                                "src": "17395:8:38"
                              }
                            ],
                            "id": 9500,
                            "name": "BinaryOperation",
                            "src": "17391:12:38"
                          },
                          {
                            "attributes": {
                              "hexvalue": "30",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "token": "number",
                              "type": "int_const 0",
                              "value": "0"
                            },
                            "id": 9501,
                            "name": "Literal",
                            "src": "17406:1:38"
                          }
                        ],
                        "id": 9502,
                        "name": "BinaryOperation",
                        "src": "17391:16:38"
                      },
                      {
                        "children": [
                          {
                            "attributes": {
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "=",
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8935,
                                  "type": "uint256",
                                  "value": "result"
                                },
                                "id": 9503,
                                "name": "Identifier",
                                "src": "17415:6:38"
                              },
                              {
                                "attributes": {
                                  "commonType": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": ">>",
                                  "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": 8935,
                                          "type": "uint256",
                                          "value": "result"
                                        },
                                        "id": 9504,
                                        "name": "Identifier",
                                        "src": "17424:6:38"
                                      },
                                      {
                                        "attributes": {
                                          "hexvalue": "3078313030303030303030303035384239304246424538463731434234453442333344",
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "token": "number",
                                          "type": "int_const 3402...(31 digits omitted)...2541",
                                          "value": "0x1000000000058B90BFBE8F71CB4E4B33D"
                                        },
                                        "id": 9505,
                                        "name": "Literal",
                                        "src": "17433:35:38"
                                      }
                                    ],
                                    "id": 9506,
                                    "name": "BinaryOperation",
                                    "src": "17424:44:38"
                                  },
                                  {
                                    "attributes": {
                                      "hexvalue": "313238",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "token": "number",
                                      "type": "int_const 128",
                                      "value": "128"
                                    },
                                    "id": 9507,
                                    "name": "Literal",
                                    "src": "17472:3:38"
                                  }
                                ],
                                "id": 9508,
                                "name": "BinaryOperation",
                                "src": "17424:51:38"
                              }
                            ],
                            "id": 9509,
                            "name": "Assignment",
                            "src": "17415:60:38"
                          }
                        ],
                        "id": 9510,
                        "name": "ExpressionStatement",
                        "src": "17415:60:38"
                      }
                    ],
                    "id": 9511,
                    "name": "IfStatement",
                    "src": "17387:88:38"
                  },
                  {
                    "attributes": {},
                    "children": [
                      {
                        "attributes": {
                          "commonType": {
                            "typeIdentifier": "t_int128",
                            "typeString": "int128"
                          },
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": ">",
                          "type": "bool"
                        },
                        "children": [
                          {
                            "attributes": {
                              "commonType": {
                                "typeIdentifier": "t_int128",
                                "typeString": "int128"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "&",
                              "type": "int128"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8916,
                                  "type": "int128",
                                  "value": "x"
                                },
                                "id": 9512,
                                "name": "Identifier",
                                "src": "17485:1:38"
                              },
                              {
                                "attributes": {
                                  "hexvalue": "3078343030303030",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "token": "number",
                                  "type": "int_const 4194304",
                                  "value": "0x400000"
                                },
                                "id": 9513,
                                "name": "Literal",
                                "src": "17489:8:38"
                              }
                            ],
                            "id": 9514,
                            "name": "BinaryOperation",
                            "src": "17485:12:38"
                          },
                          {
                            "attributes": {
                              "hexvalue": "30",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "token": "number",
                              "type": "int_const 0",
                              "value": "0"
                            },
                            "id": 9515,
                            "name": "Literal",
                            "src": "17500:1:38"
                          }
                        ],
                        "id": 9516,
                        "name": "BinaryOperation",
                        "src": "17485:16:38"
                      },
                      {
                        "children": [
                          {
                            "attributes": {
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "=",
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8935,
                                  "type": "uint256",
                                  "value": "result"
                                },
                                "id": 9517,
                                "name": "Identifier",
                                "src": "17509:6:38"
                              },
                              {
                                "attributes": {
                                  "commonType": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": ">>",
                                  "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": 8935,
                                          "type": "uint256",
                                          "value": "result"
                                        },
                                        "id": 9518,
                                        "name": "Identifier",
                                        "src": "17518:6:38"
                                      },
                                      {
                                        "attributes": {
                                          "hexvalue": "3078313030303030303030303032433543383546444634373742363632423236393435",
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "token": "number",
                                          "type": "int_const 3402...(31 digits omitted)...8773",
                                          "value": "0x100000000002C5C85FDF477B662B26945"
                                        },
                                        "id": 9519,
                                        "name": "Literal",
                                        "src": "17527:35:38"
                                      }
                                    ],
                                    "id": 9520,
                                    "name": "BinaryOperation",
                                    "src": "17518:44:38"
                                  },
                                  {
                                    "attributes": {
                                      "hexvalue": "313238",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "token": "number",
                                      "type": "int_const 128",
                                      "value": "128"
                                    },
                                    "id": 9521,
                                    "name": "Literal",
                                    "src": "17566:3:38"
                                  }
                                ],
                                "id": 9522,
                                "name": "BinaryOperation",
                                "src": "17518:51:38"
                              }
                            ],
                            "id": 9523,
                            "name": "Assignment",
                            "src": "17509:60:38"
                          }
                        ],
                        "id": 9524,
                        "name": "ExpressionStatement",
                        "src": "17509:60:38"
                      }
                    ],
                    "id": 9525,
                    "name": "IfStatement",
                    "src": "17481:88:38"
                  },
                  {
                    "attributes": {},
                    "children": [
                      {
                        "attributes": {
                          "commonType": {
                            "typeIdentifier": "t_int128",
                            "typeString": "int128"
                          },
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": ">",
                          "type": "bool"
                        },
                        "children": [
                          {
                            "attributes": {
                              "commonType": {
                                "typeIdentifier": "t_int128",
                                "typeString": "int128"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "&",
                              "type": "int128"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8916,
                                  "type": "int128",
                                  "value": "x"
                                },
                                "id": 9526,
                                "name": "Identifier",
                                "src": "17579:1:38"
                              },
                              {
                                "attributes": {
                                  "hexvalue": "3078323030303030",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "token": "number",
                                  "type": "int_const 2097152",
                                  "value": "0x200000"
                                },
                                "id": 9527,
                                "name": "Literal",
                                "src": "17583:8:38"
                              }
                            ],
                            "id": 9528,
                            "name": "BinaryOperation",
                            "src": "17579:12:38"
                          },
                          {
                            "attributes": {
                              "hexvalue": "30",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "token": "number",
                              "type": "int_const 0",
                              "value": "0"
                            },
                            "id": 9529,
                            "name": "Literal",
                            "src": "17594:1:38"
                          }
                        ],
                        "id": 9530,
                        "name": "BinaryOperation",
                        "src": "17579:16:38"
                      },
                      {
                        "children": [
                          {
                            "attributes": {
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "=",
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8935,
                                  "type": "uint256",
                                  "value": "result"
                                },
                                "id": 9531,
                                "name": "Identifier",
                                "src": "17603:6:38"
                              },
                              {
                                "attributes": {
                                  "commonType": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": ">>",
                                  "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": 8935,
                                          "type": "uint256",
                                          "value": "result"
                                        },
                                        "id": 9532,
                                        "name": "Identifier",
                                        "src": "17612:6:38"
                                      },
                                      {
                                        "attributes": {
                                          "hexvalue": "3078313030303030303030303031363245343246454641334145353333363933383843",
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "token": "number",
                                          "type": "int_const 3402...(31 digits omitted)...9308",
                                          "value": "0x10000000000162E42FEFA3AE53369388C"
                                        },
                                        "id": 9533,
                                        "name": "Literal",
                                        "src": "17621:35:38"
                                      }
                                    ],
                                    "id": 9534,
                                    "name": "BinaryOperation",
                                    "src": "17612:44:38"
                                  },
                                  {
                                    "attributes": {
                                      "hexvalue": "313238",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "token": "number",
                                      "type": "int_const 128",
                                      "value": "128"
                                    },
                                    "id": 9535,
                                    "name": "Literal",
                                    "src": "17660:3:38"
                                  }
                                ],
                                "id": 9536,
                                "name": "BinaryOperation",
                                "src": "17612:51:38"
                              }
                            ],
                            "id": 9537,
                            "name": "Assignment",
                            "src": "17603:60:38"
                          }
                        ],
                        "id": 9538,
                        "name": "ExpressionStatement",
                        "src": "17603:60:38"
                      }
                    ],
                    "id": 9539,
                    "name": "IfStatement",
                    "src": "17575:88:38"
                  },
                  {
                    "attributes": {},
                    "children": [
                      {
                        "attributes": {
                          "commonType": {
                            "typeIdentifier": "t_int128",
                            "typeString": "int128"
                          },
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": ">",
                          "type": "bool"
                        },
                        "children": [
                          {
                            "attributes": {
                              "commonType": {
                                "typeIdentifier": "t_int128",
                                "typeString": "int128"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "&",
                              "type": "int128"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8916,
                                  "type": "int128",
                                  "value": "x"
                                },
                                "id": 9540,
                                "name": "Identifier",
                                "src": "17673:1:38"
                              },
                              {
                                "attributes": {
                                  "hexvalue": "3078313030303030",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "token": "number",
                                  "type": "int_const 1048576",
                                  "value": "0x100000"
                                },
                                "id": 9541,
                                "name": "Literal",
                                "src": "17677:8:38"
                              }
                            ],
                            "id": 9542,
                            "name": "BinaryOperation",
                            "src": "17673:12:38"
                          },
                          {
                            "attributes": {
                              "hexvalue": "30",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "token": "number",
                              "type": "int_const 0",
                              "value": "0"
                            },
                            "id": 9543,
                            "name": "Literal",
                            "src": "17688:1:38"
                          }
                        ],
                        "id": 9544,
                        "name": "BinaryOperation",
                        "src": "17673:16:38"
                      },
                      {
                        "children": [
                          {
                            "attributes": {
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "=",
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8935,
                                  "type": "uint256",
                                  "value": "result"
                                },
                                "id": 9545,
                                "name": "Identifier",
                                "src": "17697:6:38"
                              },
                              {
                                "attributes": {
                                  "commonType": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": ">>",
                                  "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": 8935,
                                          "type": "uint256",
                                          "value": "result"
                                        },
                                        "id": 9546,
                                        "name": "Identifier",
                                        "src": "17706:6:38"
                                      },
                                      {
                                        "attributes": {
                                          "hexvalue": "3078313030303030303030303030423137323137463744314433353141333839443430",
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "token": "number",
                                          "type": "int_const 3402...(31 digits omitted)...7680",
                                          "value": "0x100000000000B17217F7D1D351A389D40"
                                        },
                                        "id": 9547,
                                        "name": "Literal",
                                        "src": "17715:35:38"
                                      }
                                    ],
                                    "id": 9548,
                                    "name": "BinaryOperation",
                                    "src": "17706:44:38"
                                  },
                                  {
                                    "attributes": {
                                      "hexvalue": "313238",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "token": "number",
                                      "type": "int_const 128",
                                      "value": "128"
                                    },
                                    "id": 9549,
                                    "name": "Literal",
                                    "src": "17754:3:38"
                                  }
                                ],
                                "id": 9550,
                                "name": "BinaryOperation",
                                "src": "17706:51:38"
                              }
                            ],
                            "id": 9551,
                            "name": "Assignment",
                            "src": "17697:60:38"
                          }
                        ],
                        "id": 9552,
                        "name": "ExpressionStatement",
                        "src": "17697:60:38"
                      }
                    ],
                    "id": 9553,
                    "name": "IfStatement",
                    "src": "17669:88:38"
                  },
                  {
                    "attributes": {},
                    "children": [
                      {
                        "attributes": {
                          "commonType": {
                            "typeIdentifier": "t_int128",
                            "typeString": "int128"
                          },
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": ">",
                          "type": "bool"
                        },
                        "children": [
                          {
                            "attributes": {
                              "commonType": {
                                "typeIdentifier": "t_int128",
                                "typeString": "int128"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "&",
                              "type": "int128"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8916,
                                  "type": "int128",
                                  "value": "x"
                                },
                                "id": 9554,
                                "name": "Identifier",
                                "src": "17767:1:38"
                              },
                              {
                                "attributes": {
                                  "hexvalue": "30783830303030",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "token": "number",
                                  "type": "int_const 524288",
                                  "value": "0x80000"
                                },
                                "id": 9555,
                                "name": "Literal",
                                "src": "17771:7:38"
                              }
                            ],
                            "id": 9556,
                            "name": "BinaryOperation",
                            "src": "17767:11:38"
                          },
                          {
                            "attributes": {
                              "hexvalue": "30",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "token": "number",
                              "type": "int_const 0",
                              "value": "0"
                            },
                            "id": 9557,
                            "name": "Literal",
                            "src": "17781:1:38"
                          }
                        ],
                        "id": 9558,
                        "name": "BinaryOperation",
                        "src": "17767:15:38"
                      },
                      {
                        "children": [
                          {
                            "attributes": {
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "=",
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8935,
                                  "type": "uint256",
                                  "value": "result"
                                },
                                "id": 9559,
                                "name": "Identifier",
                                "src": "17790:6:38"
                              },
                              {
                                "attributes": {
                                  "commonType": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": ">>",
                                  "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": 8935,
                                          "type": "uint256",
                                          "value": "result"
                                        },
                                        "id": 9560,
                                        "name": "Identifier",
                                        "src": "17799:6:38"
                                      },
                                      {
                                        "attributes": {
                                          "hexvalue": "3078313030303030303030303030353842393042464245384538423244334434454445",
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "token": "number",
                                          "type": "int_const 3402...(31 digits omitted)...0142",
                                          "value": "0x10000000000058B90BFBE8E8B2D3D4EDE"
                                        },
                                        "id": 9561,
                                        "name": "Literal",
                                        "src": "17808:35:38"
                                      }
                                    ],
                                    "id": 9562,
                                    "name": "BinaryOperation",
                                    "src": "17799:44:38"
                                  },
                                  {
                                    "attributes": {
                                      "hexvalue": "313238",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "token": "number",
                                      "type": "int_const 128",
                                      "value": "128"
                                    },
                                    "id": 9563,
                                    "name": "Literal",
                                    "src": "17847:3:38"
                                  }
                                ],
                                "id": 9564,
                                "name": "BinaryOperation",
                                "src": "17799:51:38"
                              }
                            ],
                            "id": 9565,
                            "name": "Assignment",
                            "src": "17790:60:38"
                          }
                        ],
                        "id": 9566,
                        "name": "ExpressionStatement",
                        "src": "17790:60:38"
                      }
                    ],
                    "id": 9567,
                    "name": "IfStatement",
                    "src": "17763:87:38"
                  },
                  {
                    "attributes": {},
                    "children": [
                      {
                        "attributes": {
                          "commonType": {
                            "typeIdentifier": "t_int128",
                            "typeString": "int128"
                          },
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": ">",
                          "type": "bool"
                        },
                        "children": [
                          {
                            "attributes": {
                              "commonType": {
                                "typeIdentifier": "t_int128",
                                "typeString": "int128"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "&",
                              "type": "int128"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8916,
                                  "type": "int128",
                                  "value": "x"
                                },
                                "id": 9568,
                                "name": "Identifier",
                                "src": "17860:1:38"
                              },
                              {
                                "attributes": {
                                  "hexvalue": "30783430303030",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "token": "number",
                                  "type": "int_const 262144",
                                  "value": "0x40000"
                                },
                                "id": 9569,
                                "name": "Literal",
                                "src": "17864:7:38"
                              }
                            ],
                            "id": 9570,
                            "name": "BinaryOperation",
                            "src": "17860:11:38"
                          },
                          {
                            "attributes": {
                              "hexvalue": "30",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "token": "number",
                              "type": "int_const 0",
                              "value": "0"
                            },
                            "id": 9571,
                            "name": "Literal",
                            "src": "17874:1:38"
                          }
                        ],
                        "id": 9572,
                        "name": "BinaryOperation",
                        "src": "17860:15:38"
                      },
                      {
                        "children": [
                          {
                            "attributes": {
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "=",
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8935,
                                  "type": "uint256",
                                  "value": "result"
                                },
                                "id": 9573,
                                "name": "Identifier",
                                "src": "17883:6:38"
                              },
                              {
                                "attributes": {
                                  "commonType": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": ">>",
                                  "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": 8935,
                                          "type": "uint256",
                                          "value": "result"
                                        },
                                        "id": 9574,
                                        "name": "Identifier",
                                        "src": "17892:6:38"
                                      },
                                      {
                                        "attributes": {
                                          "hexvalue": "3078313030303030303030303030324335433835464446343734314245413645373745",
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "token": "number",
                                          "type": "int_const 3402...(31 digits omitted)...0942",
                                          "value": "0x1000000000002C5C85FDF4741BEA6E77E"
                                        },
                                        "id": 9575,
                                        "name": "Literal",
                                        "src": "17901:35:38"
                                      }
                                    ],
                                    "id": 9576,
                                    "name": "BinaryOperation",
                                    "src": "17892:44:38"
                                  },
                                  {
                                    "attributes": {
                                      "hexvalue": "313238",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "token": "number",
                                      "type": "int_const 128",
                                      "value": "128"
                                    },
                                    "id": 9577,
                                    "name": "Literal",
                                    "src": "17940:3:38"
                                  }
                                ],
                                "id": 9578,
                                "name": "BinaryOperation",
                                "src": "17892:51:38"
                              }
                            ],
                            "id": 9579,
                            "name": "Assignment",
                            "src": "17883:60:38"
                          }
                        ],
                        "id": 9580,
                        "name": "ExpressionStatement",
                        "src": "17883:60:38"
                      }
                    ],
                    "id": 9581,
                    "name": "IfStatement",
                    "src": "17856:87:38"
                  },
                  {
                    "attributes": {},
                    "children": [
                      {
                        "attributes": {
                          "commonType": {
                            "typeIdentifier": "t_int128",
                            "typeString": "int128"
                          },
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": ">",
                          "type": "bool"
                        },
                        "children": [
                          {
                            "attributes": {
                              "commonType": {
                                "typeIdentifier": "t_int128",
                                "typeString": "int128"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "&",
                              "type": "int128"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8916,
                                  "type": "int128",
                                  "value": "x"
                                },
                                "id": 9582,
                                "name": "Identifier",
                                "src": "17953:1:38"
                              },
                              {
                                "attributes": {
                                  "hexvalue": "30783230303030",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "token": "number",
                                  "type": "int_const 131072",
                                  "value": "0x20000"
                                },
                                "id": 9583,
                                "name": "Literal",
                                "src": "17957:7:38"
                              }
                            ],
                            "id": 9584,
                            "name": "BinaryOperation",
                            "src": "17953:11:38"
                          },
                          {
                            "attributes": {
                              "hexvalue": "30",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "token": "number",
                              "type": "int_const 0",
                              "value": "0"
                            },
                            "id": 9585,
                            "name": "Literal",
                            "src": "17967:1:38"
                          }
                        ],
                        "id": 9586,
                        "name": "BinaryOperation",
                        "src": "17953:15:38"
                      },
                      {
                        "children": [
                          {
                            "attributes": {
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "=",
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8935,
                                  "type": "uint256",
                                  "value": "result"
                                },
                                "id": 9587,
                                "name": "Identifier",
                                "src": "17976:6:38"
                              },
                              {
                                "attributes": {
                                  "commonType": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": ">>",
                                  "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": 8935,
                                          "type": "uint256",
                                          "value": "result"
                                        },
                                        "id": 9588,
                                        "name": "Identifier",
                                        "src": "17985:6:38"
                                      },
                                      {
                                        "attributes": {
                                          "hexvalue": "3078313030303030303030303030313632453432464546413339464539353538334332",
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "token": "number",
                                          "type": "int_const 3402...(31 digits omitted)...1234",
                                          "value": "0x100000000000162E42FEFA39FE95583C2"
                                        },
                                        "id": 9589,
                                        "name": "Literal",
                                        "src": "17994:35:38"
                                      }
                                    ],
                                    "id": 9590,
                                    "name": "BinaryOperation",
                                    "src": "17985:44:38"
                                  },
                                  {
                                    "attributes": {
                                      "hexvalue": "313238",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "token": "number",
                                      "type": "int_const 128",
                                      "value": "128"
                                    },
                                    "id": 9591,
                                    "name": "Literal",
                                    "src": "18033:3:38"
                                  }
                                ],
                                "id": 9592,
                                "name": "BinaryOperation",
                                "src": "17985:51:38"
                              }
                            ],
                            "id": 9593,
                            "name": "Assignment",
                            "src": "17976:60:38"
                          }
                        ],
                        "id": 9594,
                        "name": "ExpressionStatement",
                        "src": "17976:60:38"
                      }
                    ],
                    "id": 9595,
                    "name": "IfStatement",
                    "src": "17949:87:38"
                  },
                  {
                    "attributes": {},
                    "children": [
                      {
                        "attributes": {
                          "commonType": {
                            "typeIdentifier": "t_int128",
                            "typeString": "int128"
                          },
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": ">",
                          "type": "bool"
                        },
                        "children": [
                          {
                            "attributes": {
                              "commonType": {
                                "typeIdentifier": "t_int128",
                                "typeString": "int128"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "&",
                              "type": "int128"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8916,
                                  "type": "int128",
                                  "value": "x"
                                },
                                "id": 9596,
                                "name": "Identifier",
                                "src": "18046:1:38"
                              },
                              {
                                "attributes": {
                                  "hexvalue": "30783130303030",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "token": "number",
                                  "type": "int_const 65536",
                                  "value": "0x10000"
                                },
                                "id": 9597,
                                "name": "Literal",
                                "src": "18050:7:38"
                              }
                            ],
                            "id": 9598,
                            "name": "BinaryOperation",
                            "src": "18046:11:38"
                          },
                          {
                            "attributes": {
                              "hexvalue": "30",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "token": "number",
                              "type": "int_const 0",
                              "value": "0"
                            },
                            "id": 9599,
                            "name": "Literal",
                            "src": "18060:1:38"
                          }
                        ],
                        "id": 9600,
                        "name": "BinaryOperation",
                        "src": "18046:15:38"
                      },
                      {
                        "children": [
                          {
                            "attributes": {
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "=",
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8935,
                                  "type": "uint256",
                                  "value": "result"
                                },
                                "id": 9601,
                                "name": "Identifier",
                                "src": "18069:6:38"
                              },
                              {
                                "attributes": {
                                  "commonType": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": ">>",
                                  "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": 8935,
                                          "type": "uint256",
                                          "value": "result"
                                        },
                                        "id": 9602,
                                        "name": "Identifier",
                                        "src": "18078:6:38"
                                      },
                                      {
                                        "attributes": {
                                          "hexvalue": "3078313030303030303030303030304231373231374637443143464237324234354531",
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "token": "number",
                                          "type": "int_const 3402...(31 digits omitted)...6353",
                                          "value": "0x1000000000000B17217F7D1CFB72B45E1"
                                        },
                                        "id": 9603,
                                        "name": "Literal",
                                        "src": "18087:35:38"
                                      }
                                    ],
                                    "id": 9604,
                                    "name": "BinaryOperation",
                                    "src": "18078:44:38"
                                  },
                                  {
                                    "attributes": {
                                      "hexvalue": "313238",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "token": "number",
                                      "type": "int_const 128",
                                      "value": "128"
                                    },
                                    "id": 9605,
                                    "name": "Literal",
                                    "src": "18126:3:38"
                                  }
                                ],
                                "id": 9606,
                                "name": "BinaryOperation",
                                "src": "18078:51:38"
                              }
                            ],
                            "id": 9607,
                            "name": "Assignment",
                            "src": "18069:60:38"
                          }
                        ],
                        "id": 9608,
                        "name": "ExpressionStatement",
                        "src": "18069:60:38"
                      }
                    ],
                    "id": 9609,
                    "name": "IfStatement",
                    "src": "18042:87:38"
                  },
                  {
                    "attributes": {},
                    "children": [
                      {
                        "attributes": {
                          "commonType": {
                            "typeIdentifier": "t_int128",
                            "typeString": "int128"
                          },
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": ">",
                          "type": "bool"
                        },
                        "children": [
                          {
                            "attributes": {
                              "commonType": {
                                "typeIdentifier": "t_int128",
                                "typeString": "int128"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "&",
                              "type": "int128"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8916,
                                  "type": "int128",
                                  "value": "x"
                                },
                                "id": 9610,
                                "name": "Identifier",
                                "src": "18139:1:38"
                              },
                              {
                                "attributes": {
                                  "hexvalue": "307838303030",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "token": "number",
                                  "type": "int_const 32768",
                                  "value": "0x8000"
                                },
                                "id": 9611,
                                "name": "Literal",
                                "src": "18143:6:38"
                              }
                            ],
                            "id": 9612,
                            "name": "BinaryOperation",
                            "src": "18139:10:38"
                          },
                          {
                            "attributes": {
                              "hexvalue": "30",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "token": "number",
                              "type": "int_const 0",
                              "value": "0"
                            },
                            "id": 9613,
                            "name": "Literal",
                            "src": "18152:1:38"
                          }
                        ],
                        "id": 9614,
                        "name": "BinaryOperation",
                        "src": "18139:14:38"
                      },
                      {
                        "children": [
                          {
                            "attributes": {
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "=",
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8935,
                                  "type": "uint256",
                                  "value": "result"
                                },
                                "id": 9615,
                                "name": "Identifier",
                                "src": "18161:6:38"
                              },
                              {
                                "attributes": {
                                  "commonType": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": ">>",
                                  "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": 8935,
                                          "type": "uint256",
                                          "value": "result"
                                        },
                                        "id": 9616,
                                        "name": "Identifier",
                                        "src": "18170:6:38"
                                      },
                                      {
                                        "attributes": {
                                          "hexvalue": "3078313030303030303030303030303538423930424642453845374343333543334630",
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "token": "number",
                                          "type": "int_const 3402...(31 digits omitted)...2656",
                                          "value": "0x100000000000058B90BFBE8E7CC35C3F0"
                                        },
                                        "id": 9617,
                                        "name": "Literal",
                                        "src": "18179:35:38"
                                      }
                                    ],
                                    "id": 9618,
                                    "name": "BinaryOperation",
                                    "src": "18170:44:38"
                                  },
                                  {
                                    "attributes": {
                                      "hexvalue": "313238",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "token": "number",
                                      "type": "int_const 128",
                                      "value": "128"
                                    },
                                    "id": 9619,
                                    "name": "Literal",
                                    "src": "18218:3:38"
                                  }
                                ],
                                "id": 9620,
                                "name": "BinaryOperation",
                                "src": "18170:51:38"
                              }
                            ],
                            "id": 9621,
                            "name": "Assignment",
                            "src": "18161:60:38"
                          }
                        ],
                        "id": 9622,
                        "name": "ExpressionStatement",
                        "src": "18161:60:38"
                      }
                    ],
                    "id": 9623,
                    "name": "IfStatement",
                    "src": "18135:86:38"
                  },
                  {
                    "attributes": {},
                    "children": [
                      {
                        "attributes": {
                          "commonType": {
                            "typeIdentifier": "t_int128",
                            "typeString": "int128"
                          },
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": ">",
                          "type": "bool"
                        },
                        "children": [
                          {
                            "attributes": {
                              "commonType": {
                                "typeIdentifier": "t_int128",
                                "typeString": "int128"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "&",
                              "type": "int128"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8916,
                                  "type": "int128",
                                  "value": "x"
                                },
                                "id": 9624,
                                "name": "Identifier",
                                "src": "18231:1:38"
                              },
                              {
                                "attributes": {
                                  "hexvalue": "307834303030",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "token": "number",
                                  "type": "int_const 16384",
                                  "value": "0x4000"
                                },
                                "id": 9625,
                                "name": "Literal",
                                "src": "18235:6:38"
                              }
                            ],
                            "id": 9626,
                            "name": "BinaryOperation",
                            "src": "18231:10:38"
                          },
                          {
                            "attributes": {
                              "hexvalue": "30",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "token": "number",
                              "type": "int_const 0",
                              "value": "0"
                            },
                            "id": 9627,
                            "name": "Literal",
                            "src": "18244:1:38"
                          }
                        ],
                        "id": 9628,
                        "name": "BinaryOperation",
                        "src": "18231:14:38"
                      },
                      {
                        "children": [
                          {
                            "attributes": {
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "=",
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8935,
                                  "type": "uint256",
                                  "value": "result"
                                },
                                "id": 9629,
                                "name": "Identifier",
                                "src": "18253:6:38"
                              },
                              {
                                "attributes": {
                                  "commonType": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": ">>",
                                  "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": 8935,
                                          "type": "uint256",
                                          "value": "result"
                                        },
                                        "id": 9630,
                                        "name": "Identifier",
                                        "src": "18262:6:38"
                                      },
                                      {
                                        "attributes": {
                                          "hexvalue": "3078313030303030303030303030303243354338354644463437334532343245413338",
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "token": "number",
                                          "type": "int_const 3402...(31 digits omitted)...6744",
                                          "value": "0x10000000000002C5C85FDF473E242EA38"
                                        },
                                        "id": 9631,
                                        "name": "Literal",
                                        "src": "18271:35:38"
                                      }
                                    ],
                                    "id": 9632,
                                    "name": "BinaryOperation",
                                    "src": "18262:44:38"
                                  },
                                  {
                                    "attributes": {
                                      "hexvalue": "313238",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "token": "number",
                                      "type": "int_const 128",
                                      "value": "128"
                                    },
                                    "id": 9633,
                                    "name": "Literal",
                                    "src": "18310:3:38"
                                  }
                                ],
                                "id": 9634,
                                "name": "BinaryOperation",
                                "src": "18262:51:38"
                              }
                            ],
                            "id": 9635,
                            "name": "Assignment",
                            "src": "18253:60:38"
                          }
                        ],
                        "id": 9636,
                        "name": "ExpressionStatement",
                        "src": "18253:60:38"
                      }
                    ],
                    "id": 9637,
                    "name": "IfStatement",
                    "src": "18227:86:38"
                  },
                  {
                    "attributes": {},
                    "children": [
                      {
                        "attributes": {
                          "commonType": {
                            "typeIdentifier": "t_int128",
                            "typeString": "int128"
                          },
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": ">",
                          "type": "bool"
                        },
                        "children": [
                          {
                            "attributes": {
                              "commonType": {
                                "typeIdentifier": "t_int128",
                                "typeString": "int128"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "&",
                              "type": "int128"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8916,
                                  "type": "int128",
                                  "value": "x"
                                },
                                "id": 9638,
                                "name": "Identifier",
                                "src": "18323:1:38"
                              },
                              {
                                "attributes": {
                                  "hexvalue": "307832303030",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "token": "number",
                                  "type": "int_const 8192",
                                  "value": "0x2000"
                                },
                                "id": 9639,
                                "name": "Literal",
                                "src": "18327:6:38"
                              }
                            ],
                            "id": 9640,
                            "name": "BinaryOperation",
                            "src": "18323:10:38"
                          },
                          {
                            "attributes": {
                              "hexvalue": "30",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "token": "number",
                              "type": "int_const 0",
                              "value": "0"
                            },
                            "id": 9641,
                            "name": "Literal",
                            "src": "18336:1:38"
                          }
                        ],
                        "id": 9642,
                        "name": "BinaryOperation",
                        "src": "18323:14:38"
                      },
                      {
                        "children": [
                          {
                            "attributes": {
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "=",
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8935,
                                  "type": "uint256",
                                  "value": "result"
                                },
                                "id": 9643,
                                "name": "Identifier",
                                "src": "18345:6:38"
                              },
                              {
                                "attributes": {
                                  "commonType": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": ">>",
                                  "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": 8935,
                                          "type": "uint256",
                                          "value": "result"
                                        },
                                        "id": 9644,
                                        "name": "Identifier",
                                        "src": "18354:6:38"
                                      },
                                      {
                                        "attributes": {
                                          "hexvalue": "3078313030303030303030303030303136324534324645464133394630324237373243",
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "token": "number",
                                          "type": "int_const 3402...(31 digits omitted)...7772",
                                          "value": "0x1000000000000162E42FEFA39F02B772C"
                                        },
                                        "id": 9645,
                                        "name": "Literal",
                                        "src": "18363:35:38"
                                      }
                                    ],
                                    "id": 9646,
                                    "name": "BinaryOperation",
                                    "src": "18354:44:38"
                                  },
                                  {
                                    "attributes": {
                                      "hexvalue": "313238",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "token": "number",
                                      "type": "int_const 128",
                                      "value": "128"
                                    },
                                    "id": 9647,
                                    "name": "Literal",
                                    "src": "18402:3:38"
                                  }
                                ],
                                "id": 9648,
                                "name": "BinaryOperation",
                                "src": "18354:51:38"
                              }
                            ],
                            "id": 9649,
                            "name": "Assignment",
                            "src": "18345:60:38"
                          }
                        ],
                        "id": 9650,
                        "name": "ExpressionStatement",
                        "src": "18345:60:38"
                      }
                    ],
                    "id": 9651,
                    "name": "IfStatement",
                    "src": "18319:86:38"
                  },
                  {
                    "attributes": {},
                    "children": [
                      {
                        "attributes": {
                          "commonType": {
                            "typeIdentifier": "t_int128",
                            "typeString": "int128"
                          },
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": ">",
                          "type": "bool"
                        },
                        "children": [
                          {
                            "attributes": {
                              "commonType": {
                                "typeIdentifier": "t_int128",
                                "typeString": "int128"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "&",
                              "type": "int128"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8916,
                                  "type": "int128",
                                  "value": "x"
                                },
                                "id": 9652,
                                "name": "Identifier",
                                "src": "18415:1:38"
                              },
                              {
                                "attributes": {
                                  "hexvalue": "307831303030",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "token": "number",
                                  "type": "int_const 4096",
                                  "value": "0x1000"
                                },
                                "id": 9653,
                                "name": "Literal",
                                "src": "18419:6:38"
                              }
                            ],
                            "id": 9654,
                            "name": "BinaryOperation",
                            "src": "18415:10:38"
                          },
                          {
                            "attributes": {
                              "hexvalue": "30",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "token": "number",
                              "type": "int_const 0",
                              "value": "0"
                            },
                            "id": 9655,
                            "name": "Literal",
                            "src": "18428:1:38"
                          }
                        ],
                        "id": 9656,
                        "name": "BinaryOperation",
                        "src": "18415:14:38"
                      },
                      {
                        "children": [
                          {
                            "attributes": {
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "=",
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8935,
                                  "type": "uint256",
                                  "value": "result"
                                },
                                "id": 9657,
                                "name": "Identifier",
                                "src": "18437:6:38"
                              },
                              {
                                "attributes": {
                                  "commonType": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": ">>",
                                  "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": 8935,
                                          "type": "uint256",
                                          "value": "result"
                                        },
                                        "id": 9658,
                                        "name": "Identifier",
                                        "src": "18446:6:38"
                                      },
                                      {
                                        "attributes": {
                                          "hexvalue": "3078313030303030303030303030303042313732313746374431434637443833433141",
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "token": "number",
                                          "type": "int_const 3402...(31 digits omitted)...4282",
                                          "value": "0x10000000000000B17217F7D1CF7D83C1A"
                                        },
                                        "id": 9659,
                                        "name": "Literal",
                                        "src": "18455:35:38"
                                      }
                                    ],
                                    "id": 9660,
                                    "name": "BinaryOperation",
                                    "src": "18446:44:38"
                                  },
                                  {
                                    "attributes": {
                                      "hexvalue": "313238",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "token": "number",
                                      "type": "int_const 128",
                                      "value": "128"
                                    },
                                    "id": 9661,
                                    "name": "Literal",
                                    "src": "18494:3:38"
                                  }
                                ],
                                "id": 9662,
                                "name": "BinaryOperation",
                                "src": "18446:51:38"
                              }
                            ],
                            "id": 9663,
                            "name": "Assignment",
                            "src": "18437:60:38"
                          }
                        ],
                        "id": 9664,
                        "name": "ExpressionStatement",
                        "src": "18437:60:38"
                      }
                    ],
                    "id": 9665,
                    "name": "IfStatement",
                    "src": "18411:86:38"
                  },
                  {
                    "attributes": {},
                    "children": [
                      {
                        "attributes": {
                          "commonType": {
                            "typeIdentifier": "t_int128",
                            "typeString": "int128"
                          },
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": ">",
                          "type": "bool"
                        },
                        "children": [
                          {
                            "attributes": {
                              "commonType": {
                                "typeIdentifier": "t_int128",
                                "typeString": "int128"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "&",
                              "type": "int128"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8916,
                                  "type": "int128",
                                  "value": "x"
                                },
                                "id": 9666,
                                "name": "Identifier",
                                "src": "18507:1:38"
                              },
                              {
                                "attributes": {
                                  "hexvalue": "3078383030",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "token": "number",
                                  "type": "int_const 2048",
                                  "value": "0x800"
                                },
                                "id": 9667,
                                "name": "Literal",
                                "src": "18511:5:38"
                              }
                            ],
                            "id": 9668,
                            "name": "BinaryOperation",
                            "src": "18507:9:38"
                          },
                          {
                            "attributes": {
                              "hexvalue": "30",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "token": "number",
                              "type": "int_const 0",
                              "value": "0"
                            },
                            "id": 9669,
                            "name": "Literal",
                            "src": "18519:1:38"
                          }
                        ],
                        "id": 9670,
                        "name": "BinaryOperation",
                        "src": "18507:13:38"
                      },
                      {
                        "children": [
                          {
                            "attributes": {
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "=",
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8935,
                                  "type": "uint256",
                                  "value": "result"
                                },
                                "id": 9671,
                                "name": "Identifier",
                                "src": "18528:6:38"
                              },
                              {
                                "attributes": {
                                  "commonType": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": ">>",
                                  "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": 8935,
                                          "type": "uint256",
                                          "value": "result"
                                        },
                                        "id": 9672,
                                        "name": "Identifier",
                                        "src": "18537:6:38"
                                      },
                                      {
                                        "attributes": {
                                          "hexvalue": "3078313030303030303030303030303035384239304246424538453742444342453245",
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "token": "number",
                                          "type": "int_const 3402...(31 digits omitted)...0286",
                                          "value": "0x1000000000000058B90BFBE8E7BDCBE2E"
                                        },
                                        "id": 9673,
                                        "name": "Literal",
                                        "src": "18546:35:38"
                                      }
                                    ],
                                    "id": 9674,
                                    "name": "BinaryOperation",
                                    "src": "18537:44:38"
                                  },
                                  {
                                    "attributes": {
                                      "hexvalue": "313238",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "token": "number",
                                      "type": "int_const 128",
                                      "value": "128"
                                    },
                                    "id": 9675,
                                    "name": "Literal",
                                    "src": "18585:3:38"
                                  }
                                ],
                                "id": 9676,
                                "name": "BinaryOperation",
                                "src": "18537:51:38"
                              }
                            ],
                            "id": 9677,
                            "name": "Assignment",
                            "src": "18528:60:38"
                          }
                        ],
                        "id": 9678,
                        "name": "ExpressionStatement",
                        "src": "18528:60:38"
                      }
                    ],
                    "id": 9679,
                    "name": "IfStatement",
                    "src": "18503:85:38"
                  },
                  {
                    "attributes": {},
                    "children": [
                      {
                        "attributes": {
                          "commonType": {
                            "typeIdentifier": "t_int128",
                            "typeString": "int128"
                          },
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": ">",
                          "type": "bool"
                        },
                        "children": [
                          {
                            "attributes": {
                              "commonType": {
                                "typeIdentifier": "t_int128",
                                "typeString": "int128"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "&",
                              "type": "int128"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8916,
                                  "type": "int128",
                                  "value": "x"
                                },
                                "id": 9680,
                                "name": "Identifier",
                                "src": "18598:1:38"
                              },
                              {
                                "attributes": {
                                  "hexvalue": "3078343030",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "token": "number",
                                  "type": "int_const 1024",
                                  "value": "0x400"
                                },
                                "id": 9681,
                                "name": "Literal",
                                "src": "18602:5:38"
                              }
                            ],
                            "id": 9682,
                            "name": "BinaryOperation",
                            "src": "18598:9:38"
                          },
                          {
                            "attributes": {
                              "hexvalue": "30",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "token": "number",
                              "type": "int_const 0",
                              "value": "0"
                            },
                            "id": 9683,
                            "name": "Literal",
                            "src": "18610:1:38"
                          }
                        ],
                        "id": 9684,
                        "name": "BinaryOperation",
                        "src": "18598:13:38"
                      },
                      {
                        "children": [
                          {
                            "attributes": {
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "=",
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8935,
                                  "type": "uint256",
                                  "value": "result"
                                },
                                "id": 9685,
                                "name": "Identifier",
                                "src": "18619:6:38"
                              },
                              {
                                "attributes": {
                                  "commonType": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": ">>",
                                  "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": 8935,
                                          "type": "uint256",
                                          "value": "result"
                                        },
                                        "id": 9686,
                                        "name": "Identifier",
                                        "src": "18628:6:38"
                                      },
                                      {
                                        "attributes": {
                                          "hexvalue": "3078313030303030303030303030303032433543383546444634373344454138373146",
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "token": "number",
                                          "type": "int_const 3402...(31 digits omitted)...8975",
                                          "value": "0x100000000000002C5C85FDF473DEA871F"
                                        },
                                        "id": 9687,
                                        "name": "Literal",
                                        "src": "18637:35:38"
                                      }
                                    ],
                                    "id": 9688,
                                    "name": "BinaryOperation",
                                    "src": "18628:44:38"
                                  },
                                  {
                                    "attributes": {
                                      "hexvalue": "313238",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "token": "number",
                                      "type": "int_const 128",
                                      "value": "128"
                                    },
                                    "id": 9689,
                                    "name": "Literal",
                                    "src": "18676:3:38"
                                  }
                                ],
                                "id": 9690,
                                "name": "BinaryOperation",
                                "src": "18628:51:38"
                              }
                            ],
                            "id": 9691,
                            "name": "Assignment",
                            "src": "18619:60:38"
                          }
                        ],
                        "id": 9692,
                        "name": "ExpressionStatement",
                        "src": "18619:60:38"
                      }
                    ],
                    "id": 9693,
                    "name": "IfStatement",
                    "src": "18594:85:38"
                  },
                  {
                    "attributes": {},
                    "children": [
                      {
                        "attributes": {
                          "commonType": {
                            "typeIdentifier": "t_int128",
                            "typeString": "int128"
                          },
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": ">",
                          "type": "bool"
                        },
                        "children": [
                          {
                            "attributes": {
                              "commonType": {
                                "typeIdentifier": "t_int128",
                                "typeString": "int128"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "&",
                              "type": "int128"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8916,
                                  "type": "int128",
                                  "value": "x"
                                },
                                "id": 9694,
                                "name": "Identifier",
                                "src": "18689:1:38"
                              },
                              {
                                "attributes": {
                                  "hexvalue": "3078323030",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "token": "number",
                                  "type": "int_const 512",
                                  "value": "0x200"
                                },
                                "id": 9695,
                                "name": "Literal",
                                "src": "18693:5:38"
                              }
                            ],
                            "id": 9696,
                            "name": "BinaryOperation",
                            "src": "18689:9:38"
                          },
                          {
                            "attributes": {
                              "hexvalue": "30",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "token": "number",
                              "type": "int_const 0",
                              "value": "0"
                            },
                            "id": 9697,
                            "name": "Literal",
                            "src": "18701:1:38"
                          }
                        ],
                        "id": 9698,
                        "name": "BinaryOperation",
                        "src": "18689:13:38"
                      },
                      {
                        "children": [
                          {
                            "attributes": {
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "=",
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8935,
                                  "type": "uint256",
                                  "value": "result"
                                },
                                "id": 9699,
                                "name": "Identifier",
                                "src": "18710:6:38"
                              },
                              {
                                "attributes": {
                                  "commonType": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": ">>",
                                  "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": 8935,
                                          "type": "uint256",
                                          "value": "result"
                                        },
                                        "id": 9700,
                                        "name": "Identifier",
                                        "src": "18719:6:38"
                                      },
                                      {
                                        "attributes": {
                                          "hexvalue": "3078313030303030303030303030303031363245343246454641333945463434443931",
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "token": "number",
                                          "type": "int_const 3402...(31 digits omitted)...2241",
                                          "value": "0x10000000000000162E42FEFA39EF44D91"
                                        },
                                        "id": 9701,
                                        "name": "Literal",
                                        "src": "18728:35:38"
                                      }
                                    ],
                                    "id": 9702,
                                    "name": "BinaryOperation",
                                    "src": "18719:44:38"
                                  },
                                  {
                                    "attributes": {
                                      "hexvalue": "313238",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "token": "number",
                                      "type": "int_const 128",
                                      "value": "128"
                                    },
                                    "id": 9703,
                                    "name": "Literal",
                                    "src": "18767:3:38"
                                  }
                                ],
                                "id": 9704,
                                "name": "BinaryOperation",
                                "src": "18719:51:38"
                              }
                            ],
                            "id": 9705,
                            "name": "Assignment",
                            "src": "18710:60:38"
                          }
                        ],
                        "id": 9706,
                        "name": "ExpressionStatement",
                        "src": "18710:60:38"
                      }
                    ],
                    "id": 9707,
                    "name": "IfStatement",
                    "src": "18685:85:38"
                  },
                  {
                    "attributes": {},
                    "children": [
                      {
                        "attributes": {
                          "commonType": {
                            "typeIdentifier": "t_int128",
                            "typeString": "int128"
                          },
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": ">",
                          "type": "bool"
                        },
                        "children": [
                          {
                            "attributes": {
                              "commonType": {
                                "typeIdentifier": "t_int128",
                                "typeString": "int128"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "&",
                              "type": "int128"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8916,
                                  "type": "int128",
                                  "value": "x"
                                },
                                "id": 9708,
                                "name": "Identifier",
                                "src": "18780:1:38"
                              },
                              {
                                "attributes": {
                                  "hexvalue": "3078313030",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "token": "number",
                                  "type": "int_const 256",
                                  "value": "0x100"
                                },
                                "id": 9709,
                                "name": "Literal",
                                "src": "18784:5:38"
                              }
                            ],
                            "id": 9710,
                            "name": "BinaryOperation",
                            "src": "18780:9:38"
                          },
                          {
                            "attributes": {
                              "hexvalue": "30",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "token": "number",
                              "type": "int_const 0",
                              "value": "0"
                            },
                            "id": 9711,
                            "name": "Literal",
                            "src": "18792:1:38"
                          }
                        ],
                        "id": 9712,
                        "name": "BinaryOperation",
                        "src": "18780:13:38"
                      },
                      {
                        "children": [
                          {
                            "attributes": {
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "=",
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8935,
                                  "type": "uint256",
                                  "value": "result"
                                },
                                "id": 9713,
                                "name": "Identifier",
                                "src": "18801:6:38"
                              },
                              {
                                "attributes": {
                                  "commonType": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": ">>",
                                  "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": 8935,
                                          "type": "uint256",
                                          "value": "result"
                                        },
                                        "id": 9714,
                                        "name": "Identifier",
                                        "src": "18810:6:38"
                                      },
                                      {
                                        "attributes": {
                                          "hexvalue": "3078313030303030303030303030303030423137323137463744314346373945393439",
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "token": "number",
                                          "type": "int_const 3402...(31 digits omitted)...6105",
                                          "value": "0x100000000000000B17217F7D1CF79E949"
                                        },
                                        "id": 9715,
                                        "name": "Literal",
                                        "src": "18819:35:38"
                                      }
                                    ],
                                    "id": 9716,
                                    "name": "BinaryOperation",
                                    "src": "18810:44:38"
                                  },
                                  {
                                    "attributes": {
                                      "hexvalue": "313238",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "token": "number",
                                      "type": "int_const 128",
                                      "value": "128"
                                    },
                                    "id": 9717,
                                    "name": "Literal",
                                    "src": "18858:3:38"
                                  }
                                ],
                                "id": 9718,
                                "name": "BinaryOperation",
                                "src": "18810:51:38"
                              }
                            ],
                            "id": 9719,
                            "name": "Assignment",
                            "src": "18801:60:38"
                          }
                        ],
                        "id": 9720,
                        "name": "ExpressionStatement",
                        "src": "18801:60:38"
                      }
                    ],
                    "id": 9721,
                    "name": "IfStatement",
                    "src": "18776:85:38"
                  },
                  {
                    "attributes": {},
                    "children": [
                      {
                        "attributes": {
                          "commonType": {
                            "typeIdentifier": "t_int128",
                            "typeString": "int128"
                          },
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": ">",
                          "type": "bool"
                        },
                        "children": [
                          {
                            "attributes": {
                              "commonType": {
                                "typeIdentifier": "t_int128",
                                "typeString": "int128"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "&",
                              "type": "int128"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8916,
                                  "type": "int128",
                                  "value": "x"
                                },
                                "id": 9722,
                                "name": "Identifier",
                                "src": "18871:1:38"
                              },
                              {
                                "attributes": {
                                  "hexvalue": "30783830",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "token": "number",
                                  "type": "int_const 128",
                                  "value": "0x80"
                                },
                                "id": 9723,
                                "name": "Literal",
                                "src": "18875:4:38"
                              }
                            ],
                            "id": 9724,
                            "name": "BinaryOperation",
                            "src": "18871:8:38"
                          },
                          {
                            "attributes": {
                              "hexvalue": "30",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "token": "number",
                              "type": "int_const 0",
                              "value": "0"
                            },
                            "id": 9725,
                            "name": "Literal",
                            "src": "18882:1:38"
                          }
                        ],
                        "id": 9726,
                        "name": "BinaryOperation",
                        "src": "18871:12:38"
                      },
                      {
                        "children": [
                          {
                            "attributes": {
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "=",
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8935,
                                  "type": "uint256",
                                  "value": "result"
                                },
                                "id": 9727,
                                "name": "Identifier",
                                "src": "18891:6:38"
                              },
                              {
                                "attributes": {
                                  "commonType": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": ">>",
                                  "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": 8935,
                                          "type": "uint256",
                                          "value": "result"
                                        },
                                        "id": 9728,
                                        "name": "Identifier",
                                        "src": "18900:6:38"
                                      },
                                      {
                                        "attributes": {
                                          "hexvalue": "3078313030303030303030303030303030353842393042464245384537424345353434",
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "token": "number",
                                          "type": "int_const 3402...(31 digits omitted)...9844",
                                          "value": "0x10000000000000058B90BFBE8E7BCE544"
                                        },
                                        "id": 9729,
                                        "name": "Literal",
                                        "src": "18909:35:38"
                                      }
                                    ],
                                    "id": 9730,
                                    "name": "BinaryOperation",
                                    "src": "18900:44:38"
                                  },
                                  {
                                    "attributes": {
                                      "hexvalue": "313238",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "token": "number",
                                      "type": "int_const 128",
                                      "value": "128"
                                    },
                                    "id": 9731,
                                    "name": "Literal",
                                    "src": "18948:3:38"
                                  }
                                ],
                                "id": 9732,
                                "name": "BinaryOperation",
                                "src": "18900:51:38"
                              }
                            ],
                            "id": 9733,
                            "name": "Assignment",
                            "src": "18891:60:38"
                          }
                        ],
                        "id": 9734,
                        "name": "ExpressionStatement",
                        "src": "18891:60:38"
                      }
                    ],
                    "id": 9735,
                    "name": "IfStatement",
                    "src": "18867:84:38"
                  },
                  {
                    "attributes": {},
                    "children": [
                      {
                        "attributes": {
                          "commonType": {
                            "typeIdentifier": "t_int128",
                            "typeString": "int128"
                          },
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": ">",
                          "type": "bool"
                        },
                        "children": [
                          {
                            "attributes": {
                              "commonType": {
                                "typeIdentifier": "t_int128",
                                "typeString": "int128"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "&",
                              "type": "int128"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8916,
                                  "type": "int128",
                                  "value": "x"
                                },
                                "id": 9736,
                                "name": "Identifier",
                                "src": "18961:1:38"
                              },
                              {
                                "attributes": {
                                  "hexvalue": "30783430",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "token": "number",
                                  "type": "int_const 64",
                                  "value": "0x40"
                                },
                                "id": 9737,
                                "name": "Literal",
                                "src": "18965:4:38"
                              }
                            ],
                            "id": 9738,
                            "name": "BinaryOperation",
                            "src": "18961:8:38"
                          },
                          {
                            "attributes": {
                              "hexvalue": "30",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "token": "number",
                              "type": "int_const 0",
                              "value": "0"
                            },
                            "id": 9739,
                            "name": "Literal",
                            "src": "18972:1:38"
                          }
                        ],
                        "id": 9740,
                        "name": "BinaryOperation",
                        "src": "18961:12:38"
                      },
                      {
                        "children": [
                          {
                            "attributes": {
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "=",
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8935,
                                  "type": "uint256",
                                  "value": "result"
                                },
                                "id": 9741,
                                "name": "Identifier",
                                "src": "18981:6:38"
                              },
                              {
                                "attributes": {
                                  "commonType": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": ">>",
                                  "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": 8935,
                                          "type": "uint256",
                                          "value": "result"
                                        },
                                        "id": 9742,
                                        "name": "Identifier",
                                        "src": "18990:6:38"
                                      },
                                      {
                                        "attributes": {
                                          "hexvalue": "3078313030303030303030303030303030324335433835464446343733444536454341",
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "token": "number",
                                          "type": "int_const 3402...(31 digits omitted)...4666",
                                          "value": "0x1000000000000002C5C85FDF473DE6ECA"
                                        },
                                        "id": 9743,
                                        "name": "Literal",
                                        "src": "18999:35:38"
                                      }
                                    ],
                                    "id": 9744,
                                    "name": "BinaryOperation",
                                    "src": "18990:44:38"
                                  },
                                  {
                                    "attributes": {
                                      "hexvalue": "313238",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "token": "number",
                                      "type": "int_const 128",
                                      "value": "128"
                                    },
                                    "id": 9745,
                                    "name": "Literal",
                                    "src": "19038:3:38"
                                  }
                                ],
                                "id": 9746,
                                "name": "BinaryOperation",
                                "src": "18990:51:38"
                              }
                            ],
                            "id": 9747,
                            "name": "Assignment",
                            "src": "18981:60:38"
                          }
                        ],
                        "id": 9748,
                        "name": "ExpressionStatement",
                        "src": "18981:60:38"
                      }
                    ],
                    "id": 9749,
                    "name": "IfStatement",
                    "src": "18957:84:38"
                  },
                  {
                    "attributes": {},
                    "children": [
                      {
                        "attributes": {
                          "commonType": {
                            "typeIdentifier": "t_int128",
                            "typeString": "int128"
                          },
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": ">",
                          "type": "bool"
                        },
                        "children": [
                          {
                            "attributes": {
                              "commonType": {
                                "typeIdentifier": "t_int128",
                                "typeString": "int128"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "&",
                              "type": "int128"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8916,
                                  "type": "int128",
                                  "value": "x"
                                },
                                "id": 9750,
                                "name": "Identifier",
                                "src": "19051:1:38"
                              },
                              {
                                "attributes": {
                                  "hexvalue": "30783230",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "token": "number",
                                  "type": "int_const 32",
                                  "value": "0x20"
                                },
                                "id": 9751,
                                "name": "Literal",
                                "src": "19055:4:38"
                              }
                            ],
                            "id": 9752,
                            "name": "BinaryOperation",
                            "src": "19051:8:38"
                          },
                          {
                            "attributes": {
                              "hexvalue": "30",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "token": "number",
                              "type": "int_const 0",
                              "value": "0"
                            },
                            "id": 9753,
                            "name": "Literal",
                            "src": "19062:1:38"
                          }
                        ],
                        "id": 9754,
                        "name": "BinaryOperation",
                        "src": "19051:12:38"
                      },
                      {
                        "children": [
                          {
                            "attributes": {
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "=",
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8935,
                                  "type": "uint256",
                                  "value": "result"
                                },
                                "id": 9755,
                                "name": "Identifier",
                                "src": "19071:6:38"
                              },
                              {
                                "attributes": {
                                  "commonType": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": ">>",
                                  "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": 8935,
                                          "type": "uint256",
                                          "value": "result"
                                        },
                                        "id": 9756,
                                        "name": "Identifier",
                                        "src": "19080:6:38"
                                      },
                                      {
                                        "attributes": {
                                          "hexvalue": "3078313030303030303030303030303030313632453432464546413339454633363646",
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "token": "number",
                                          "type": "int_const 3402...(31 digits omitted)...2815",
                                          "value": "0x100000000000000162E42FEFA39EF366F"
                                        },
                                        "id": 9757,
                                        "name": "Literal",
                                        "src": "19089:35:38"
                                      }
                                    ],
                                    "id": 9758,
                                    "name": "BinaryOperation",
                                    "src": "19080:44:38"
                                  },
                                  {
                                    "attributes": {
                                      "hexvalue": "313238",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "token": "number",
                                      "type": "int_const 128",
                                      "value": "128"
                                    },
                                    "id": 9759,
                                    "name": "Literal",
                                    "src": "19128:3:38"
                                  }
                                ],
                                "id": 9760,
                                "name": "BinaryOperation",
                                "src": "19080:51:38"
                              }
                            ],
                            "id": 9761,
                            "name": "Assignment",
                            "src": "19071:60:38"
                          }
                        ],
                        "id": 9762,
                        "name": "ExpressionStatement",
                        "src": "19071:60:38"
                      }
                    ],
                    "id": 9763,
                    "name": "IfStatement",
                    "src": "19047:84:38"
                  },
                  {
                    "attributes": {},
                    "children": [
                      {
                        "attributes": {
                          "commonType": {
                            "typeIdentifier": "t_int128",
                            "typeString": "int128"
                          },
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": ">",
                          "type": "bool"
                        },
                        "children": [
                          {
                            "attributes": {
                              "commonType": {
                                "typeIdentifier": "t_int128",
                                "typeString": "int128"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "&",
                              "type": "int128"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8916,
                                  "type": "int128",
                                  "value": "x"
                                },
                                "id": 9764,
                                "name": "Identifier",
                                "src": "19141:1:38"
                              },
                              {
                                "attributes": {
                                  "hexvalue": "30783130",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "token": "number",
                                  "type": "int_const 16",
                                  "value": "0x10"
                                },
                                "id": 9765,
                                "name": "Literal",
                                "src": "19145:4:38"
                              }
                            ],
                            "id": 9766,
                            "name": "BinaryOperation",
                            "src": "19141:8:38"
                          },
                          {
                            "attributes": {
                              "hexvalue": "30",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "token": "number",
                              "type": "int_const 0",
                              "value": "0"
                            },
                            "id": 9767,
                            "name": "Literal",
                            "src": "19152:1:38"
                          }
                        ],
                        "id": 9768,
                        "name": "BinaryOperation",
                        "src": "19141:12:38"
                      },
                      {
                        "children": [
                          {
                            "attributes": {
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "=",
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8935,
                                  "type": "uint256",
                                  "value": "result"
                                },
                                "id": 9769,
                                "name": "Identifier",
                                "src": "19161:6:38"
                              },
                              {
                                "attributes": {
                                  "commonType": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": ">>",
                                  "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": 8935,
                                          "type": "uint256",
                                          "value": "result"
                                        },
                                        "id": 9770,
                                        "name": "Identifier",
                                        "src": "19170:6:38"
                                      },
                                      {
                                        "attributes": {
                                          "hexvalue": "3078313030303030303030303030303030304231373231374637443143463739414641",
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "token": "number",
                                          "type": "int_const 3402...(31 digits omitted)...2074",
                                          "value": "0x1000000000000000B17217F7D1CF79AFA"
                                        },
                                        "id": 9771,
                                        "name": "Literal",
                                        "src": "19179:35:38"
                                      }
                                    ],
                                    "id": 9772,
                                    "name": "BinaryOperation",
                                    "src": "19170:44:38"
                                  },
                                  {
                                    "attributes": {
                                      "hexvalue": "313238",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "token": "number",
                                      "type": "int_const 128",
                                      "value": "128"
                                    },
                                    "id": 9773,
                                    "name": "Literal",
                                    "src": "19218:3:38"
                                  }
                                ],
                                "id": 9774,
                                "name": "BinaryOperation",
                                "src": "19170:51:38"
                              }
                            ],
                            "id": 9775,
                            "name": "Assignment",
                            "src": "19161:60:38"
                          }
                        ],
                        "id": 9776,
                        "name": "ExpressionStatement",
                        "src": "19161:60:38"
                      }
                    ],
                    "id": 9777,
                    "name": "IfStatement",
                    "src": "19137:84:38"
                  },
                  {
                    "attributes": {},
                    "children": [
                      {
                        "attributes": {
                          "commonType": {
                            "typeIdentifier": "t_int128",
                            "typeString": "int128"
                          },
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": ">",
                          "type": "bool"
                        },
                        "children": [
                          {
                            "attributes": {
                              "commonType": {
                                "typeIdentifier": "t_int128",
                                "typeString": "int128"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "&",
                              "type": "int128"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8916,
                                  "type": "int128",
                                  "value": "x"
                                },
                                "id": 9778,
                                "name": "Identifier",
                                "src": "19231:1:38"
                              },
                              {
                                "attributes": {
                                  "hexvalue": "307838",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "token": "number",
                                  "type": "int_const 8",
                                  "value": "0x8"
                                },
                                "id": 9779,
                                "name": "Literal",
                                "src": "19235:3:38"
                              }
                            ],
                            "id": 9780,
                            "name": "BinaryOperation",
                            "src": "19231:7:38"
                          },
                          {
                            "attributes": {
                              "hexvalue": "30",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "token": "number",
                              "type": "int_const 0",
                              "value": "0"
                            },
                            "id": 9781,
                            "name": "Literal",
                            "src": "19241:1:38"
                          }
                        ],
                        "id": 9782,
                        "name": "BinaryOperation",
                        "src": "19231:11:38"
                      },
                      {
                        "children": [
                          {
                            "attributes": {
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "=",
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8935,
                                  "type": "uint256",
                                  "value": "result"
                                },
                                "id": 9783,
                                "name": "Identifier",
                                "src": "19250:6:38"
                              },
                              {
                                "attributes": {
                                  "commonType": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": ">>",
                                  "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": 8935,
                                          "type": "uint256",
                                          "value": "result"
                                        },
                                        "id": 9784,
                                        "name": "Identifier",
                                        "src": "19259:6:38"
                                      },
                                      {
                                        "attributes": {
                                          "hexvalue": "3078313030303030303030303030303030303538423930424642453845374243443644",
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "token": "number",
                                          "type": "int_const 3402...(31 digits omitted)...6749",
                                          "value": "0x100000000000000058B90BFBE8E7BCD6D"
                                        },
                                        "id": 9785,
                                        "name": "Literal",
                                        "src": "19268:35:38"
                                      }
                                    ],
                                    "id": 9786,
                                    "name": "BinaryOperation",
                                    "src": "19259:44:38"
                                  },
                                  {
                                    "attributes": {
                                      "hexvalue": "313238",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "token": "number",
                                      "type": "int_const 128",
                                      "value": "128"
                                    },
                                    "id": 9787,
                                    "name": "Literal",
                                    "src": "19307:3:38"
                                  }
                                ],
                                "id": 9788,
                                "name": "BinaryOperation",
                                "src": "19259:51:38"
                              }
                            ],
                            "id": 9789,
                            "name": "Assignment",
                            "src": "19250:60:38"
                          }
                        ],
                        "id": 9790,
                        "name": "ExpressionStatement",
                        "src": "19250:60:38"
                      }
                    ],
                    "id": 9791,
                    "name": "IfStatement",
                    "src": "19227:83:38"
                  },
                  {
                    "attributes": {},
                    "children": [
                      {
                        "attributes": {
                          "commonType": {
                            "typeIdentifier": "t_int128",
                            "typeString": "int128"
                          },
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": ">",
                          "type": "bool"
                        },
                        "children": [
                          {
                            "attributes": {
                              "commonType": {
                                "typeIdentifier": "t_int128",
                                "typeString": "int128"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "&",
                              "type": "int128"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8916,
                                  "type": "int128",
                                  "value": "x"
                                },
                                "id": 9792,
                                "name": "Identifier",
                                "src": "19320:1:38"
                              },
                              {
                                "attributes": {
                                  "hexvalue": "307834",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "token": "number",
                                  "type": "int_const 4",
                                  "value": "0x4"
                                },
                                "id": 9793,
                                "name": "Literal",
                                "src": "19324:3:38"
                              }
                            ],
                            "id": 9794,
                            "name": "BinaryOperation",
                            "src": "19320:7:38"
                          },
                          {
                            "attributes": {
                              "hexvalue": "30",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "token": "number",
                              "type": "int_const 0",
                              "value": "0"
                            },
                            "id": 9795,
                            "name": "Literal",
                            "src": "19330:1:38"
                          }
                        ],
                        "id": 9796,
                        "name": "BinaryOperation",
                        "src": "19320:11:38"
                      },
                      {
                        "children": [
                          {
                            "attributes": {
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "=",
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8935,
                                  "type": "uint256",
                                  "value": "result"
                                },
                                "id": 9797,
                                "name": "Identifier",
                                "src": "19339:6:38"
                              },
                              {
                                "attributes": {
                                  "commonType": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": ">>",
                                  "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": 8935,
                                          "type": "uint256",
                                          "value": "result"
                                        },
                                        "id": 9798,
                                        "name": "Identifier",
                                        "src": "19348:6:38"
                                      },
                                      {
                                        "attributes": {
                                          "hexvalue": "3078313030303030303030303030303030303243354338354644463437334445364232",
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "token": "number",
                                          "type": "int_const 3402...(31 digits omitted)...4098",
                                          "value": "0x10000000000000002C5C85FDF473DE6B2"
                                        },
                                        "id": 9799,
                                        "name": "Literal",
                                        "src": "19357:35:38"
                                      }
                                    ],
                                    "id": 9800,
                                    "name": "BinaryOperation",
                                    "src": "19348:44:38"
                                  },
                                  {
                                    "attributes": {
                                      "hexvalue": "313238",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "token": "number",
                                      "type": "int_const 128",
                                      "value": "128"
                                    },
                                    "id": 9801,
                                    "name": "Literal",
                                    "src": "19396:3:38"
                                  }
                                ],
                                "id": 9802,
                                "name": "BinaryOperation",
                                "src": "19348:51:38"
                              }
                            ],
                            "id": 9803,
                            "name": "Assignment",
                            "src": "19339:60:38"
                          }
                        ],
                        "id": 9804,
                        "name": "ExpressionStatement",
                        "src": "19339:60:38"
                      }
                    ],
                    "id": 9805,
                    "name": "IfStatement",
                    "src": "19316:83:38"
                  },
                  {
                    "attributes": {},
                    "children": [
                      {
                        "attributes": {
                          "commonType": {
                            "typeIdentifier": "t_int128",
                            "typeString": "int128"
                          },
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": ">",
                          "type": "bool"
                        },
                        "children": [
                          {
                            "attributes": {
                              "commonType": {
                                "typeIdentifier": "t_int128",
                                "typeString": "int128"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "&",
                              "type": "int128"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8916,
                                  "type": "int128",
                                  "value": "x"
                                },
                                "id": 9806,
                                "name": "Identifier",
                                "src": "19409:1:38"
                              },
                              {
                                "attributes": {
                                  "hexvalue": "307832",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "token": "number",
                                  "type": "int_const 2",
                                  "value": "0x2"
                                },
                                "id": 9807,
                                "name": "Literal",
                                "src": "19413:3:38"
                              }
                            ],
                            "id": 9808,
                            "name": "BinaryOperation",
                            "src": "19409:7:38"
                          },
                          {
                            "attributes": {
                              "hexvalue": "30",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "token": "number",
                              "type": "int_const 0",
                              "value": "0"
                            },
                            "id": 9809,
                            "name": "Literal",
                            "src": "19419:1:38"
                          }
                        ],
                        "id": 9810,
                        "name": "BinaryOperation",
                        "src": "19409:11:38"
                      },
                      {
                        "children": [
                          {
                            "attributes": {
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "=",
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8935,
                                  "type": "uint256",
                                  "value": "result"
                                },
                                "id": 9811,
                                "name": "Identifier",
                                "src": "19428:6:38"
                              },
                              {
                                "attributes": {
                                  "commonType": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": ">>",
                                  "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": 8935,
                                          "type": "uint256",
                                          "value": "result"
                                        },
                                        "id": 9812,
                                        "name": "Identifier",
                                        "src": "19437:6:38"
                                      },
                                      {
                                        "attributes": {
                                          "hexvalue": "3078313030303030303030303030303030303136324534324645464133394546333538",
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "token": "number",
                                          "type": "int_const 3402...(31 digits omitted)...2776",
                                          "value": "0x1000000000000000162E42FEFA39EF358"
                                        },
                                        "id": 9813,
                                        "name": "Literal",
                                        "src": "19446:35:38"
                                      }
                                    ],
                                    "id": 9814,
                                    "name": "BinaryOperation",
                                    "src": "19437:44:38"
                                  },
                                  {
                                    "attributes": {
                                      "hexvalue": "313238",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "token": "number",
                                      "type": "int_const 128",
                                      "value": "128"
                                    },
                                    "id": 9815,
                                    "name": "Literal",
                                    "src": "19485:3:38"
                                  }
                                ],
                                "id": 9816,
                                "name": "BinaryOperation",
                                "src": "19437:51:38"
                              }
                            ],
                            "id": 9817,
                            "name": "Assignment",
                            "src": "19428:60:38"
                          }
                        ],
                        "id": 9818,
                        "name": "ExpressionStatement",
                        "src": "19428:60:38"
                      }
                    ],
                    "id": 9819,
                    "name": "IfStatement",
                    "src": "19405:83:38"
                  },
                  {
                    "attributes": {},
                    "children": [
                      {
                        "attributes": {
                          "commonType": {
                            "typeIdentifier": "t_int128",
                            "typeString": "int128"
                          },
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": ">",
                          "type": "bool"
                        },
                        "children": [
                          {
                            "attributes": {
                              "commonType": {
                                "typeIdentifier": "t_int128",
                                "typeString": "int128"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "&",
                              "type": "int128"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8916,
                                  "type": "int128",
                                  "value": "x"
                                },
                                "id": 9820,
                                "name": "Identifier",
                                "src": "19498:1:38"
                              },
                              {
                                "attributes": {
                                  "hexvalue": "307831",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "token": "number",
                                  "type": "int_const 1",
                                  "value": "0x1"
                                },
                                "id": 9821,
                                "name": "Literal",
                                "src": "19502:3:38"
                              }
                            ],
                            "id": 9822,
                            "name": "BinaryOperation",
                            "src": "19498:7:38"
                          },
                          {
                            "attributes": {
                              "hexvalue": "30",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "token": "number",
                              "type": "int_const 0",
                              "value": "0"
                            },
                            "id": 9823,
                            "name": "Literal",
                            "src": "19508:1:38"
                          }
                        ],
                        "id": 9824,
                        "name": "BinaryOperation",
                        "src": "19498:11:38"
                      },
                      {
                        "children": [
                          {
                            "attributes": {
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "=",
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8935,
                                  "type": "uint256",
                                  "value": "result"
                                },
                                "id": 9825,
                                "name": "Identifier",
                                "src": "19517:6:38"
                              },
                              {
                                "attributes": {
                                  "commonType": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": ">>",
                                  "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": 8935,
                                          "type": "uint256",
                                          "value": "result"
                                        },
                                        "id": 9826,
                                        "name": "Identifier",
                                        "src": "19526:6:38"
                                      },
                                      {
                                        "attributes": {
                                          "hexvalue": "3078313030303030303030303030303030303042313732313746374431434637394142",
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "token": "number",
                                          "type": "int_const 3402...(31 digits omitted)...7115",
                                          "value": "0x10000000000000000B17217F7D1CF79AB"
                                        },
                                        "id": 9827,
                                        "name": "Literal",
                                        "src": "19535:35:38"
                                      }
                                    ],
                                    "id": 9828,
                                    "name": "BinaryOperation",
                                    "src": "19526:44:38"
                                  },
                                  {
                                    "attributes": {
                                      "hexvalue": "313238",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "token": "number",
                                      "type": "int_const 128",
                                      "value": "128"
                                    },
                                    "id": 9829,
                                    "name": "Literal",
                                    "src": "19574:3:38"
                                  }
                                ],
                                "id": 9830,
                                "name": "BinaryOperation",
                                "src": "19526:51:38"
                              }
                            ],
                            "id": 9831,
                            "name": "Assignment",
                            "src": "19517:60:38"
                          }
                        ],
                        "id": 9832,
                        "name": "ExpressionStatement",
                        "src": "19517:60:38"
                      }
                    ],
                    "id": 9833,
                    "name": "IfStatement",
                    "src": "19494:83:38"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": ">>=",
                          "type": "uint256"
                        },
                        "children": [
                          {
                            "attributes": {
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 8935,
                              "type": "uint256",
                              "value": "result"
                            },
                            "id": 9834,
                            "name": "Identifier",
                            "src": "19584:6:38"
                          },
                          {
                            "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_int128",
                                      "typeString": "int128"
                                    }
                                  ],
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "type": "type(uint256)"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "name": "uint256"
                                    },
                                    "id": 9835,
                                    "name": "ElementaryTypeName",
                                    "src": "19595:7:38"
                                  }
                                ],
                                "id": 9836,
                                "name": "ElementaryTypeNameExpression",
                                "src": "19595:7:38"
                              },
                              {
                                "attributes": {
                                  "commonType": {
                                    "typeIdentifier": "t_int128",
                                    "typeString": "int128"
                                  },
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": "-",
                                  "type": "int128"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "hexvalue": "3633",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "token": "number",
                                      "type": "int_const 63",
                                      "value": "63"
                                    },
                                    "id": 9837,
                                    "name": "Literal",
                                    "src": "19604:2:38"
                                  },
                                  {
                                    "attributes": {
                                      "isConstant": false,
                                      "isInlineArray": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "type": "int128"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "commonType": {
                                            "typeIdentifier": "t_int128",
                                            "typeString": "int128"
                                          },
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "operator": ">>",
                                          "type": "int128"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 8916,
                                              "type": "int128",
                                              "value": "x"
                                            },
                                            "id": 9838,
                                            "name": "Identifier",
                                            "src": "19610:1:38"
                                          },
                                          {
                                            "attributes": {
                                              "hexvalue": "3634",
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "lValueRequested": false,
                                              "token": "number",
                                              "type": "int_const 64",
                                              "value": "64"
                                            },
                                            "id": 9839,
                                            "name": "Literal",
                                            "src": "19615:2:38"
                                          }
                                        ],
                                        "id": 9840,
                                        "name": "BinaryOperation",
                                        "src": "19610:7:38"
                                      }
                                    ],
                                    "id": 9841,
                                    "name": "TupleExpression",
                                    "src": "19609:9:38"
                                  }
                                ],
                                "id": 9842,
                                "name": "BinaryOperation",
                                "src": "19604:14:38"
                              }
                            ],
                            "id": 9843,
                            "name": "FunctionCall",
                            "src": "19595:24:38"
                          }
                        ],
                        "id": 9844,
                        "name": "Assignment",
                        "src": "19584:35:38"
                      }
                    ],
                    "id": 9845,
                    "name": "ExpressionStatement",
                    "src": "19584:35:38"
                  },
                  {
                    "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"
                                }
                              ],
                              "overloadedDeclarations": [
                                4294967278,
                                4294967278
                              ],
                              "referencedDeclaration": 4294967278,
                              "type": "function (bool) pure",
                              "value": "require"
                            },
                            "id": 9846,
                            "name": "Identifier",
                            "src": "19625:7:38"
                          },
                          {
                            "attributes": {
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "<=",
                              "type": "bool"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8935,
                                  "type": "uint256",
                                  "value": "result"
                                },
                                "id": 9847,
                                "name": "Identifier",
                                "src": "19634:6:38"
                              },
                              {
                                "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_int128",
                                          "typeString": "int128"
                                        }
                                      ],
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "type": "type(uint256)"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "name": "uint256"
                                        },
                                        "id": 9848,
                                        "name": "ElementaryTypeName",
                                        "src": "19644:7:38"
                                      }
                                    ],
                                    "id": 9849,
                                    "name": "ElementaryTypeNameExpression",
                                    "src": "19644:7:38"
                                  },
                                  {
                                    "attributes": {
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 7853,
                                      "type": "int128",
                                      "value": "MAX_64x64"
                                    },
                                    "id": 9850,
                                    "name": "Identifier",
                                    "src": "19653:9:38"
                                  }
                                ],
                                "id": 9851,
                                "name": "FunctionCall",
                                "src": "19644:19:38"
                              }
                            ],
                            "id": 9852,
                            "name": "BinaryOperation",
                            "src": "19634:29:38"
                          }
                        ],
                        "id": 9853,
                        "name": "FunctionCall",
                        "src": "19625:39:38"
                      }
                    ],
                    "id": 9854,
                    "name": "ExpressionStatement",
                    "src": "19625:39:38"
                  },
                  {
                    "attributes": {
                      "functionReturnParameters": 8920
                    },
                    "children": [
                      {
                        "attributes": {
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "tryCall": false,
                          "type": "int128",
                          "type_conversion": true
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "type": "type(int128)"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "name": "int128"
                                },
                                "id": 9855,
                                "name": "ElementaryTypeName",
                                "src": "19678:6:38"
                              }
                            ],
                            "id": 9856,
                            "name": "ElementaryTypeNameExpression",
                            "src": "19678:6:38"
                          },
                          {
                            "attributes": {
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 8935,
                              "type": "uint256",
                              "value": "result"
                            },
                            "id": 9857,
                            "name": "Identifier",
                            "src": "19686:6:38"
                          }
                        ],
                        "id": 9858,
                        "name": "FunctionCall",
                        "src": "19678:15:38"
                      }
                    ],
                    "id": 9859,
                    "name": "Return",
                    "src": "19671:22:38"
                  }
                ],
                "id": 9860,
                "name": "Block",
                "src": "13231:6467:38"
              }
            ],
            "id": 9861,
            "name": "FunctionDefinition",
            "src": "13174:6524:38"
          },
          {
            "attributes": {
              "implemented": true,
              "isConstructor": false,
              "kind": "function",
              "modifiers": [
                null
              ],
              "name": "exp",
              "scope": 10621,
              "stateMutability": "pure",
              "virtual": false,
              "visibility": "internal"
            },
            "children": [
              {
                "attributes": {
                  "text": " Calculate natural exponent of x.  Revert on overflow.\n @param x signed 64.64-bit fixed point number\n @return signed 64.64-bit fixed point number"
                },
                "id": 9862,
                "name": "StructuredDocumentation",
                "src": "19702:172:38"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "x",
                      "scope": 9897,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "int128",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "int128",
                          "type": "int128"
                        },
                        "id": 9863,
                        "name": "ElementaryTypeName",
                        "src": "19891:6:38"
                      }
                    ],
                    "id": 9864,
                    "name": "VariableDeclaration",
                    "src": "19891:8:38"
                  }
                ],
                "id": 9865,
                "name": "ParameterList",
                "src": "19890:10:38"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "",
                      "scope": 9897,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "int128",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "int128",
                          "type": "int128"
                        },
                        "id": 9866,
                        "name": "ElementaryTypeName",
                        "src": "19924:6:38"
                      }
                    ],
                    "id": 9867,
                    "name": "VariableDeclaration",
                    "src": "19924:6:38"
                  }
                ],
                "id": 9868,
                "name": "ParameterList",
                "src": "19923:8:38"
              },
              {
                "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"
                                }
                              ],
                              "overloadedDeclarations": [
                                4294967278,
                                4294967278
                              ],
                              "referencedDeclaration": 4294967278,
                              "type": "function (bool) pure",
                              "value": "require"
                            },
                            "id": 9869,
                            "name": "Identifier",
                            "src": "19938:7:38"
                          },
                          {
                            "attributes": {
                              "commonType": {
                                "typeIdentifier": "t_int128",
                                "typeString": "int128"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "<",
                              "type": "bool"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 9864,
                                  "type": "int128",
                                  "value": "x"
                                },
                                "id": 9870,
                                "name": "Identifier",
                                "src": "19947:1:38"
                              },
                              {
                                "attributes": {
                                  "hexvalue": "3078343030303030303030303030303030303030",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "token": "number",
                                  "type": "int_const 1180591620717411303424",
                                  "value": "0x400000000000000000"
                                },
                                "id": 9871,
                                "name": "Literal",
                                "src": "19951:20:38"
                              }
                            ],
                            "id": 9872,
                            "name": "BinaryOperation",
                            "src": "19947:24:38"
                          }
                        ],
                        "id": 9873,
                        "name": "FunctionCall",
                        "src": "19938:34:38"
                      }
                    ],
                    "id": 9874,
                    "name": "ExpressionStatement",
                    "src": "19938:34:38"
                  },
                  {
                    "attributes": {},
                    "children": [
                      {
                        "attributes": {
                          "commonType": {
                            "typeIdentifier": "t_int128",
                            "typeString": "int128"
                          },
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "<",
                          "type": "bool"
                        },
                        "children": [
                          {
                            "attributes": {
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 9864,
                              "type": "int128",
                              "value": "x"
                            },
                            "id": 9875,
                            "name": "Identifier",
                            "src": "19995:1:38"
                          },
                          {
                            "attributes": {
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "operator": "-",
                              "prefix": true,
                              "type": "int_const -1180591620717411303424"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "hexvalue": "3078343030303030303030303030303030303030",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "token": "number",
                                  "type": "int_const 1180591620717411303424",
                                  "value": "0x400000000000000000"
                                },
                                "id": 9876,
                                "name": "Literal",
                                "src": "20000:20:38"
                              }
                            ],
                            "id": 9877,
                            "name": "UnaryOperation",
                            "src": "19999:21:38"
                          }
                        ],
                        "id": 9878,
                        "name": "BinaryOperation",
                        "src": "19995:25:38"
                      },
                      {
                        "attributes": {
                          "functionReturnParameters": 9868
                        },
                        "children": [
                          {
                            "attributes": {
                              "hexvalue": "30",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "token": "number",
                              "type": "int_const 0",
                              "value": "0"
                            },
                            "id": 9879,
                            "name": "Literal",
                            "src": "20029:1:38"
                          }
                        ],
                        "id": 9880,
                        "name": "Return",
                        "src": "20022:8:38"
                      }
                    ],
                    "id": 9881,
                    "name": "IfStatement",
                    "src": "19991:39:38"
                  },
                  {
                    "attributes": {
                      "functionReturnParameters": 9868
                    },
                    "children": [
                      {
                        "attributes": {
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "tryCall": false,
                          "type": "int128",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_int128",
                                  "typeString": "int128"
                                }
                              ],
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 9861,
                              "type": "function (int128) pure returns (int128)",
                              "value": "exp_2"
                            },
                            "id": 9882,
                            "name": "Identifier",
                            "src": "20057:5:38"
                          },
                          {
                            "attributes": {
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "isStructConstructorCall": false,
                              "lValueRequested": false,
                              "names": [
                                null
                              ],
                              "tryCall": false,
                              "type": "int128",
                              "type_conversion": true
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_int256",
                                      "typeString": "int256"
                                    }
                                  ],
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "type": "type(int128)"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "name": "int128"
                                    },
                                    "id": 9883,
                                    "name": "ElementaryTypeName",
                                    "src": "20073:6:38"
                                  }
                                ],
                                "id": 9884,
                                "name": "ElementaryTypeNameExpression",
                                "src": "20073:6:38"
                              },
                              {
                                "attributes": {
                                  "commonType": {
                                    "typeIdentifier": "t_int256",
                                    "typeString": "int256"
                                  },
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": ">>",
                                  "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_int128",
                                                  "typeString": "int128"
                                                }
                                              ],
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "lValueRequested": false,
                                              "type": "type(int256)"
                                            },
                                            "children": [
                                              {
                                                "attributes": {
                                                  "name": "int256"
                                                },
                                                "id": 9885,
                                                "name": "ElementaryTypeName",
                                                "src": "20081:6:38"
                                              }
                                            ],
                                            "id": 9886,
                                            "name": "ElementaryTypeNameExpression",
                                            "src": "20081:6:38"
                                          },
                                          {
                                            "attributes": {
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 9864,
                                              "type": "int128",
                                              "value": "x"
                                            },
                                            "id": 9887,
                                            "name": "Identifier",
                                            "src": "20089:1:38"
                                          }
                                        ],
                                        "id": 9888,
                                        "name": "FunctionCall",
                                        "src": "20081:10:38"
                                      },
                                      {
                                        "attributes": {
                                          "hexvalue": "3078313731353437363532423832464531373737443046464441304432334137443132",
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "token": "number",
                                          "type": "int_const 4909...(31 digits omitted)...7522",
                                          "value": "0x171547652B82FE1777D0FFDA0D23A7D12"
                                        },
                                        "id": 9889,
                                        "name": "Literal",
                                        "src": "20094:35:38"
                                      }
                                    ],
                                    "id": 9890,
                                    "name": "BinaryOperation",
                                    "src": "20081:48:38"
                                  },
                                  {
                                    "attributes": {
                                      "hexvalue": "313238",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "token": "number",
                                      "type": "int_const 128",
                                      "value": "128"
                                    },
                                    "id": 9891,
                                    "name": "Literal",
                                    "src": "20133:3:38"
                                  }
                                ],
                                "id": 9892,
                                "name": "BinaryOperation",
                                "src": "20081:55:38"
                              }
                            ],
                            "id": 9893,
                            "name": "FunctionCall",
                            "src": "20073:64:38"
                          }
                        ],
                        "id": 9894,
                        "name": "FunctionCall",
                        "src": "20057:81:38"
                      }
                    ],
                    "id": 9895,
                    "name": "Return",
                    "src": "20050:88:38"
                  }
                ],
                "id": 9896,
                "name": "Block",
                "src": "19932:211:38"
              }
            ],
            "id": 9897,
            "name": "FunctionDefinition",
            "src": "19877:266:38"
          },
          {
            "attributes": {
              "implemented": true,
              "isConstructor": false,
              "kind": "function",
              "modifiers": [
                null
              ],
              "name": "divuu",
              "scope": 10621,
              "stateMutability": "pure",
              "virtual": false,
              "visibility": "private"
            },
            "children": [
              {
                "attributes": {
                  "text": " Calculate x / y rounding towards zero, where x and y are unsigned 256-bit\n integer numbers.  Revert on overflow or when y is zero.\n @param x unsigned 256-bit integer number\n @param y unsigned 256-bit integer number\n @return unsigned 64.64-bit fixed point number"
                },
                "id": 9898,
                "name": "StructuredDocumentation",
                "src": "20147:297:38"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "x",
                      "scope": 10126,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint256",
                          "type": "uint256"
                        },
                        "id": 9899,
                        "name": "ElementaryTypeName",
                        "src": "20463:7:38"
                      }
                    ],
                    "id": 9900,
                    "name": "VariableDeclaration",
                    "src": "20463:9:38"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "y",
                      "scope": 10126,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint256",
                          "type": "uint256"
                        },
                        "id": 9901,
                        "name": "ElementaryTypeName",
                        "src": "20474:7:38"
                      }
                    ],
                    "id": 9902,
                    "name": "VariableDeclaration",
                    "src": "20474:9:38"
                  }
                ],
                "id": 9903,
                "name": "ParameterList",
                "src": "20462:22:38"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "",
                      "scope": 10126,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint128",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint128",
                          "type": "uint128"
                        },
                        "id": 9904,
                        "name": "ElementaryTypeName",
                        "src": "20507:7:38"
                      }
                    ],
                    "id": 9905,
                    "name": "VariableDeclaration",
                    "src": "20507:7:38"
                  }
                ],
                "id": 9906,
                "name": "ParameterList",
                "src": "20506:9:38"
              },
              {
                "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"
                                }
                              ],
                              "overloadedDeclarations": [
                                4294967278,
                                4294967278
                              ],
                              "referencedDeclaration": 4294967278,
                              "type": "function (bool) pure",
                              "value": "require"
                            },
                            "id": 9907,
                            "name": "Identifier",
                            "src": "20522:7:38"
                          },
                          {
                            "attributes": {
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "!=",
                              "type": "bool"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 9902,
                                  "type": "uint256",
                                  "value": "y"
                                },
                                "id": 9908,
                                "name": "Identifier",
                                "src": "20531:1:38"
                              },
                              {
                                "attributes": {
                                  "hexvalue": "30",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "token": "number",
                                  "type": "int_const 0",
                                  "value": "0"
                                },
                                "id": 9909,
                                "name": "Literal",
                                "src": "20536:1:38"
                              }
                            ],
                            "id": 9910,
                            "name": "BinaryOperation",
                            "src": "20531:6:38"
                          }
                        ],
                        "id": 9911,
                        "name": "FunctionCall",
                        "src": "20522:16:38"
                      }
                    ],
                    "id": 9912,
                    "name": "ExpressionStatement",
                    "src": "20522:16:38"
                  },
                  {
                    "attributes": {
                      "assignments": [
                        9914
                      ]
                    },
                    "children": [
                      {
                        "attributes": {
                          "constant": false,
                          "mutability": "mutable",
                          "name": "result",
                          "scope": 10125,
                          "stateVariable": false,
                          "storageLocation": "default",
                          "type": "uint256",
                          "visibility": "internal"
                        },
                        "children": [
                          {
                            "attributes": {
                              "name": "uint256",
                              "type": "uint256"
                            },
                            "id": 9913,
                            "name": "ElementaryTypeName",
                            "src": "20545:7:38"
                          }
                        ],
                        "id": 9914,
                        "name": "VariableDeclaration",
                        "src": "20545:14:38"
                      }
                    ],
                    "id": 9915,
                    "name": "VariableDeclarationStatement",
                    "src": "20545:14:38"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "<=",
                          "type": "bool"
                        },
                        "children": [
                          {
                            "attributes": {
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 9900,
                              "type": "uint256",
                              "value": "x"
                            },
                            "id": 9916,
                            "name": "Identifier",
                            "src": "20570:1:38"
                          },
                          {
                            "attributes": {
                              "hexvalue": "3078464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "token": "number",
                              "type": "int_const 6277...(50 digits omitted)...2895",
                              "value": "0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
                            },
                            "id": 9917,
                            "name": "Literal",
                            "src": "20575:50:38"
                          }
                        ],
                        "id": 9918,
                        "name": "BinaryOperation",
                        "src": "20570:55:38"
                      },
                      {
                        "children": [
                          {
                            "attributes": {
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "=",
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 9914,
                                  "type": "uint256",
                                  "value": "result"
                                },
                                "id": 9919,
                                "name": "Identifier",
                                "src": "20633:6:38"
                              },
                              {
                                "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": 9900,
                                              "type": "uint256",
                                              "value": "x"
                                            },
                                            "id": 9920,
                                            "name": "Identifier",
                                            "src": "20643:1:38"
                                          },
                                          {
                                            "attributes": {
                                              "hexvalue": "3634",
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "lValueRequested": false,
                                              "token": "number",
                                              "type": "int_const 64",
                                              "value": "64"
                                            },
                                            "id": 9921,
                                            "name": "Literal",
                                            "src": "20648:2:38"
                                          }
                                        ],
                                        "id": 9922,
                                        "name": "BinaryOperation",
                                        "src": "20643:7:38"
                                      }
                                    ],
                                    "id": 9923,
                                    "name": "TupleExpression",
                                    "src": "20642:9:38"
                                  },
                                  {
                                    "attributes": {
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 9902,
                                      "type": "uint256",
                                      "value": "y"
                                    },
                                    "id": 9924,
                                    "name": "Identifier",
                                    "src": "20654:1:38"
                                  }
                                ],
                                "id": 9925,
                                "name": "BinaryOperation",
                                "src": "20642:13:38"
                              }
                            ],
                            "id": 9926,
                            "name": "Assignment",
                            "src": "20633:22:38"
                          }
                        ],
                        "id": 9927,
                        "name": "ExpressionStatement",
                        "src": "20633:22:38"
                      },
                      {
                        "children": [
                          {
                            "attributes": {
                              "assignments": [
                                9929
                              ]
                            },
                            "children": [
                              {
                                "attributes": {
                                  "constant": false,
                                  "mutability": "mutable",
                                  "name": "msb",
                                  "scope": 10112,
                                  "stateVariable": false,
                                  "storageLocation": "default",
                                  "type": "uint256",
                                  "visibility": "internal"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "name": "uint256",
                                      "type": "uint256"
                                    },
                                    "id": 9928,
                                    "name": "ElementaryTypeName",
                                    "src": "20674:7:38"
                                  }
                                ],
                                "id": 9929,
                                "name": "VariableDeclaration",
                                "src": "20674:11:38"
                              },
                              {
                                "attributes": {
                                  "hexvalue": "313932",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "token": "number",
                                  "type": "int_const 192",
                                  "value": "192"
                                },
                                "id": 9930,
                                "name": "Literal",
                                "src": "20688:3:38"
                              }
                            ],
                            "id": 9931,
                            "name": "VariableDeclarationStatement",
                            "src": "20674:17:38"
                          },
                          {
                            "attributes": {
                              "assignments": [
                                9933
                              ]
                            },
                            "children": [
                              {
                                "attributes": {
                                  "constant": false,
                                  "mutability": "mutable",
                                  "name": "xc",
                                  "scope": 10112,
                                  "stateVariable": false,
                                  "storageLocation": "default",
                                  "type": "uint256",
                                  "visibility": "internal"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "name": "uint256",
                                      "type": "uint256"
                                    },
                                    "id": 9932,
                                    "name": "ElementaryTypeName",
                                    "src": "20699:7:38"
                                  }
                                ],
                                "id": 9933,
                                "name": "VariableDeclaration",
                                "src": "20699:10:38"
                              },
                              {
                                "attributes": {
                                  "commonType": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": ">>",
                                  "type": "uint256"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 9900,
                                      "type": "uint256",
                                      "value": "x"
                                    },
                                    "id": 9934,
                                    "name": "Identifier",
                                    "src": "20712:1:38"
                                  },
                                  {
                                    "attributes": {
                                      "hexvalue": "313932",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "token": "number",
                                      "type": "int_const 192",
                                      "value": "192"
                                    },
                                    "id": 9935,
                                    "name": "Literal",
                                    "src": "20717:3:38"
                                  }
                                ],
                                "id": 9936,
                                "name": "BinaryOperation",
                                "src": "20712:8:38"
                              }
                            ],
                            "id": 9937,
                            "name": "VariableDeclarationStatement",
                            "src": "20699:21:38"
                          },
                          {
                            "attributes": {},
                            "children": [
                              {
                                "attributes": {
                                  "commonType": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": ">=",
                                  "type": "bool"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 9933,
                                      "type": "uint256",
                                      "value": "xc"
                                    },
                                    "id": 9938,
                                    "name": "Identifier",
                                    "src": "20732:2:38"
                                  },
                                  {
                                    "attributes": {
                                      "hexvalue": "3078313030303030303030",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "token": "number",
                                      "type": "int_const 4294967296",
                                      "value": "0x100000000"
                                    },
                                    "id": 9939,
                                    "name": "Literal",
                                    "src": "20738:11:38"
                                  }
                                ],
                                "id": 9940,
                                "name": "BinaryOperation",
                                "src": "20732:17:38"
                              },
                              {
                                "children": [
                                  {
                                    "children": [
                                      {
                                        "attributes": {
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "operator": ">>=",
                                          "type": "uint256"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 9933,
                                              "type": "uint256",
                                              "value": "xc"
                                            },
                                            "id": 9941,
                                            "name": "Identifier",
                                            "src": "20753:2:38"
                                          },
                                          {
                                            "attributes": {
                                              "hexvalue": "3332",
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "lValueRequested": false,
                                              "token": "number",
                                              "type": "int_const 32",
                                              "value": "32"
                                            },
                                            "id": 9942,
                                            "name": "Literal",
                                            "src": "20760:2:38"
                                          }
                                        ],
                                        "id": 9943,
                                        "name": "Assignment",
                                        "src": "20753:9:38"
                                      }
                                    ],
                                    "id": 9944,
                                    "name": "ExpressionStatement",
                                    "src": "20753:9:38"
                                  },
                                  {
                                    "children": [
                                      {
                                        "attributes": {
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "operator": "+=",
                                          "type": "uint256"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 9929,
                                              "type": "uint256",
                                              "value": "msb"
                                            },
                                            "id": 9945,
                                            "name": "Identifier",
                                            "src": "20764:3:38"
                                          },
                                          {
                                            "attributes": {
                                              "hexvalue": "3332",
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "lValueRequested": false,
                                              "token": "number",
                                              "type": "int_const 32",
                                              "value": "32"
                                            },
                                            "id": 9946,
                                            "name": "Literal",
                                            "src": "20771:2:38"
                                          }
                                        ],
                                        "id": 9947,
                                        "name": "Assignment",
                                        "src": "20764:9:38"
                                      }
                                    ],
                                    "id": 9948,
                                    "name": "ExpressionStatement",
                                    "src": "20764:9:38"
                                  }
                                ],
                                "id": 9949,
                                "name": "Block",
                                "src": "20751:25:38"
                              }
                            ],
                            "id": 9950,
                            "name": "IfStatement",
                            "src": "20728:48:38"
                          },
                          {
                            "attributes": {},
                            "children": [
                              {
                                "attributes": {
                                  "commonType": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": ">=",
                                  "type": "bool"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 9933,
                                      "type": "uint256",
                                      "value": "xc"
                                    },
                                    "id": 9951,
                                    "name": "Identifier",
                                    "src": "20787:2:38"
                                  },
                                  {
                                    "attributes": {
                                      "hexvalue": "30783130303030",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "token": "number",
                                      "type": "int_const 65536",
                                      "value": "0x10000"
                                    },
                                    "id": 9952,
                                    "name": "Literal",
                                    "src": "20793:7:38"
                                  }
                                ],
                                "id": 9953,
                                "name": "BinaryOperation",
                                "src": "20787:13:38"
                              },
                              {
                                "children": [
                                  {
                                    "children": [
                                      {
                                        "attributes": {
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "operator": ">>=",
                                          "type": "uint256"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 9933,
                                              "type": "uint256",
                                              "value": "xc"
                                            },
                                            "id": 9954,
                                            "name": "Identifier",
                                            "src": "20804:2:38"
                                          },
                                          {
                                            "attributes": {
                                              "hexvalue": "3136",
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "lValueRequested": false,
                                              "token": "number",
                                              "type": "int_const 16",
                                              "value": "16"
                                            },
                                            "id": 9955,
                                            "name": "Literal",
                                            "src": "20811:2:38"
                                          }
                                        ],
                                        "id": 9956,
                                        "name": "Assignment",
                                        "src": "20804:9:38"
                                      }
                                    ],
                                    "id": 9957,
                                    "name": "ExpressionStatement",
                                    "src": "20804:9:38"
                                  },
                                  {
                                    "children": [
                                      {
                                        "attributes": {
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "operator": "+=",
                                          "type": "uint256"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 9929,
                                              "type": "uint256",
                                              "value": "msb"
                                            },
                                            "id": 9958,
                                            "name": "Identifier",
                                            "src": "20815:3:38"
                                          },
                                          {
                                            "attributes": {
                                              "hexvalue": "3136",
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "lValueRequested": false,
                                              "token": "number",
                                              "type": "int_const 16",
                                              "value": "16"
                                            },
                                            "id": 9959,
                                            "name": "Literal",
                                            "src": "20822:2:38"
                                          }
                                        ],
                                        "id": 9960,
                                        "name": "Assignment",
                                        "src": "20815:9:38"
                                      }
                                    ],
                                    "id": 9961,
                                    "name": "ExpressionStatement",
                                    "src": "20815:9:38"
                                  }
                                ],
                                "id": 9962,
                                "name": "Block",
                                "src": "20802:25:38"
                              }
                            ],
                            "id": 9963,
                            "name": "IfStatement",
                            "src": "20783:44:38"
                          },
                          {
                            "attributes": {},
                            "children": [
                              {
                                "attributes": {
                                  "commonType": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": ">=",
                                  "type": "bool"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 9933,
                                      "type": "uint256",
                                      "value": "xc"
                                    },
                                    "id": 9964,
                                    "name": "Identifier",
                                    "src": "20838:2:38"
                                  },
                                  {
                                    "attributes": {
                                      "hexvalue": "3078313030",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "token": "number",
                                      "type": "int_const 256",
                                      "value": "0x100"
                                    },
                                    "id": 9965,
                                    "name": "Literal",
                                    "src": "20844:5:38"
                                  }
                                ],
                                "id": 9966,
                                "name": "BinaryOperation",
                                "src": "20838:11:38"
                              },
                              {
                                "children": [
                                  {
                                    "children": [
                                      {
                                        "attributes": {
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "operator": ">>=",
                                          "type": "uint256"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 9933,
                                              "type": "uint256",
                                              "value": "xc"
                                            },
                                            "id": 9967,
                                            "name": "Identifier",
                                            "src": "20853:2:38"
                                          },
                                          {
                                            "attributes": {
                                              "hexvalue": "38",
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "lValueRequested": false,
                                              "token": "number",
                                              "type": "int_const 8",
                                              "value": "8"
                                            },
                                            "id": 9968,
                                            "name": "Literal",
                                            "src": "20860:1:38"
                                          }
                                        ],
                                        "id": 9969,
                                        "name": "Assignment",
                                        "src": "20853:8:38"
                                      }
                                    ],
                                    "id": 9970,
                                    "name": "ExpressionStatement",
                                    "src": "20853:8:38"
                                  },
                                  {
                                    "children": [
                                      {
                                        "attributes": {
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "operator": "+=",
                                          "type": "uint256"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 9929,
                                              "type": "uint256",
                                              "value": "msb"
                                            },
                                            "id": 9971,
                                            "name": "Identifier",
                                            "src": "20863:3:38"
                                          },
                                          {
                                            "attributes": {
                                              "hexvalue": "38",
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "lValueRequested": false,
                                              "token": "number",
                                              "type": "int_const 8",
                                              "value": "8"
                                            },
                                            "id": 9972,
                                            "name": "Literal",
                                            "src": "20870:1:38"
                                          }
                                        ],
                                        "id": 9973,
                                        "name": "Assignment",
                                        "src": "20863:8:38"
                                      }
                                    ],
                                    "id": 9974,
                                    "name": "ExpressionStatement",
                                    "src": "20863:8:38"
                                  }
                                ],
                                "id": 9975,
                                "name": "Block",
                                "src": "20851:23:38"
                              }
                            ],
                            "id": 9976,
                            "name": "IfStatement",
                            "src": "20834:40:38"
                          },
                          {
                            "attributes": {},
                            "children": [
                              {
                                "attributes": {
                                  "commonType": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": ">=",
                                  "type": "bool"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 9933,
                                      "type": "uint256",
                                      "value": "xc"
                                    },
                                    "id": 9977,
                                    "name": "Identifier",
                                    "src": "20885:2:38"
                                  },
                                  {
                                    "attributes": {
                                      "hexvalue": "30783130",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "token": "number",
                                      "type": "int_const 16",
                                      "value": "0x10"
                                    },
                                    "id": 9978,
                                    "name": "Literal",
                                    "src": "20891:4:38"
                                  }
                                ],
                                "id": 9979,
                                "name": "BinaryOperation",
                                "src": "20885:10:38"
                              },
                              {
                                "children": [
                                  {
                                    "children": [
                                      {
                                        "attributes": {
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "operator": ">>=",
                                          "type": "uint256"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 9933,
                                              "type": "uint256",
                                              "value": "xc"
                                            },
                                            "id": 9980,
                                            "name": "Identifier",
                                            "src": "20899:2:38"
                                          },
                                          {
                                            "attributes": {
                                              "hexvalue": "34",
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "lValueRequested": false,
                                              "token": "number",
                                              "type": "int_const 4",
                                              "value": "4"
                                            },
                                            "id": 9981,
                                            "name": "Literal",
                                            "src": "20906:1:38"
                                          }
                                        ],
                                        "id": 9982,
                                        "name": "Assignment",
                                        "src": "20899:8:38"
                                      }
                                    ],
                                    "id": 9983,
                                    "name": "ExpressionStatement",
                                    "src": "20899:8:38"
                                  },
                                  {
                                    "children": [
                                      {
                                        "attributes": {
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "operator": "+=",
                                          "type": "uint256"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 9929,
                                              "type": "uint256",
                                              "value": "msb"
                                            },
                                            "id": 9984,
                                            "name": "Identifier",
                                            "src": "20909:3:38"
                                          },
                                          {
                                            "attributes": {
                                              "hexvalue": "34",
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "lValueRequested": false,
                                              "token": "number",
                                              "type": "int_const 4",
                                              "value": "4"
                                            },
                                            "id": 9985,
                                            "name": "Literal",
                                            "src": "20916:1:38"
                                          }
                                        ],
                                        "id": 9986,
                                        "name": "Assignment",
                                        "src": "20909:8:38"
                                      }
                                    ],
                                    "id": 9987,
                                    "name": "ExpressionStatement",
                                    "src": "20909:8:38"
                                  }
                                ],
                                "id": 9988,
                                "name": "Block",
                                "src": "20897:23:38"
                              }
                            ],
                            "id": 9989,
                            "name": "IfStatement",
                            "src": "20881:39:38"
                          },
                          {
                            "attributes": {},
                            "children": [
                              {
                                "attributes": {
                                  "commonType": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": ">=",
                                  "type": "bool"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 9933,
                                      "type": "uint256",
                                      "value": "xc"
                                    },
                                    "id": 9990,
                                    "name": "Identifier",
                                    "src": "20931:2:38"
                                  },
                                  {
                                    "attributes": {
                                      "hexvalue": "307834",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "token": "number",
                                      "type": "int_const 4",
                                      "value": "0x4"
                                    },
                                    "id": 9991,
                                    "name": "Literal",
                                    "src": "20937:3:38"
                                  }
                                ],
                                "id": 9992,
                                "name": "BinaryOperation",
                                "src": "20931:9:38"
                              },
                              {
                                "children": [
                                  {
                                    "children": [
                                      {
                                        "attributes": {
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "operator": ">>=",
                                          "type": "uint256"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 9933,
                                              "type": "uint256",
                                              "value": "xc"
                                            },
                                            "id": 9993,
                                            "name": "Identifier",
                                            "src": "20944:2:38"
                                          },
                                          {
                                            "attributes": {
                                              "hexvalue": "32",
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "lValueRequested": false,
                                              "token": "number",
                                              "type": "int_const 2",
                                              "value": "2"
                                            },
                                            "id": 9994,
                                            "name": "Literal",
                                            "src": "20951:1:38"
                                          }
                                        ],
                                        "id": 9995,
                                        "name": "Assignment",
                                        "src": "20944:8:38"
                                      }
                                    ],
                                    "id": 9996,
                                    "name": "ExpressionStatement",
                                    "src": "20944:8:38"
                                  },
                                  {
                                    "children": [
                                      {
                                        "attributes": {
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "operator": "+=",
                                          "type": "uint256"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 9929,
                                              "type": "uint256",
                                              "value": "msb"
                                            },
                                            "id": 9997,
                                            "name": "Identifier",
                                            "src": "20954:3:38"
                                          },
                                          {
                                            "attributes": {
                                              "hexvalue": "32",
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "lValueRequested": false,
                                              "token": "number",
                                              "type": "int_const 2",
                                              "value": "2"
                                            },
                                            "id": 9998,
                                            "name": "Literal",
                                            "src": "20961:1:38"
                                          }
                                        ],
                                        "id": 9999,
                                        "name": "Assignment",
                                        "src": "20954:8:38"
                                      }
                                    ],
                                    "id": 10000,
                                    "name": "ExpressionStatement",
                                    "src": "20954:8:38"
                                  }
                                ],
                                "id": 10001,
                                "name": "Block",
                                "src": "20942:23:38"
                              }
                            ],
                            "id": 10002,
                            "name": "IfStatement",
                            "src": "20927:38:38"
                          },
                          {
                            "attributes": {},
                            "children": [
                              {
                                "attributes": {
                                  "commonType": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": ">=",
                                  "type": "bool"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 9933,
                                      "type": "uint256",
                                      "value": "xc"
                                    },
                                    "id": 10003,
                                    "name": "Identifier",
                                    "src": "20976:2:38"
                                  },
                                  {
                                    "attributes": {
                                      "hexvalue": "307832",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "token": "number",
                                      "type": "int_const 2",
                                      "value": "0x2"
                                    },
                                    "id": 10004,
                                    "name": "Literal",
                                    "src": "20982:3:38"
                                  }
                                ],
                                "id": 10005,
                                "name": "BinaryOperation",
                                "src": "20976:9:38"
                              },
                              {
                                "children": [
                                  {
                                    "attributes": {
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "operator": "+=",
                                      "type": "uint256"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 9929,
                                          "type": "uint256",
                                          "value": "msb"
                                        },
                                        "id": 10006,
                                        "name": "Identifier",
                                        "src": "20987:3:38"
                                      },
                                      {
                                        "attributes": {
                                          "hexvalue": "31",
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "token": "number",
                                          "type": "int_const 1",
                                          "value": "1"
                                        },
                                        "id": 10007,
                                        "name": "Literal",
                                        "src": "20994:1:38"
                                      }
                                    ],
                                    "id": 10008,
                                    "name": "Assignment",
                                    "src": "20987:8:38"
                                  }
                                ],
                                "id": 10009,
                                "name": "ExpressionStatement",
                                "src": "20987:8:38"
                              }
                            ],
                            "id": 10010,
                            "name": "IfStatement",
                            "src": "20972:23:38"
                          },
                          {
                            "children": [
                              {
                                "attributes": {
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": "=",
                                  "type": "uint256"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 9914,
                                      "type": "uint256",
                                      "value": "result"
                                    },
                                    "id": 10011,
                                    "name": "Identifier",
                                    "src": "21036:6:38"
                                  },
                                  {
                                    "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": 9900,
                                                  "type": "uint256",
                                                  "value": "x"
                                                },
                                                "id": 10012,
                                                "name": "Identifier",
                                                "src": "21046:1:38"
                                              },
                                              {
                                                "attributes": {
                                                  "commonType": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                  },
                                                  "isConstant": false,
                                                  "isLValue": false,
                                                  "isPure": false,
                                                  "lValueRequested": false,
                                                  "operator": "-",
                                                  "type": "uint256"
                                                },
                                                "children": [
                                                  {
                                                    "attributes": {
                                                      "hexvalue": "323535",
                                                      "isConstant": false,
                                                      "isLValue": false,
                                                      "isPure": true,
                                                      "lValueRequested": false,
                                                      "token": "number",
                                                      "type": "int_const 255",
                                                      "value": "255"
                                                    },
                                                    "id": 10013,
                                                    "name": "Literal",
                                                    "src": "21051:3:38"
                                                  },
                                                  {
                                                    "attributes": {
                                                      "overloadedDeclarations": [
                                                        null
                                                      ],
                                                      "referencedDeclaration": 9929,
                                                      "type": "uint256",
                                                      "value": "msb"
                                                    },
                                                    "id": 10014,
                                                    "name": "Identifier",
                                                    "src": "21057:3:38"
                                                  }
                                                ],
                                                "id": 10015,
                                                "name": "BinaryOperation",
                                                "src": "21051:9:38"
                                              }
                                            ],
                                            "id": 10016,
                                            "name": "BinaryOperation",
                                            "src": "21046:14:38"
                                          }
                                        ],
                                        "id": 10017,
                                        "name": "TupleExpression",
                                        "src": "21045:16:38"
                                      },
                                      {
                                        "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": {
                                                  "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": {
                                                          "commonType": {
                                                            "typeIdentifier": "t_uint256",
                                                            "typeString": "uint256"
                                                          },
                                                          "isConstant": false,
                                                          "isLValue": false,
                                                          "isPure": false,
                                                          "lValueRequested": false,
                                                          "operator": "-",
                                                          "type": "uint256"
                                                        },
                                                        "children": [
                                                          {
                                                            "attributes": {
                                                              "overloadedDeclarations": [
                                                                null
                                                              ],
                                                              "referencedDeclaration": 9902,
                                                              "type": "uint256",
                                                              "value": "y"
                                                            },
                                                            "id": 10018,
                                                            "name": "Identifier",
                                                            "src": "21066:1:38"
                                                          },
                                                          {
                                                            "attributes": {
                                                              "hexvalue": "31",
                                                              "isConstant": false,
                                                              "isLValue": false,
                                                              "isPure": true,
                                                              "lValueRequested": false,
                                                              "token": "number",
                                                              "type": "int_const 1",
                                                              "value": "1"
                                                            },
                                                            "id": 10019,
                                                            "name": "Literal",
                                                            "src": "21070:1:38"
                                                          }
                                                        ],
                                                        "id": 10020,
                                                        "name": "BinaryOperation",
                                                        "src": "21066:5:38"
                                                      },
                                                      {
                                                        "attributes": {
                                                          "commonType": {
                                                            "typeIdentifier": "t_uint256",
                                                            "typeString": "uint256"
                                                          },
                                                          "isConstant": false,
                                                          "isLValue": false,
                                                          "isPure": false,
                                                          "lValueRequested": false,
                                                          "operator": "-",
                                                          "type": "uint256"
                                                        },
                                                        "children": [
                                                          {
                                                            "attributes": {
                                                              "overloadedDeclarations": [
                                                                null
                                                              ],
                                                              "referencedDeclaration": 9929,
                                                              "type": "uint256",
                                                              "value": "msb"
                                                            },
                                                            "id": 10021,
                                                            "name": "Identifier",
                                                            "src": "21075:3:38"
                                                          },
                                                          {
                                                            "attributes": {
                                                              "hexvalue": "313931",
                                                              "isConstant": false,
                                                              "isLValue": false,
                                                              "isPure": true,
                                                              "lValueRequested": false,
                                                              "token": "number",
                                                              "type": "int_const 191",
                                                              "value": "191"
                                                            },
                                                            "id": 10022,
                                                            "name": "Literal",
                                                            "src": "21081:3:38"
                                                          }
                                                        ],
                                                        "id": 10023,
                                                        "name": "BinaryOperation",
                                                        "src": "21075:9:38"
                                                      }
                                                    ],
                                                    "id": 10024,
                                                    "name": "BinaryOperation",
                                                    "src": "21066:18:38"
                                                  }
                                                ],
                                                "id": 10025,
                                                "name": "TupleExpression",
                                                "src": "21065:20:38"
                                              },
                                              {
                                                "attributes": {
                                                  "hexvalue": "31",
                                                  "isConstant": false,
                                                  "isLValue": false,
                                                  "isPure": true,
                                                  "lValueRequested": false,
                                                  "token": "number",
                                                  "type": "int_const 1",
                                                  "value": "1"
                                                },
                                                "id": 10026,
                                                "name": "Literal",
                                                "src": "21088:1:38"
                                              }
                                            ],
                                            "id": 10027,
                                            "name": "BinaryOperation",
                                            "src": "21065:24:38"
                                          }
                                        ],
                                        "id": 10028,
                                        "name": "TupleExpression",
                                        "src": "21064:26:38"
                                      }
                                    ],
                                    "id": 10029,
                                    "name": "BinaryOperation",
                                    "src": "21045:45:38"
                                  }
                                ],
                                "id": 10030,
                                "name": "Assignment",
                                "src": "21036:54:38"
                              }
                            ],
                            "id": 10031,
                            "name": "ExpressionStatement",
                            "src": "21036:54:38"
                          },
                          {
                            "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"
                                        }
                                      ],
                                      "overloadedDeclarations": [
                                        4294967278,
                                        4294967278
                                      ],
                                      "referencedDeclaration": 4294967278,
                                      "type": "function (bool) pure",
                                      "value": "require"
                                    },
                                    "id": 10032,
                                    "name": "Identifier",
                                    "src": "21098:7:38"
                                  },
                                  {
                                    "attributes": {
                                      "commonType": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      },
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "operator": "<=",
                                      "type": "bool"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 9914,
                                          "type": "uint256",
                                          "value": "result"
                                        },
                                        "id": 10033,
                                        "name": "Identifier",
                                        "src": "21107:6:38"
                                      },
                                      {
                                        "attributes": {
                                          "hexvalue": "30784646464646464646464646464646464646464646464646464646464646464646",
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "token": "number",
                                          "type": "int_const 3402...(31 digits omitted)...1455",
                                          "value": "0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
                                        },
                                        "id": 10034,
                                        "name": "Literal",
                                        "src": "21117:34:38"
                                      }
                                    ],
                                    "id": 10035,
                                    "name": "BinaryOperation",
                                    "src": "21107:44:38"
                                  }
                                ],
                                "id": 10036,
                                "name": "FunctionCall",
                                "src": "21098:54:38"
                              }
                            ],
                            "id": 10037,
                            "name": "ExpressionStatement",
                            "src": "21098:54:38"
                          },
                          {
                            "attributes": {
                              "assignments": [
                                10039
                              ]
                            },
                            "children": [
                              {
                                "attributes": {
                                  "constant": false,
                                  "mutability": "mutable",
                                  "name": "hi",
                                  "scope": 10112,
                                  "stateVariable": false,
                                  "storageLocation": "default",
                                  "type": "uint256",
                                  "visibility": "internal"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "name": "uint256",
                                      "type": "uint256"
                                    },
                                    "id": 10038,
                                    "name": "ElementaryTypeName",
                                    "src": "21161:7:38"
                                  }
                                ],
                                "id": 10039,
                                "name": "VariableDeclaration",
                                "src": "21161:10:38"
                              },
                              {
                                "attributes": {
                                  "commonType": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": "*",
                                  "type": "uint256"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 9914,
                                      "type": "uint256",
                                      "value": "result"
                                    },
                                    "id": 10040,
                                    "name": "Identifier",
                                    "src": "21174:6:38"
                                  },
                                  {
                                    "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": 9902,
                                              "type": "uint256",
                                              "value": "y"
                                            },
                                            "id": 10041,
                                            "name": "Identifier",
                                            "src": "21184:1:38"
                                          },
                                          {
                                            "attributes": {
                                              "hexvalue": "313238",
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "lValueRequested": false,
                                              "token": "number",
                                              "type": "int_const 128",
                                              "value": "128"
                                            },
                                            "id": 10042,
                                            "name": "Literal",
                                            "src": "21189:3:38"
                                          }
                                        ],
                                        "id": 10043,
                                        "name": "BinaryOperation",
                                        "src": "21184:8:38"
                                      }
                                    ],
                                    "id": 10044,
                                    "name": "TupleExpression",
                                    "src": "21183:10:38"
                                  }
                                ],
                                "id": 10045,
                                "name": "BinaryOperation",
                                "src": "21174:19:38"
                              }
                            ],
                            "id": 10046,
                            "name": "VariableDeclarationStatement",
                            "src": "21161:32:38"
                          },
                          {
                            "attributes": {
                              "assignments": [
                                10048
                              ]
                            },
                            "children": [
                              {
                                "attributes": {
                                  "constant": false,
                                  "mutability": "mutable",
                                  "name": "lo",
                                  "scope": 10112,
                                  "stateVariable": false,
                                  "storageLocation": "default",
                                  "type": "uint256",
                                  "visibility": "internal"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "name": "uint256",
                                      "type": "uint256"
                                    },
                                    "id": 10047,
                                    "name": "ElementaryTypeName",
                                    "src": "21201:7:38"
                                  }
                                ],
                                "id": 10048,
                                "name": "VariableDeclaration",
                                "src": "21201:10:38"
                              },
                              {
                                "attributes": {
                                  "commonType": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": "*",
                                  "type": "uint256"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 9914,
                                      "type": "uint256",
                                      "value": "result"
                                    },
                                    "id": 10049,
                                    "name": "Identifier",
                                    "src": "21214:6:38"
                                  },
                                  {
                                    "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": 9902,
                                              "type": "uint256",
                                              "value": "y"
                                            },
                                            "id": 10050,
                                            "name": "Identifier",
                                            "src": "21224:1:38"
                                          },
                                          {
                                            "attributes": {
                                              "hexvalue": "30784646464646464646464646464646464646464646464646464646464646464646",
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "lValueRequested": false,
                                              "token": "number",
                                              "type": "int_const 3402...(31 digits omitted)...1455",
                                              "value": "0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
                                            },
                                            "id": 10051,
                                            "name": "Literal",
                                            "src": "21228:34:38"
                                          }
                                        ],
                                        "id": 10052,
                                        "name": "BinaryOperation",
                                        "src": "21224:38:38"
                                      }
                                    ],
                                    "id": 10053,
                                    "name": "TupleExpression",
                                    "src": "21223:40:38"
                                  }
                                ],
                                "id": 10054,
                                "name": "BinaryOperation",
                                "src": "21214:49:38"
                              }
                            ],
                            "id": 10055,
                            "name": "VariableDeclarationStatement",
                            "src": "21201:62:38"
                          },
                          {
                            "attributes": {
                              "assignments": [
                                10057
                              ]
                            },
                            "children": [
                              {
                                "attributes": {
                                  "constant": false,
                                  "mutability": "mutable",
                                  "name": "xh",
                                  "scope": 10112,
                                  "stateVariable": false,
                                  "storageLocation": "default",
                                  "type": "uint256",
                                  "visibility": "internal"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "name": "uint256",
                                      "type": "uint256"
                                    },
                                    "id": 10056,
                                    "name": "ElementaryTypeName",
                                    "src": "21272:7:38"
                                  }
                                ],
                                "id": 10057,
                                "name": "VariableDeclaration",
                                "src": "21272:10:38"
                              },
                              {
                                "attributes": {
                                  "commonType": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": ">>",
                                  "type": "uint256"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 9900,
                                      "type": "uint256",
                                      "value": "x"
                                    },
                                    "id": 10058,
                                    "name": "Identifier",
                                    "src": "21285:1:38"
                                  },
                                  {
                                    "attributes": {
                                      "hexvalue": "313932",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "token": "number",
                                      "type": "int_const 192",
                                      "value": "192"
                                    },
                                    "id": 10059,
                                    "name": "Literal",
                                    "src": "21290:3:38"
                                  }
                                ],
                                "id": 10060,
                                "name": "BinaryOperation",
                                "src": "21285:8:38"
                              }
                            ],
                            "id": 10061,
                            "name": "VariableDeclarationStatement",
                            "src": "21272:21:38"
                          },
                          {
                            "attributes": {
                              "assignments": [
                                10063
                              ]
                            },
                            "children": [
                              {
                                "attributes": {
                                  "constant": false,
                                  "mutability": "mutable",
                                  "name": "xl",
                                  "scope": 10112,
                                  "stateVariable": false,
                                  "storageLocation": "default",
                                  "type": "uint256",
                                  "visibility": "internal"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "name": "uint256",
                                      "type": "uint256"
                                    },
                                    "id": 10062,
                                    "name": "ElementaryTypeName",
                                    "src": "21301:7:38"
                                  }
                                ],
                                "id": 10063,
                                "name": "VariableDeclaration",
                                "src": "21301:10:38"
                              },
                              {
                                "attributes": {
                                  "commonType": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": "<<",
                                  "type": "uint256"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 9900,
                                      "type": "uint256",
                                      "value": "x"
                                    },
                                    "id": 10064,
                                    "name": "Identifier",
                                    "src": "21314:1:38"
                                  },
                                  {
                                    "attributes": {
                                      "hexvalue": "3634",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "token": "number",
                                      "type": "int_const 64",
                                      "value": "64"
                                    },
                                    "id": 10065,
                                    "name": "Literal",
                                    "src": "21319:2:38"
                                  }
                                ],
                                "id": 10066,
                                "name": "BinaryOperation",
                                "src": "21314:7:38"
                              }
                            ],
                            "id": 10067,
                            "name": "VariableDeclarationStatement",
                            "src": "21301:20:38"
                          },
                          {
                            "attributes": {},
                            "children": [
                              {
                                "attributes": {
                                  "commonType": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": "<",
                                  "type": "bool"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 10063,
                                      "type": "uint256",
                                      "value": "xl"
                                    },
                                    "id": 10068,
                                    "name": "Identifier",
                                    "src": "21334:2:38"
                                  },
                                  {
                                    "attributes": {
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 10048,
                                      "type": "uint256",
                                      "value": "lo"
                                    },
                                    "id": 10069,
                                    "name": "Identifier",
                                    "src": "21339:2:38"
                                  }
                                ],
                                "id": 10070,
                                "name": "BinaryOperation",
                                "src": "21334:7:38"
                              },
                              {
                                "children": [
                                  {
                                    "attributes": {
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "operator": "-=",
                                      "type": "uint256"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 10057,
                                          "type": "uint256",
                                          "value": "xh"
                                        },
                                        "id": 10071,
                                        "name": "Identifier",
                                        "src": "21343:2:38"
                                      },
                                      {
                                        "attributes": {
                                          "hexvalue": "31",
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "token": "number",
                                          "type": "int_const 1",
                                          "value": "1"
                                        },
                                        "id": 10072,
                                        "name": "Literal",
                                        "src": "21349:1:38"
                                      }
                                    ],
                                    "id": 10073,
                                    "name": "Assignment",
                                    "src": "21343:7:38"
                                  }
                                ],
                                "id": 10074,
                                "name": "ExpressionStatement",
                                "src": "21343:7:38"
                              }
                            ],
                            "id": 10075,
                            "name": "IfStatement",
                            "src": "21330:20:38"
                          },
                          {
                            "children": [
                              {
                                "attributes": {
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": "-=",
                                  "type": "uint256"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 10063,
                                      "type": "uint256",
                                      "value": "xl"
                                    },
                                    "id": 10076,
                                    "name": "Identifier",
                                    "src": "21358:2:38"
                                  },
                                  {
                                    "attributes": {
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 10048,
                                      "type": "uint256",
                                      "value": "lo"
                                    },
                                    "id": 10077,
                                    "name": "Identifier",
                                    "src": "21364:2:38"
                                  }
                                ],
                                "id": 10078,
                                "name": "Assignment",
                                "src": "21358:8:38"
                              }
                            ],
                            "id": 10079,
                            "name": "ExpressionStatement",
                            "src": "21358:8:38"
                          },
                          {
                            "children": [
                              {
                                "attributes": {
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": "=",
                                  "type": "uint256"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 10048,
                                      "type": "uint256",
                                      "value": "lo"
                                    },
                                    "id": 10080,
                                    "name": "Identifier",
                                    "src": "21411:2:38"
                                  },
                                  {
                                    "attributes": {
                                      "commonType": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      },
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "operator": "<<",
                                      "type": "uint256"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 10039,
                                          "type": "uint256",
                                          "value": "hi"
                                        },
                                        "id": 10081,
                                        "name": "Identifier",
                                        "src": "21416:2:38"
                                      },
                                      {
                                        "attributes": {
                                          "hexvalue": "313238",
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "token": "number",
                                          "type": "int_const 128",
                                          "value": "128"
                                        },
                                        "id": 10082,
                                        "name": "Literal",
                                        "src": "21422:3:38"
                                      }
                                    ],
                                    "id": 10083,
                                    "name": "BinaryOperation",
                                    "src": "21416:9:38"
                                  }
                                ],
                                "id": 10084,
                                "name": "Assignment",
                                "src": "21411:14:38"
                              }
                            ],
                            "id": 10085,
                            "name": "ExpressionStatement",
                            "src": "21411:14:38"
                          },
                          {
                            "attributes": {},
                            "children": [
                              {
                                "attributes": {
                                  "commonType": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": "<",
                                  "type": "bool"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 10063,
                                      "type": "uint256",
                                      "value": "xl"
                                    },
                                    "id": 10086,
                                    "name": "Identifier",
                                    "src": "21437:2:38"
                                  },
                                  {
                                    "attributes": {
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 10048,
                                      "type": "uint256",
                                      "value": "lo"
                                    },
                                    "id": 10087,
                                    "name": "Identifier",
                                    "src": "21442:2:38"
                                  }
                                ],
                                "id": 10088,
                                "name": "BinaryOperation",
                                "src": "21437:7:38"
                              },
                              {
                                "children": [
                                  {
                                    "attributes": {
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "operator": "-=",
                                      "type": "uint256"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 10057,
                                          "type": "uint256",
                                          "value": "xh"
                                        },
                                        "id": 10089,
                                        "name": "Identifier",
                                        "src": "21446:2:38"
                                      },
                                      {
                                        "attributes": {
                                          "hexvalue": "31",
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "token": "number",
                                          "type": "int_const 1",
                                          "value": "1"
                                        },
                                        "id": 10090,
                                        "name": "Literal",
                                        "src": "21452:1:38"
                                      }
                                    ],
                                    "id": 10091,
                                    "name": "Assignment",
                                    "src": "21446:7:38"
                                  }
                                ],
                                "id": 10092,
                                "name": "ExpressionStatement",
                                "src": "21446:7:38"
                              }
                            ],
                            "id": 10093,
                            "name": "IfStatement",
                            "src": "21433:20:38"
                          },
                          {
                            "children": [
                              {
                                "attributes": {
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": "-=",
                                  "type": "uint256"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 10063,
                                      "type": "uint256",
                                      "value": "xl"
                                    },
                                    "id": 10094,
                                    "name": "Identifier",
                                    "src": "21461:2:38"
                                  },
                                  {
                                    "attributes": {
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 10048,
                                      "type": "uint256",
                                      "value": "lo"
                                    },
                                    "id": 10095,
                                    "name": "Identifier",
                                    "src": "21467:2:38"
                                  }
                                ],
                                "id": 10096,
                                "name": "Assignment",
                                "src": "21461:8:38"
                              }
                            ],
                            "id": 10097,
                            "name": "ExpressionStatement",
                            "src": "21461:8:38"
                          },
                          {
                            "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"
                                        }
                                      ],
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 4294967293,
                                      "type": "function (bool) pure",
                                      "value": "assert"
                                    },
                                    "id": 10098,
                                    "name": "Identifier",
                                    "src": "21515:6:38"
                                  },
                                  {
                                    "attributes": {
                                      "commonType": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      },
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "operator": "==",
                                      "type": "bool"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 10057,
                                          "type": "uint256",
                                          "value": "xh"
                                        },
                                        "id": 10099,
                                        "name": "Identifier",
                                        "src": "21523:2:38"
                                      },
                                      {
                                        "attributes": {
                                          "commonType": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          },
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "operator": ">>",
                                          "type": "uint256"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 10039,
                                              "type": "uint256",
                                              "value": "hi"
                                            },
                                            "id": 10100,
                                            "name": "Identifier",
                                            "src": "21529:2:38"
                                          },
                                          {
                                            "attributes": {
                                              "hexvalue": "313238",
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "lValueRequested": false,
                                              "token": "number",
                                              "type": "int_const 128",
                                              "value": "128"
                                            },
                                            "id": 10101,
                                            "name": "Literal",
                                            "src": "21535:3:38"
                                          }
                                        ],
                                        "id": 10102,
                                        "name": "BinaryOperation",
                                        "src": "21529:9:38"
                                      }
                                    ],
                                    "id": 10103,
                                    "name": "BinaryOperation",
                                    "src": "21523:15:38"
                                  }
                                ],
                                "id": 10104,
                                "name": "FunctionCall",
                                "src": "21515:24:38"
                              }
                            ],
                            "id": 10105,
                            "name": "ExpressionStatement",
                            "src": "21515:24:38"
                          },
                          {
                            "children": [
                              {
                                "attributes": {
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": "+=",
                                  "type": "uint256"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 9914,
                                      "type": "uint256",
                                      "value": "result"
                                    },
                                    "id": 10106,
                                    "name": "Identifier",
                                    "src": "21548:6:38"
                                  },
                                  {
                                    "attributes": {
                                      "commonType": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      },
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "operator": "/",
                                      "type": "uint256"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 10063,
                                          "type": "uint256",
                                          "value": "xl"
                                        },
                                        "id": 10107,
                                        "name": "Identifier",
                                        "src": "21558:2:38"
                                      },
                                      {
                                        "attributes": {
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 9902,
                                          "type": "uint256",
                                          "value": "y"
                                        },
                                        "id": 10108,
                                        "name": "Identifier",
                                        "src": "21563:1:38"
                                      }
                                    ],
                                    "id": 10109,
                                    "name": "BinaryOperation",
                                    "src": "21558:6:38"
                                  }
                                ],
                                "id": 10110,
                                "name": "Assignment",
                                "src": "21548:16:38"
                              }
                            ],
                            "id": 10111,
                            "name": "ExpressionStatement",
                            "src": "21548:16:38"
                          }
                        ],
                        "id": 10112,
                        "name": "Block",
                        "src": "20666:905:38"
                      }
                    ],
                    "id": 10113,
                    "name": "IfStatement",
                    "src": "20566:1005:38"
                  },
                  {
                    "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"
                                }
                              ],
                              "overloadedDeclarations": [
                                4294967278,
                                4294967278
                              ],
                              "referencedDeclaration": 4294967278,
                              "type": "function (bool) pure",
                              "value": "require"
                            },
                            "id": 10114,
                            "name": "Identifier",
                            "src": "21577:7:38"
                          },
                          {
                            "attributes": {
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "<=",
                              "type": "bool"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 9914,
                                  "type": "uint256",
                                  "value": "result"
                                },
                                "id": 10115,
                                "name": "Identifier",
                                "src": "21586:6:38"
                              },
                              {
                                "attributes": {
                                  "hexvalue": "30784646464646464646464646464646464646464646464646464646464646464646",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "token": "number",
                                  "type": "int_const 3402...(31 digits omitted)...1455",
                                  "value": "0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
                                },
                                "id": 10116,
                                "name": "Literal",
                                "src": "21596:34:38"
                              }
                            ],
                            "id": 10117,
                            "name": "BinaryOperation",
                            "src": "21586:44:38"
                          }
                        ],
                        "id": 10118,
                        "name": "FunctionCall",
                        "src": "21577:54:38"
                      }
                    ],
                    "id": 10119,
                    "name": "ExpressionStatement",
                    "src": "21577:54:38"
                  },
                  {
                    "attributes": {
                      "functionReturnParameters": 9906
                    },
                    "children": [
                      {
                        "attributes": {
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "tryCall": false,
                          "type": "uint128",
                          "type_conversion": true
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "type": "type(uint128)"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "name": "uint128"
                                },
                                "id": 10120,
                                "name": "ElementaryTypeName",
                                "src": "21644:7:38"
                              }
                            ],
                            "id": 10121,
                            "name": "ElementaryTypeNameExpression",
                            "src": "21644:7:38"
                          },
                          {
                            "attributes": {
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 9914,
                              "type": "uint256",
                              "value": "result"
                            },
                            "id": 10122,
                            "name": "Identifier",
                            "src": "21653:6:38"
                          }
                        ],
                        "id": 10123,
                        "name": "FunctionCall",
                        "src": "21644:16:38"
                      }
                    ],
                    "id": 10124,
                    "name": "Return",
                    "src": "21637:23:38"
                  }
                ],
                "id": 10125,
                "name": "Block",
                "src": "20516:1149:38"
              }
            ],
            "id": 10126,
            "name": "FunctionDefinition",
            "src": "20447:1218:38"
          },
          {
            "attributes": {
              "implemented": true,
              "isConstructor": false,
              "kind": "function",
              "modifiers": [
                null
              ],
              "name": "powu",
              "scope": 10621,
              "stateMutability": "pure",
              "virtual": false,
              "visibility": "private"
            },
            "children": [
              {
                "attributes": {
                  "text": " Calculate x^y assuming 0^0 is 1, where x is unsigned 129.127 fixed point\n number and y is unsigned 256-bit integer number.  Revert on overflow.\n @param x unsigned 129.127-bit fixed point number\n @param y uint256 value\n @return unsigned 129.127-bit fixed point number"
                },
                "id": 10127,
                "name": "StructuredDocumentation",
                "src": "21669:302:38"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "x",
                      "scope": 10416,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint256",
                          "type": "uint256"
                        },
                        "id": 10128,
                        "name": "ElementaryTypeName",
                        "src": "21989:7:38"
                      }
                    ],
                    "id": 10129,
                    "name": "VariableDeclaration",
                    "src": "21989:9:38"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "y",
                      "scope": 10416,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint256",
                          "type": "uint256"
                        },
                        "id": 10130,
                        "name": "ElementaryTypeName",
                        "src": "22000:7:38"
                      }
                    ],
                    "id": 10131,
                    "name": "VariableDeclaration",
                    "src": "22000:9:38"
                  }
                ],
                "id": 10132,
                "name": "ParameterList",
                "src": "21988:22:38"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "",
                      "scope": 10416,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint256",
                          "type": "uint256"
                        },
                        "id": 10133,
                        "name": "ElementaryTypeName",
                        "src": "22033:7:38"
                      }
                    ],
                    "id": 10134,
                    "name": "VariableDeclaration",
                    "src": "22033:7:38"
                  }
                ],
                "id": 10135,
                "name": "ParameterList",
                "src": "22032:9:38"
              },
              {
                "children": [
                  {
                    "children": [
                      {
                        "attributes": {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "==",
                          "type": "bool"
                        },
                        "children": [
                          {
                            "attributes": {
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 10131,
                              "type": "uint256",
                              "value": "y"
                            },
                            "id": 10136,
                            "name": "Identifier",
                            "src": "22052:1:38"
                          },
                          {
                            "attributes": {
                              "hexvalue": "30",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "token": "number",
                              "type": "int_const 0",
                              "value": "0"
                            },
                            "id": 10137,
                            "name": "Literal",
                            "src": "22057:1:38"
                          }
                        ],
                        "id": 10138,
                        "name": "BinaryOperation",
                        "src": "22052:6:38"
                      },
                      {
                        "attributes": {
                          "functionReturnParameters": 10135
                        },
                        "children": [
                          {
                            "attributes": {
                              "hexvalue": "30783830303030303030303030303030303030303030303030303030303030303030",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "token": "number",
                              "type": "int_const 1701...(31 digits omitted)...5728",
                              "value": "0x80000000000000000000000000000000"
                            },
                            "id": 10139,
                            "name": "Literal",
                            "src": "22067:34:38"
                          }
                        ],
                        "id": 10140,
                        "name": "Return",
                        "src": "22060:41:38"
                      },
                      {
                        "children": [
                          {
                            "attributes": {
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "==",
                              "type": "bool"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 10129,
                                  "type": "uint256",
                                  "value": "x"
                                },
                                "id": 10141,
                                "name": "Identifier",
                                "src": "22116:1:38"
                              },
                              {
                                "attributes": {
                                  "hexvalue": "30",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "token": "number",
                                  "type": "int_const 0",
                                  "value": "0"
                                },
                                "id": 10142,
                                "name": "Literal",
                                "src": "22121:1:38"
                              }
                            ],
                            "id": 10143,
                            "name": "BinaryOperation",
                            "src": "22116:6:38"
                          },
                          {
                            "attributes": {
                              "functionReturnParameters": 10135
                            },
                            "children": [
                              {
                                "attributes": {
                                  "hexvalue": "30",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "token": "number",
                                  "type": "int_const 0",
                                  "value": "0"
                                },
                                "id": 10144,
                                "name": "Literal",
                                "src": "22131:1:38"
                              }
                            ],
                            "id": 10145,
                            "name": "Return",
                            "src": "22124:8:38"
                          },
                          {
                            "children": [
                              {
                                "attributes": {
                                  "assignments": [
                                    10147
                                  ]
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "constant": false,
                                      "mutability": "mutable",
                                      "name": "msb",
                                      "scope": 10412,
                                      "stateVariable": false,
                                      "storageLocation": "default",
                                      "type": "int256",
                                      "visibility": "internal"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "name": "int256",
                                          "type": "int256"
                                        },
                                        "id": 10146,
                                        "name": "ElementaryTypeName",
                                        "src": "22151:6:38"
                                      }
                                    ],
                                    "id": 10147,
                                    "name": "VariableDeclaration",
                                    "src": "22151:10:38"
                                  },
                                  {
                                    "attributes": {
                                      "hexvalue": "30",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "token": "number",
                                      "type": "int_const 0",
                                      "value": "0"
                                    },
                                    "id": 10148,
                                    "name": "Literal",
                                    "src": "22164:1:38"
                                  }
                                ],
                                "id": 10149,
                                "name": "VariableDeclarationStatement",
                                "src": "22151:14:38"
                              },
                              {
                                "attributes": {
                                  "assignments": [
                                    10151
                                  ]
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "constant": false,
                                      "mutability": "mutable",
                                      "name": "xc",
                                      "scope": 10412,
                                      "stateVariable": false,
                                      "storageLocation": "default",
                                      "type": "uint256",
                                      "visibility": "internal"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "name": "uint256",
                                          "type": "uint256"
                                        },
                                        "id": 10150,
                                        "name": "ElementaryTypeName",
                                        "src": "22173:7:38"
                                      }
                                    ],
                                    "id": 10151,
                                    "name": "VariableDeclaration",
                                    "src": "22173:10:38"
                                  },
                                  {
                                    "attributes": {
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 10129,
                                      "type": "uint256",
                                      "value": "x"
                                    },
                                    "id": 10152,
                                    "name": "Identifier",
                                    "src": "22186:1:38"
                                  }
                                ],
                                "id": 10153,
                                "name": "VariableDeclarationStatement",
                                "src": "22173:14:38"
                              },
                              {
                                "attributes": {},
                                "children": [
                                  {
                                    "attributes": {
                                      "commonType": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      },
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "operator": ">=",
                                      "type": "bool"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 10151,
                                          "type": "uint256",
                                          "value": "xc"
                                        },
                                        "id": 10154,
                                        "name": "Identifier",
                                        "src": "22199:2:38"
                                      },
                                      {
                                        "attributes": {
                                          "hexvalue": "3078313030303030303030303030303030303030303030303030303030303030303030",
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "token": "number",
                                          "type": "int_const 3402...(31 digits omitted)...1456",
                                          "value": "0x100000000000000000000000000000000"
                                        },
                                        "id": 10155,
                                        "name": "Literal",
                                        "src": "22205:35:38"
                                      }
                                    ],
                                    "id": 10156,
                                    "name": "BinaryOperation",
                                    "src": "22199:41:38"
                                  },
                                  {
                                    "children": [
                                      {
                                        "children": [
                                          {
                                            "attributes": {
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": false,
                                              "lValueRequested": false,
                                              "operator": ">>=",
                                              "type": "uint256"
                                            },
                                            "children": [
                                              {
                                                "attributes": {
                                                  "overloadedDeclarations": [
                                                    null
                                                  ],
                                                  "referencedDeclaration": 10151,
                                                  "type": "uint256",
                                                  "value": "xc"
                                                },
                                                "id": 10157,
                                                "name": "Identifier",
                                                "src": "22244:2:38"
                                              },
                                              {
                                                "attributes": {
                                                  "hexvalue": "313238",
                                                  "isConstant": false,
                                                  "isLValue": false,
                                                  "isPure": true,
                                                  "lValueRequested": false,
                                                  "token": "number",
                                                  "type": "int_const 128",
                                                  "value": "128"
                                                },
                                                "id": 10158,
                                                "name": "Literal",
                                                "src": "22251:3:38"
                                              }
                                            ],
                                            "id": 10159,
                                            "name": "Assignment",
                                            "src": "22244:10:38"
                                          }
                                        ],
                                        "id": 10160,
                                        "name": "ExpressionStatement",
                                        "src": "22244:10:38"
                                      },
                                      {
                                        "children": [
                                          {
                                            "attributes": {
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": false,
                                              "lValueRequested": false,
                                              "operator": "+=",
                                              "type": "int256"
                                            },
                                            "children": [
                                              {
                                                "attributes": {
                                                  "overloadedDeclarations": [
                                                    null
                                                  ],
                                                  "referencedDeclaration": 10147,
                                                  "type": "int256",
                                                  "value": "msb"
                                                },
                                                "id": 10161,
                                                "name": "Identifier",
                                                "src": "22256:3:38"
                                              },
                                              {
                                                "attributes": {
                                                  "hexvalue": "313238",
                                                  "isConstant": false,
                                                  "isLValue": false,
                                                  "isPure": true,
                                                  "lValueRequested": false,
                                                  "token": "number",
                                                  "type": "int_const 128",
                                                  "value": "128"
                                                },
                                                "id": 10162,
                                                "name": "Literal",
                                                "src": "22263:3:38"
                                              }
                                            ],
                                            "id": 10163,
                                            "name": "Assignment",
                                            "src": "22256:10:38"
                                          }
                                        ],
                                        "id": 10164,
                                        "name": "ExpressionStatement",
                                        "src": "22256:10:38"
                                      }
                                    ],
                                    "id": 10165,
                                    "name": "Block",
                                    "src": "22242:27:38"
                                  }
                                ],
                                "id": 10166,
                                "name": "IfStatement",
                                "src": "22195:74:38"
                              },
                              {
                                "attributes": {},
                                "children": [
                                  {
                                    "attributes": {
                                      "commonType": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      },
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "operator": ">=",
                                      "type": "bool"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 10151,
                                          "type": "uint256",
                                          "value": "xc"
                                        },
                                        "id": 10167,
                                        "name": "Identifier",
                                        "src": "22280:2:38"
                                      },
                                      {
                                        "attributes": {
                                          "hexvalue": "30783130303030303030303030303030303030",
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "token": "number",
                                          "type": "int_const 18446744073709551616",
                                          "value": "0x10000000000000000"
                                        },
                                        "id": 10168,
                                        "name": "Literal",
                                        "src": "22286:19:38"
                                      }
                                    ],
                                    "id": 10169,
                                    "name": "BinaryOperation",
                                    "src": "22280:25:38"
                                  },
                                  {
                                    "children": [
                                      {
                                        "children": [
                                          {
                                            "attributes": {
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": false,
                                              "lValueRequested": false,
                                              "operator": ">>=",
                                              "type": "uint256"
                                            },
                                            "children": [
                                              {
                                                "attributes": {
                                                  "overloadedDeclarations": [
                                                    null
                                                  ],
                                                  "referencedDeclaration": 10151,
                                                  "type": "uint256",
                                                  "value": "xc"
                                                },
                                                "id": 10170,
                                                "name": "Identifier",
                                                "src": "22309:2:38"
                                              },
                                              {
                                                "attributes": {
                                                  "hexvalue": "3634",
                                                  "isConstant": false,
                                                  "isLValue": false,
                                                  "isPure": true,
                                                  "lValueRequested": false,
                                                  "token": "number",
                                                  "type": "int_const 64",
                                                  "value": "64"
                                                },
                                                "id": 10171,
                                                "name": "Literal",
                                                "src": "22316:2:38"
                                              }
                                            ],
                                            "id": 10172,
                                            "name": "Assignment",
                                            "src": "22309:9:38"
                                          }
                                        ],
                                        "id": 10173,
                                        "name": "ExpressionStatement",
                                        "src": "22309:9:38"
                                      },
                                      {
                                        "children": [
                                          {
                                            "attributes": {
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": false,
                                              "lValueRequested": false,
                                              "operator": "+=",
                                              "type": "int256"
                                            },
                                            "children": [
                                              {
                                                "attributes": {
                                                  "overloadedDeclarations": [
                                                    null
                                                  ],
                                                  "referencedDeclaration": 10147,
                                                  "type": "int256",
                                                  "value": "msb"
                                                },
                                                "id": 10174,
                                                "name": "Identifier",
                                                "src": "22320:3:38"
                                              },
                                              {
                                                "attributes": {
                                                  "hexvalue": "3634",
                                                  "isConstant": false,
                                                  "isLValue": false,
                                                  "isPure": true,
                                                  "lValueRequested": false,
                                                  "token": "number",
                                                  "type": "int_const 64",
                                                  "value": "64"
                                                },
                                                "id": 10175,
                                                "name": "Literal",
                                                "src": "22327:2:38"
                                              }
                                            ],
                                            "id": 10176,
                                            "name": "Assignment",
                                            "src": "22320:9:38"
                                          }
                                        ],
                                        "id": 10177,
                                        "name": "ExpressionStatement",
                                        "src": "22320:9:38"
                                      }
                                    ],
                                    "id": 10178,
                                    "name": "Block",
                                    "src": "22307:25:38"
                                  }
                                ],
                                "id": 10179,
                                "name": "IfStatement",
                                "src": "22276:56:38"
                              },
                              {
                                "attributes": {},
                                "children": [
                                  {
                                    "attributes": {
                                      "commonType": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      },
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "operator": ">=",
                                      "type": "bool"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 10151,
                                          "type": "uint256",
                                          "value": "xc"
                                        },
                                        "id": 10180,
                                        "name": "Identifier",
                                        "src": "22343:2:38"
                                      },
                                      {
                                        "attributes": {
                                          "hexvalue": "3078313030303030303030",
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "token": "number",
                                          "type": "int_const 4294967296",
                                          "value": "0x100000000"
                                        },
                                        "id": 10181,
                                        "name": "Literal",
                                        "src": "22349:11:38"
                                      }
                                    ],
                                    "id": 10182,
                                    "name": "BinaryOperation",
                                    "src": "22343:17:38"
                                  },
                                  {
                                    "children": [
                                      {
                                        "children": [
                                          {
                                            "attributes": {
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": false,
                                              "lValueRequested": false,
                                              "operator": ">>=",
                                              "type": "uint256"
                                            },
                                            "children": [
                                              {
                                                "attributes": {
                                                  "overloadedDeclarations": [
                                                    null
                                                  ],
                                                  "referencedDeclaration": 10151,
                                                  "type": "uint256",
                                                  "value": "xc"
                                                },
                                                "id": 10183,
                                                "name": "Identifier",
                                                "src": "22364:2:38"
                                              },
                                              {
                                                "attributes": {
                                                  "hexvalue": "3332",
                                                  "isConstant": false,
                                                  "isLValue": false,
                                                  "isPure": true,
                                                  "lValueRequested": false,
                                                  "token": "number",
                                                  "type": "int_const 32",
                                                  "value": "32"
                                                },
                                                "id": 10184,
                                                "name": "Literal",
                                                "src": "22371:2:38"
                                              }
                                            ],
                                            "id": 10185,
                                            "name": "Assignment",
                                            "src": "22364:9:38"
                                          }
                                        ],
                                        "id": 10186,
                                        "name": "ExpressionStatement",
                                        "src": "22364:9:38"
                                      },
                                      {
                                        "children": [
                                          {
                                            "attributes": {
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": false,
                                              "lValueRequested": false,
                                              "operator": "+=",
                                              "type": "int256"
                                            },
                                            "children": [
                                              {
                                                "attributes": {
                                                  "overloadedDeclarations": [
                                                    null
                                                  ],
                                                  "referencedDeclaration": 10147,
                                                  "type": "int256",
                                                  "value": "msb"
                                                },
                                                "id": 10187,
                                                "name": "Identifier",
                                                "src": "22375:3:38"
                                              },
                                              {
                                                "attributes": {
                                                  "hexvalue": "3332",
                                                  "isConstant": false,
                                                  "isLValue": false,
                                                  "isPure": true,
                                                  "lValueRequested": false,
                                                  "token": "number",
                                                  "type": "int_const 32",
                                                  "value": "32"
                                                },
                                                "id": 10188,
                                                "name": "Literal",
                                                "src": "22382:2:38"
                                              }
                                            ],
                                            "id": 10189,
                                            "name": "Assignment",
                                            "src": "22375:9:38"
                                          }
                                        ],
                                        "id": 10190,
                                        "name": "ExpressionStatement",
                                        "src": "22375:9:38"
                                      }
                                    ],
                                    "id": 10191,
                                    "name": "Block",
                                    "src": "22362:25:38"
                                  }
                                ],
                                "id": 10192,
                                "name": "IfStatement",
                                "src": "22339:48:38"
                              },
                              {
                                "attributes": {},
                                "children": [
                                  {
                                    "attributes": {
                                      "commonType": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      },
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "operator": ">=",
                                      "type": "bool"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 10151,
                                          "type": "uint256",
                                          "value": "xc"
                                        },
                                        "id": 10193,
                                        "name": "Identifier",
                                        "src": "22398:2:38"
                                      },
                                      {
                                        "attributes": {
                                          "hexvalue": "30783130303030",
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "token": "number",
                                          "type": "int_const 65536",
                                          "value": "0x10000"
                                        },
                                        "id": 10194,
                                        "name": "Literal",
                                        "src": "22404:7:38"
                                      }
                                    ],
                                    "id": 10195,
                                    "name": "BinaryOperation",
                                    "src": "22398:13:38"
                                  },
                                  {
                                    "children": [
                                      {
                                        "children": [
                                          {
                                            "attributes": {
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": false,
                                              "lValueRequested": false,
                                              "operator": ">>=",
                                              "type": "uint256"
                                            },
                                            "children": [
                                              {
                                                "attributes": {
                                                  "overloadedDeclarations": [
                                                    null
                                                  ],
                                                  "referencedDeclaration": 10151,
                                                  "type": "uint256",
                                                  "value": "xc"
                                                },
                                                "id": 10196,
                                                "name": "Identifier",
                                                "src": "22415:2:38"
                                              },
                                              {
                                                "attributes": {
                                                  "hexvalue": "3136",
                                                  "isConstant": false,
                                                  "isLValue": false,
                                                  "isPure": true,
                                                  "lValueRequested": false,
                                                  "token": "number",
                                                  "type": "int_const 16",
                                                  "value": "16"
                                                },
                                                "id": 10197,
                                                "name": "Literal",
                                                "src": "22422:2:38"
                                              }
                                            ],
                                            "id": 10198,
                                            "name": "Assignment",
                                            "src": "22415:9:38"
                                          }
                                        ],
                                        "id": 10199,
                                        "name": "ExpressionStatement",
                                        "src": "22415:9:38"
                                      },
                                      {
                                        "children": [
                                          {
                                            "attributes": {
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": false,
                                              "lValueRequested": false,
                                              "operator": "+=",
                                              "type": "int256"
                                            },
                                            "children": [
                                              {
                                                "attributes": {
                                                  "overloadedDeclarations": [
                                                    null
                                                  ],
                                                  "referencedDeclaration": 10147,
                                                  "type": "int256",
                                                  "value": "msb"
                                                },
                                                "id": 10200,
                                                "name": "Identifier",
                                                "src": "22426:3:38"
                                              },
                                              {
                                                "attributes": {
                                                  "hexvalue": "3136",
                                                  "isConstant": false,
                                                  "isLValue": false,
                                                  "isPure": true,
                                                  "lValueRequested": false,
                                                  "token": "number",
                                                  "type": "int_const 16",
                                                  "value": "16"
                                                },
                                                "id": 10201,
                                                "name": "Literal",
                                                "src": "22433:2:38"
                                              }
                                            ],
                                            "id": 10202,
                                            "name": "Assignment",
                                            "src": "22426:9:38"
                                          }
                                        ],
                                        "id": 10203,
                                        "name": "ExpressionStatement",
                                        "src": "22426:9:38"
                                      }
                                    ],
                                    "id": 10204,
                                    "name": "Block",
                                    "src": "22413:25:38"
                                  }
                                ],
                                "id": 10205,
                                "name": "IfStatement",
                                "src": "22394:44:38"
                              },
                              {
                                "attributes": {},
                                "children": [
                                  {
                                    "attributes": {
                                      "commonType": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      },
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "operator": ">=",
                                      "type": "bool"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 10151,
                                          "type": "uint256",
                                          "value": "xc"
                                        },
                                        "id": 10206,
                                        "name": "Identifier",
                                        "src": "22449:2:38"
                                      },
                                      {
                                        "attributes": {
                                          "hexvalue": "3078313030",
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "token": "number",
                                          "type": "int_const 256",
                                          "value": "0x100"
                                        },
                                        "id": 10207,
                                        "name": "Literal",
                                        "src": "22455:5:38"
                                      }
                                    ],
                                    "id": 10208,
                                    "name": "BinaryOperation",
                                    "src": "22449:11:38"
                                  },
                                  {
                                    "children": [
                                      {
                                        "children": [
                                          {
                                            "attributes": {
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": false,
                                              "lValueRequested": false,
                                              "operator": ">>=",
                                              "type": "uint256"
                                            },
                                            "children": [
                                              {
                                                "attributes": {
                                                  "overloadedDeclarations": [
                                                    null
                                                  ],
                                                  "referencedDeclaration": 10151,
                                                  "type": "uint256",
                                                  "value": "xc"
                                                },
                                                "id": 10209,
                                                "name": "Identifier",
                                                "src": "22464:2:38"
                                              },
                                              {
                                                "attributes": {
                                                  "hexvalue": "38",
                                                  "isConstant": false,
                                                  "isLValue": false,
                                                  "isPure": true,
                                                  "lValueRequested": false,
                                                  "token": "number",
                                                  "type": "int_const 8",
                                                  "value": "8"
                                                },
                                                "id": 10210,
                                                "name": "Literal",
                                                "src": "22471:1:38"
                                              }
                                            ],
                                            "id": 10211,
                                            "name": "Assignment",
                                            "src": "22464:8:38"
                                          }
                                        ],
                                        "id": 10212,
                                        "name": "ExpressionStatement",
                                        "src": "22464:8:38"
                                      },
                                      {
                                        "children": [
                                          {
                                            "attributes": {
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": false,
                                              "lValueRequested": false,
                                              "operator": "+=",
                                              "type": "int256"
                                            },
                                            "children": [
                                              {
                                                "attributes": {
                                                  "overloadedDeclarations": [
                                                    null
                                                  ],
                                                  "referencedDeclaration": 10147,
                                                  "type": "int256",
                                                  "value": "msb"
                                                },
                                                "id": 10213,
                                                "name": "Identifier",
                                                "src": "22474:3:38"
                                              },
                                              {
                                                "attributes": {
                                                  "hexvalue": "38",
                                                  "isConstant": false,
                                                  "isLValue": false,
                                                  "isPure": true,
                                                  "lValueRequested": false,
                                                  "token": "number",
                                                  "type": "int_const 8",
                                                  "value": "8"
                                                },
                                                "id": 10214,
                                                "name": "Literal",
                                                "src": "22481:1:38"
                                              }
                                            ],
                                            "id": 10215,
                                            "name": "Assignment",
                                            "src": "22474:8:38"
                                          }
                                        ],
                                        "id": 10216,
                                        "name": "ExpressionStatement",
                                        "src": "22474:8:38"
                                      }
                                    ],
                                    "id": 10217,
                                    "name": "Block",
                                    "src": "22462:23:38"
                                  }
                                ],
                                "id": 10218,
                                "name": "IfStatement",
                                "src": "22445:40:38"
                              },
                              {
                                "attributes": {},
                                "children": [
                                  {
                                    "attributes": {
                                      "commonType": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      },
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "operator": ">=",
                                      "type": "bool"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 10151,
                                          "type": "uint256",
                                          "value": "xc"
                                        },
                                        "id": 10219,
                                        "name": "Identifier",
                                        "src": "22496:2:38"
                                      },
                                      {
                                        "attributes": {
                                          "hexvalue": "30783130",
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "token": "number",
                                          "type": "int_const 16",
                                          "value": "0x10"
                                        },
                                        "id": 10220,
                                        "name": "Literal",
                                        "src": "22502:4:38"
                                      }
                                    ],
                                    "id": 10221,
                                    "name": "BinaryOperation",
                                    "src": "22496:10:38"
                                  },
                                  {
                                    "children": [
                                      {
                                        "children": [
                                          {
                                            "attributes": {
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": false,
                                              "lValueRequested": false,
                                              "operator": ">>=",
                                              "type": "uint256"
                                            },
                                            "children": [
                                              {
                                                "attributes": {
                                                  "overloadedDeclarations": [
                                                    null
                                                  ],
                                                  "referencedDeclaration": 10151,
                                                  "type": "uint256",
                                                  "value": "xc"
                                                },
                                                "id": 10222,
                                                "name": "Identifier",
                                                "src": "22510:2:38"
                                              },
                                              {
                                                "attributes": {
                                                  "hexvalue": "34",
                                                  "isConstant": false,
                                                  "isLValue": false,
                                                  "isPure": true,
                                                  "lValueRequested": false,
                                                  "token": "number",
                                                  "type": "int_const 4",
                                                  "value": "4"
                                                },
                                                "id": 10223,
                                                "name": "Literal",
                                                "src": "22517:1:38"
                                              }
                                            ],
                                            "id": 10224,
                                            "name": "Assignment",
                                            "src": "22510:8:38"
                                          }
                                        ],
                                        "id": 10225,
                                        "name": "ExpressionStatement",
                                        "src": "22510:8:38"
                                      },
                                      {
                                        "children": [
                                          {
                                            "attributes": {
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": false,
                                              "lValueRequested": false,
                                              "operator": "+=",
                                              "type": "int256"
                                            },
                                            "children": [
                                              {
                                                "attributes": {
                                                  "overloadedDeclarations": [
                                                    null
                                                  ],
                                                  "referencedDeclaration": 10147,
                                                  "type": "int256",
                                                  "value": "msb"
                                                },
                                                "id": 10226,
                                                "name": "Identifier",
                                                "src": "22520:3:38"
                                              },
                                              {
                                                "attributes": {
                                                  "hexvalue": "34",
                                                  "isConstant": false,
                                                  "isLValue": false,
                                                  "isPure": true,
                                                  "lValueRequested": false,
                                                  "token": "number",
                                                  "type": "int_const 4",
                                                  "value": "4"
                                                },
                                                "id": 10227,
                                                "name": "Literal",
                                                "src": "22527:1:38"
                                              }
                                            ],
                                            "id": 10228,
                                            "name": "Assignment",
                                            "src": "22520:8:38"
                                          }
                                        ],
                                        "id": 10229,
                                        "name": "ExpressionStatement",
                                        "src": "22520:8:38"
                                      }
                                    ],
                                    "id": 10230,
                                    "name": "Block",
                                    "src": "22508:23:38"
                                  }
                                ],
                                "id": 10231,
                                "name": "IfStatement",
                                "src": "22492:39:38"
                              },
                              {
                                "attributes": {},
                                "children": [
                                  {
                                    "attributes": {
                                      "commonType": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      },
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "operator": ">=",
                                      "type": "bool"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 10151,
                                          "type": "uint256",
                                          "value": "xc"
                                        },
                                        "id": 10232,
                                        "name": "Identifier",
                                        "src": "22542:2:38"
                                      },
                                      {
                                        "attributes": {
                                          "hexvalue": "307834",
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "token": "number",
                                          "type": "int_const 4",
                                          "value": "0x4"
                                        },
                                        "id": 10233,
                                        "name": "Literal",
                                        "src": "22548:3:38"
                                      }
                                    ],
                                    "id": 10234,
                                    "name": "BinaryOperation",
                                    "src": "22542:9:38"
                                  },
                                  {
                                    "children": [
                                      {
                                        "children": [
                                          {
                                            "attributes": {
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": false,
                                              "lValueRequested": false,
                                              "operator": ">>=",
                                              "type": "uint256"
                                            },
                                            "children": [
                                              {
                                                "attributes": {
                                                  "overloadedDeclarations": [
                                                    null
                                                  ],
                                                  "referencedDeclaration": 10151,
                                                  "type": "uint256",
                                                  "value": "xc"
                                                },
                                                "id": 10235,
                                                "name": "Identifier",
                                                "src": "22555:2:38"
                                              },
                                              {
                                                "attributes": {
                                                  "hexvalue": "32",
                                                  "isConstant": false,
                                                  "isLValue": false,
                                                  "isPure": true,
                                                  "lValueRequested": false,
                                                  "token": "number",
                                                  "type": "int_const 2",
                                                  "value": "2"
                                                },
                                                "id": 10236,
                                                "name": "Literal",
                                                "src": "22562:1:38"
                                              }
                                            ],
                                            "id": 10237,
                                            "name": "Assignment",
                                            "src": "22555:8:38"
                                          }
                                        ],
                                        "id": 10238,
                                        "name": "ExpressionStatement",
                                        "src": "22555:8:38"
                                      },
                                      {
                                        "children": [
                                          {
                                            "attributes": {
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": false,
                                              "lValueRequested": false,
                                              "operator": "+=",
                                              "type": "int256"
                                            },
                                            "children": [
                                              {
                                                "attributes": {
                                                  "overloadedDeclarations": [
                                                    null
                                                  ],
                                                  "referencedDeclaration": 10147,
                                                  "type": "int256",
                                                  "value": "msb"
                                                },
                                                "id": 10239,
                                                "name": "Identifier",
                                                "src": "22565:3:38"
                                              },
                                              {
                                                "attributes": {
                                                  "hexvalue": "32",
                                                  "isConstant": false,
                                                  "isLValue": false,
                                                  "isPure": true,
                                                  "lValueRequested": false,
                                                  "token": "number",
                                                  "type": "int_const 2",
                                                  "value": "2"
                                                },
                                                "id": 10240,
                                                "name": "Literal",
                                                "src": "22572:1:38"
                                              }
                                            ],
                                            "id": 10241,
                                            "name": "Assignment",
                                            "src": "22565:8:38"
                                          }
                                        ],
                                        "id": 10242,
                                        "name": "ExpressionStatement",
                                        "src": "22565:8:38"
                                      }
                                    ],
                                    "id": 10243,
                                    "name": "Block",
                                    "src": "22553:23:38"
                                  }
                                ],
                                "id": 10244,
                                "name": "IfStatement",
                                "src": "22538:38:38"
                              },
                              {
                                "attributes": {},
                                "children": [
                                  {
                                    "attributes": {
                                      "commonType": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      },
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "operator": ">=",
                                      "type": "bool"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 10151,
                                          "type": "uint256",
                                          "value": "xc"
                                        },
                                        "id": 10245,
                                        "name": "Identifier",
                                        "src": "22587:2:38"
                                      },
                                      {
                                        "attributes": {
                                          "hexvalue": "307832",
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "token": "number",
                                          "type": "int_const 2",
                                          "value": "0x2"
                                        },
                                        "id": 10246,
                                        "name": "Literal",
                                        "src": "22593:3:38"
                                      }
                                    ],
                                    "id": 10247,
                                    "name": "BinaryOperation",
                                    "src": "22587:9:38"
                                  },
                                  {
                                    "children": [
                                      {
                                        "attributes": {
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "operator": "+=",
                                          "type": "int256"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 10147,
                                              "type": "int256",
                                              "value": "msb"
                                            },
                                            "id": 10248,
                                            "name": "Identifier",
                                            "src": "22598:3:38"
                                          },
                                          {
                                            "attributes": {
                                              "hexvalue": "31",
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "lValueRequested": false,
                                              "token": "number",
                                              "type": "int_const 1",
                                              "value": "1"
                                            },
                                            "id": 10249,
                                            "name": "Literal",
                                            "src": "22605:1:38"
                                          }
                                        ],
                                        "id": 10250,
                                        "name": "Assignment",
                                        "src": "22598:8:38"
                                      }
                                    ],
                                    "id": 10251,
                                    "name": "ExpressionStatement",
                                    "src": "22598:8:38"
                                  }
                                ],
                                "id": 10252,
                                "name": "IfStatement",
                                "src": "22583:23:38"
                              },
                              {
                                "attributes": {
                                  "assignments": [
                                    10254
                                  ]
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "constant": false,
                                      "mutability": "mutable",
                                      "name": "xe",
                                      "scope": 10412,
                                      "stateVariable": false,
                                      "storageLocation": "default",
                                      "type": "int256",
                                      "visibility": "internal"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "name": "int256",
                                          "type": "int256"
                                        },
                                        "id": 10253,
                                        "name": "ElementaryTypeName",
                                        "src": "22647:6:38"
                                      }
                                    ],
                                    "id": 10254,
                                    "name": "VariableDeclaration",
                                    "src": "22647:9:38"
                                  },
                                  {
                                    "attributes": {
                                      "commonType": {
                                        "typeIdentifier": "t_int256",
                                        "typeString": "int256"
                                      },
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "operator": "-",
                                      "type": "int256"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 10147,
                                          "type": "int256",
                                          "value": "msb"
                                        },
                                        "id": 10255,
                                        "name": "Identifier",
                                        "src": "22659:3:38"
                                      },
                                      {
                                        "attributes": {
                                          "hexvalue": "313237",
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "token": "number",
                                          "type": "int_const 127",
                                          "value": "127"
                                        },
                                        "id": 10256,
                                        "name": "Literal",
                                        "src": "22665:3:38"
                                      }
                                    ],
                                    "id": 10257,
                                    "name": "BinaryOperation",
                                    "src": "22659:9:38"
                                  }
                                ],
                                "id": 10258,
                                "name": "VariableDeclarationStatement",
                                "src": "22647:21:38"
                              },
                              {
                                "children": [
                                  {
                                    "attributes": {
                                      "commonType": {
                                        "typeIdentifier": "t_int256",
                                        "typeString": "int256"
                                      },
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "operator": ">",
                                      "type": "bool"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 10254,
                                          "type": "int256",
                                          "value": "xe"
                                        },
                                        "id": 10259,
                                        "name": "Identifier",
                                        "src": "22680:2:38"
                                      },
                                      {
                                        "attributes": {
                                          "hexvalue": "30",
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "token": "number",
                                          "type": "int_const 0",
                                          "value": "0"
                                        },
                                        "id": 10260,
                                        "name": "Literal",
                                        "src": "22685:1:38"
                                      }
                                    ],
                                    "id": 10261,
                                    "name": "BinaryOperation",
                                    "src": "22680:6:38"
                                  },
                                  {
                                    "children": [
                                      {
                                        "attributes": {
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "operator": ">>=",
                                          "type": "uint256"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 10129,
                                              "type": "uint256",
                                              "value": "x"
                                            },
                                            "id": 10262,
                                            "name": "Identifier",
                                            "src": "22688:1:38"
                                          },
                                          {
                                            "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": 10263,
                                                    "name": "ElementaryTypeName",
                                                    "src": "22694:7:38"
                                                  }
                                                ],
                                                "id": 10264,
                                                "name": "ElementaryTypeNameExpression",
                                                "src": "22694:7:38"
                                              },
                                              {
                                                "attributes": {
                                                  "overloadedDeclarations": [
                                                    null
                                                  ],
                                                  "referencedDeclaration": 10254,
                                                  "type": "int256",
                                                  "value": "xe"
                                                },
                                                "id": 10265,
                                                "name": "Identifier",
                                                "src": "22703:2:38"
                                              }
                                            ],
                                            "id": 10266,
                                            "name": "FunctionCall",
                                            "src": "22694:12:38"
                                          }
                                        ],
                                        "id": 10267,
                                        "name": "Assignment",
                                        "src": "22688:18:38"
                                      }
                                    ],
                                    "id": 10268,
                                    "name": "ExpressionStatement",
                                    "src": "22688:18:38"
                                  },
                                  {
                                    "children": [
                                      {
                                        "attributes": {
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "operator": "<<=",
                                          "type": "uint256"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 10129,
                                              "type": "uint256",
                                              "value": "x"
                                            },
                                            "id": 10269,
                                            "name": "Identifier",
                                            "src": "22719:1:38"
                                          },
                                          {
                                            "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": 10270,
                                                    "name": "ElementaryTypeName",
                                                    "src": "22725:7:38"
                                                  }
                                                ],
                                                "id": 10271,
                                                "name": "ElementaryTypeNameExpression",
                                                "src": "22725:7:38"
                                              },
                                              {
                                                "attributes": {
                                                  "isConstant": false,
                                                  "isLValue": false,
                                                  "isPure": false,
                                                  "lValueRequested": false,
                                                  "operator": "-",
                                                  "prefix": true,
                                                  "type": "int256"
                                                },
                                                "children": [
                                                  {
                                                    "attributes": {
                                                      "overloadedDeclarations": [
                                                        null
                                                      ],
                                                      "referencedDeclaration": 10254,
                                                      "type": "int256",
                                                      "value": "xe"
                                                    },
                                                    "id": 10272,
                                                    "name": "Identifier",
                                                    "src": "22735:2:38"
                                                  }
                                                ],
                                                "id": 10273,
                                                "name": "UnaryOperation",
                                                "src": "22734:3:38"
                                              }
                                            ],
                                            "id": 10274,
                                            "name": "FunctionCall",
                                            "src": "22725:13:38"
                                          }
                                        ],
                                        "id": 10275,
                                        "name": "Assignment",
                                        "src": "22719:19:38"
                                      }
                                    ],
                                    "id": 10276,
                                    "name": "ExpressionStatement",
                                    "src": "22719:19:38"
                                  }
                                ],
                                "id": 10277,
                                "name": "IfStatement",
                                "src": "22676:62:38"
                              },
                              {
                                "attributes": {
                                  "assignments": [
                                    10279
                                  ]
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "constant": false,
                                      "mutability": "mutable",
                                      "name": "result",
                                      "scope": 10412,
                                      "stateVariable": false,
                                      "storageLocation": "default",
                                      "type": "uint256",
                                      "visibility": "internal"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "name": "uint256",
                                          "type": "uint256"
                                        },
                                        "id": 10278,
                                        "name": "ElementaryTypeName",
                                        "src": "22747:7:38"
                                      }
                                    ],
                                    "id": 10279,
                                    "name": "VariableDeclaration",
                                    "src": "22747:14:38"
                                  },
                                  {
                                    "attributes": {
                                      "hexvalue": "30783830303030303030303030303030303030303030303030303030303030303030",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "token": "number",
                                      "type": "int_const 1701...(31 digits omitted)...5728",
                                      "value": "0x80000000000000000000000000000000"
                                    },
                                    "id": 10280,
                                    "name": "Literal",
                                    "src": "22764:34:38"
                                  }
                                ],
                                "id": 10281,
                                "name": "VariableDeclarationStatement",
                                "src": "22747:51:38"
                              },
                              {
                                "attributes": {
                                  "assignments": [
                                    10283
                                  ]
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "constant": false,
                                      "mutability": "mutable",
                                      "name": "re",
                                      "scope": 10412,
                                      "stateVariable": false,
                                      "storageLocation": "default",
                                      "type": "int256",
                                      "visibility": "internal"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "name": "int256",
                                          "type": "int256"
                                        },
                                        "id": 10282,
                                        "name": "ElementaryTypeName",
                                        "src": "22806:6:38"
                                      }
                                    ],
                                    "id": 10283,
                                    "name": "VariableDeclaration",
                                    "src": "22806:9:38"
                                  },
                                  {
                                    "attributes": {
                                      "hexvalue": "30",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "token": "number",
                                      "type": "int_const 0",
                                      "value": "0"
                                    },
                                    "id": 10284,
                                    "name": "Literal",
                                    "src": "22818:1:38"
                                  }
                                ],
                                "id": 10285,
                                "name": "VariableDeclarationStatement",
                                "src": "22806:13:38"
                              },
                              {
                                "children": [
                                  {
                                    "attributes": {
                                      "commonType": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      },
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "operator": ">",
                                      "type": "bool"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 10131,
                                          "type": "uint256",
                                          "value": "y"
                                        },
                                        "id": 10286,
                                        "name": "Identifier",
                                        "src": "22835:1:38"
                                      },
                                      {
                                        "attributes": {
                                          "hexvalue": "30",
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "token": "number",
                                          "type": "int_const 0",
                                          "value": "0"
                                        },
                                        "id": 10287,
                                        "name": "Literal",
                                        "src": "22839:1:38"
                                      }
                                    ],
                                    "id": 10288,
                                    "name": "BinaryOperation",
                                    "src": "22835:5:38"
                                  },
                                  {
                                    "children": [
                                      {
                                        "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": 10131,
                                                      "type": "uint256",
                                                      "value": "y"
                                                    },
                                                    "id": 10289,
                                                    "name": "Identifier",
                                                    "src": "22856:1:38"
                                                  },
                                                  {
                                                    "attributes": {
                                                      "hexvalue": "31",
                                                      "isConstant": false,
                                                      "isLValue": false,
                                                      "isPure": true,
                                                      "lValueRequested": false,
                                                      "token": "number",
                                                      "type": "int_const 1",
                                                      "value": "1"
                                                    },
                                                    "id": 10290,
                                                    "name": "Literal",
                                                    "src": "22860:1:38"
                                                  }
                                                ],
                                                "id": 10291,
                                                "name": "BinaryOperation",
                                                "src": "22856:5:38"
                                              },
                                              {
                                                "attributes": {
                                                  "hexvalue": "30",
                                                  "isConstant": false,
                                                  "isLValue": false,
                                                  "isPure": true,
                                                  "lValueRequested": false,
                                                  "token": "number",
                                                  "type": "int_const 0",
                                                  "value": "0"
                                                },
                                                "id": 10292,
                                                "name": "Literal",
                                                "src": "22864:1:38"
                                              }
                                            ],
                                            "id": 10293,
                                            "name": "BinaryOperation",
                                            "src": "22856:9:38"
                                          },
                                          {
                                            "children": [
                                              {
                                                "children": [
                                                  {
                                                    "attributes": {
                                                      "isConstant": false,
                                                      "isLValue": false,
                                                      "isPure": false,
                                                      "lValueRequested": false,
                                                      "operator": "=",
                                                      "type": "uint256"
                                                    },
                                                    "children": [
                                                      {
                                                        "attributes": {
                                                          "overloadedDeclarations": [
                                                            null
                                                          ],
                                                          "referencedDeclaration": 10279,
                                                          "type": "uint256",
                                                          "value": "result"
                                                        },
                                                        "id": 10294,
                                                        "name": "Identifier",
                                                        "src": "22879:6:38"
                                                      },
                                                      {
                                                        "attributes": {
                                                          "commonType": {
                                                            "typeIdentifier": "t_uint256",
                                                            "typeString": "uint256"
                                                          },
                                                          "isConstant": false,
                                                          "isLValue": false,
                                                          "isPure": false,
                                                          "lValueRequested": false,
                                                          "operator": "*",
                                                          "type": "uint256"
                                                        },
                                                        "children": [
                                                          {
                                                            "attributes": {
                                                              "overloadedDeclarations": [
                                                                null
                                                              ],
                                                              "referencedDeclaration": 10279,
                                                              "type": "uint256",
                                                              "value": "result"
                                                            },
                                                            "id": 10295,
                                                            "name": "Identifier",
                                                            "src": "22888:6:38"
                                                          },
                                                          {
                                                            "attributes": {
                                                              "overloadedDeclarations": [
                                                                null
                                                              ],
                                                              "referencedDeclaration": 10129,
                                                              "type": "uint256",
                                                              "value": "x"
                                                            },
                                                            "id": 10296,
                                                            "name": "Identifier",
                                                            "src": "22897:1:38"
                                                          }
                                                        ],
                                                        "id": 10297,
                                                        "name": "BinaryOperation",
                                                        "src": "22888:10:38"
                                                      }
                                                    ],
                                                    "id": 10298,
                                                    "name": "Assignment",
                                                    "src": "22879:19:38"
                                                  }
                                                ],
                                                "id": 10299,
                                                "name": "ExpressionStatement",
                                                "src": "22879:19:38"
                                              },
                                              {
                                                "children": [
                                                  {
                                                    "attributes": {
                                                      "isConstant": false,
                                                      "isLValue": false,
                                                      "isPure": false,
                                                      "lValueRequested": false,
                                                      "operator": "-=",
                                                      "type": "uint256"
                                                    },
                                                    "children": [
                                                      {
                                                        "attributes": {
                                                          "overloadedDeclarations": [
                                                            null
                                                          ],
                                                          "referencedDeclaration": 10131,
                                                          "type": "uint256",
                                                          "value": "y"
                                                        },
                                                        "id": 10300,
                                                        "name": "Identifier",
                                                        "src": "22910:1:38"
                                                      },
                                                      {
                                                        "attributes": {
                                                          "hexvalue": "31",
                                                          "isConstant": false,
                                                          "isLValue": false,
                                                          "isPure": true,
                                                          "lValueRequested": false,
                                                          "token": "number",
                                                          "type": "int_const 1",
                                                          "value": "1"
                                                        },
                                                        "id": 10301,
                                                        "name": "Literal",
                                                        "src": "22915:1:38"
                                                      }
                                                    ],
                                                    "id": 10302,
                                                    "name": "Assignment",
                                                    "src": "22910:6:38"
                                                  }
                                                ],
                                                "id": 10303,
                                                "name": "ExpressionStatement",
                                                "src": "22910:6:38"
                                              },
                                              {
                                                "children": [
                                                  {
                                                    "attributes": {
                                                      "isConstant": false,
                                                      "isLValue": false,
                                                      "isPure": false,
                                                      "lValueRequested": false,
                                                      "operator": "+=",
                                                      "type": "int256"
                                                    },
                                                    "children": [
                                                      {
                                                        "attributes": {
                                                          "overloadedDeclarations": [
                                                            null
                                                          ],
                                                          "referencedDeclaration": 10283,
                                                          "type": "int256",
                                                          "value": "re"
                                                        },
                                                        "id": 10304,
                                                        "name": "Identifier",
                                                        "src": "22928:2:38"
                                                      },
                                                      {
                                                        "attributes": {
                                                          "overloadedDeclarations": [
                                                            null
                                                          ],
                                                          "referencedDeclaration": 10254,
                                                          "type": "int256",
                                                          "value": "xe"
                                                        },
                                                        "id": 10305,
                                                        "name": "Identifier",
                                                        "src": "22934:2:38"
                                                      }
                                                    ],
                                                    "id": 10306,
                                                    "name": "Assignment",
                                                    "src": "22928:8:38"
                                                  }
                                                ],
                                                "id": 10307,
                                                "name": "ExpressionStatement",
                                                "src": "22928:8:38"
                                              },
                                              {
                                                "children": [
                                                  {
                                                    "attributes": {
                                                      "commonType": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                      },
                                                      "isConstant": false,
                                                      "isLValue": false,
                                                      "isPure": false,
                                                      "lValueRequested": false,
                                                      "operator": ">=",
                                                      "type": "bool"
                                                    },
                                                    "children": [
                                                      {
                                                        "attributes": {
                                                          "overloadedDeclarations": [
                                                            null
                                                          ],
                                                          "referencedDeclaration": 10279,
                                                          "type": "uint256",
                                                          "value": "result"
                                                        },
                                                        "id": 10308,
                                                        "name": "Identifier",
                                                        "src": "22952:6:38"
                                                      },
                                                      {
                                                        "attributes": {
                                                          "hexvalue": "307838303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030",
                                                          "isConstant": false,
                                                          "isLValue": false,
                                                          "isPure": true,
                                                          "lValueRequested": false,
                                                          "token": "number",
                                                          "type": "int_const 5789...(69 digits omitted)...9968",
                                                          "value": "0x8000000000000000000000000000000000000000000000000000000000000000"
                                                        },
                                                        "id": 10309,
                                                        "name": "Literal",
                                                        "src": "22974:66:38"
                                                      }
                                                    ],
                                                    "id": 10310,
                                                    "name": "BinaryOperation",
                                                    "src": "22952:88:38"
                                                  },
                                                  {
                                                    "children": [
                                                      {
                                                        "children": [
                                                          {
                                                            "attributes": {
                                                              "isConstant": false,
                                                              "isLValue": false,
                                                              "isPure": false,
                                                              "lValueRequested": false,
                                                              "operator": ">>=",
                                                              "type": "uint256"
                                                            },
                                                            "children": [
                                                              {
                                                                "attributes": {
                                                                  "overloadedDeclarations": [
                                                                    null
                                                                  ],
                                                                  "referencedDeclaration": 10279,
                                                                  "type": "uint256",
                                                                  "value": "result"
                                                                },
                                                                "id": 10311,
                                                                "name": "Identifier",
                                                                "src": "23056:6:38"
                                                              },
                                                              {
                                                                "attributes": {
                                                                  "hexvalue": "313238",
                                                                  "isConstant": false,
                                                                  "isLValue": false,
                                                                  "isPure": true,
                                                                  "lValueRequested": false,
                                                                  "token": "number",
                                                                  "type": "int_const 128",
                                                                  "value": "128"
                                                                },
                                                                "id": 10312,
                                                                "name": "Literal",
                                                                "src": "23067:3:38"
                                                              }
                                                            ],
                                                            "id": 10313,
                                                            "name": "Assignment",
                                                            "src": "23056:14:38"
                                                          }
                                                        ],
                                                        "id": 10314,
                                                        "name": "ExpressionStatement",
                                                        "src": "23056:14:38"
                                                      },
                                                      {
                                                        "children": [
                                                          {
                                                            "attributes": {
                                                              "isConstant": false,
                                                              "isLValue": false,
                                                              "isPure": false,
                                                              "lValueRequested": false,
                                                              "operator": "+=",
                                                              "type": "int256"
                                                            },
                                                            "children": [
                                                              {
                                                                "attributes": {
                                                                  "overloadedDeclarations": [
                                                                    null
                                                                  ],
                                                                  "referencedDeclaration": 10283,
                                                                  "type": "int256",
                                                                  "value": "re"
                                                                },
                                                                "id": 10315,
                                                                "name": "Identifier",
                                                                "src": "23084:2:38"
                                                              },
                                                              {
                                                                "attributes": {
                                                                  "hexvalue": "31",
                                                                  "isConstant": false,
                                                                  "isLValue": false,
                                                                  "isPure": true,
                                                                  "lValueRequested": false,
                                                                  "token": "number",
                                                                  "type": "int_const 1",
                                                                  "value": "1"
                                                                },
                                                                "id": 10316,
                                                                "name": "Literal",
                                                                "src": "23090:1:38"
                                                              }
                                                            ],
                                                            "id": 10317,
                                                            "name": "Assignment",
                                                            "src": "23084:7:38"
                                                          }
                                                        ],
                                                        "id": 10318,
                                                        "name": "ExpressionStatement",
                                                        "src": "23084:7:38"
                                                      }
                                                    ],
                                                    "id": 10319,
                                                    "name": "Block",
                                                    "src": "23042:62:38"
                                                  },
                                                  {
                                                    "children": [
                                                      {
                                                        "attributes": {
                                                          "isConstant": false,
                                                          "isLValue": false,
                                                          "isPure": false,
                                                          "lValueRequested": false,
                                                          "operator": ">>=",
                                                          "type": "uint256"
                                                        },
                                                        "children": [
                                                          {
                                                            "attributes": {
                                                              "overloadedDeclarations": [
                                                                null
                                                              ],
                                                              "referencedDeclaration": 10279,
                                                              "type": "uint256",
                                                              "value": "result"
                                                            },
                                                            "id": 10320,
                                                            "name": "Identifier",
                                                            "src": "23110:6:38"
                                                          },
                                                          {
                                                            "attributes": {
                                                              "hexvalue": "313237",
                                                              "isConstant": false,
                                                              "isLValue": false,
                                                              "isPure": true,
                                                              "lValueRequested": false,
                                                              "token": "number",
                                                              "type": "int_const 127",
                                                              "value": "127"
                                                            },
                                                            "id": 10321,
                                                            "name": "Literal",
                                                            "src": "23121:3:38"
                                                          }
                                                        ],
                                                        "id": 10322,
                                                        "name": "Assignment",
                                                        "src": "23110:14:38"
                                                      }
                                                    ],
                                                    "id": 10323,
                                                    "name": "ExpressionStatement",
                                                    "src": "23110:14:38"
                                                  }
                                                ],
                                                "id": 10324,
                                                "name": "IfStatement",
                                                "src": "22948:176:38"
                                              },
                                              {
                                                "attributes": {},
                                                "children": [
                                                  {
                                                    "attributes": {
                                                      "commonType": {
                                                        "typeIdentifier": "t_int256",
                                                        "typeString": "int256"
                                                      },
                                                      "isConstant": false,
                                                      "isLValue": false,
                                                      "isPure": false,
                                                      "lValueRequested": false,
                                                      "operator": "<",
                                                      "type": "bool"
                                                    },
                                                    "children": [
                                                      {
                                                        "attributes": {
                                                          "overloadedDeclarations": [
                                                            null
                                                          ],
                                                          "referencedDeclaration": 10283,
                                                          "type": "int256",
                                                          "value": "re"
                                                        },
                                                        "id": 10325,
                                                        "name": "Identifier",
                                                        "src": "23140:2:38"
                                                      },
                                                      {
                                                        "attributes": {
                                                          "isConstant": false,
                                                          "isLValue": false,
                                                          "isPure": true,
                                                          "lValueRequested": false,
                                                          "operator": "-",
                                                          "prefix": true,
                                                          "type": "int_const -127"
                                                        },
                                                        "children": [
                                                          {
                                                            "attributes": {
                                                              "hexvalue": "313237",
                                                              "isConstant": false,
                                                              "isLValue": false,
                                                              "isPure": true,
                                                              "lValueRequested": false,
                                                              "token": "number",
                                                              "type": "int_const 127",
                                                              "value": "127"
                                                            },
                                                            "id": 10326,
                                                            "name": "Literal",
                                                            "src": "23146:3:38"
                                                          }
                                                        ],
                                                        "id": 10327,
                                                        "name": "UnaryOperation",
                                                        "src": "23145:4:38"
                                                      }
                                                    ],
                                                    "id": 10328,
                                                    "name": "BinaryOperation",
                                                    "src": "23140:9:38"
                                                  },
                                                  {
                                                    "attributes": {
                                                      "functionReturnParameters": 10135
                                                    },
                                                    "children": [
                                                      {
                                                        "attributes": {
                                                          "hexvalue": "30",
                                                          "isConstant": false,
                                                          "isLValue": false,
                                                          "isPure": true,
                                                          "lValueRequested": false,
                                                          "token": "number",
                                                          "type": "int_const 0",
                                                          "value": "0"
                                                        },
                                                        "id": 10329,
                                                        "name": "Literal",
                                                        "src": "23158:1:38"
                                                      }
                                                    ],
                                                    "id": 10330,
                                                    "name": "Return",
                                                    "src": "23151:8:38"
                                                  }
                                                ],
                                                "id": 10331,
                                                "name": "IfStatement",
                                                "src": "23136:23:38"
                                              },
                                              {
                                                "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"
                                                            }
                                                          ],
                                                          "overloadedDeclarations": [
                                                            4294967278,
                                                            4294967278
                                                          ],
                                                          "referencedDeclaration": 4294967278,
                                                          "type": "function (bool) pure",
                                                          "value": "require"
                                                        },
                                                        "id": 10332,
                                                        "name": "Identifier",
                                                        "src": "23184:7:38"
                                                      },
                                                      {
                                                        "attributes": {
                                                          "commonType": {
                                                            "typeIdentifier": "t_int256",
                                                            "typeString": "int256"
                                                          },
                                                          "isConstant": false,
                                                          "isLValue": false,
                                                          "isPure": false,
                                                          "lValueRequested": false,
                                                          "operator": "<",
                                                          "type": "bool"
                                                        },
                                                        "children": [
                                                          {
                                                            "attributes": {
                                                              "overloadedDeclarations": [
                                                                null
                                                              ],
                                                              "referencedDeclaration": 10283,
                                                              "type": "int256",
                                                              "value": "re"
                                                            },
                                                            "id": 10333,
                                                            "name": "Identifier",
                                                            "src": "23193:2:38"
                                                          },
                                                          {
                                                            "attributes": {
                                                              "hexvalue": "313238",
                                                              "isConstant": false,
                                                              "isLValue": false,
                                                              "isPure": true,
                                                              "lValueRequested": false,
                                                              "token": "number",
                                                              "type": "int_const 128",
                                                              "value": "128"
                                                            },
                                                            "id": 10334,
                                                            "name": "Literal",
                                                            "src": "23198:3:38"
                                                          }
                                                        ],
                                                        "id": 10335,
                                                        "name": "BinaryOperation",
                                                        "src": "23193:8:38"
                                                      }
                                                    ],
                                                    "id": 10336,
                                                    "name": "FunctionCall",
                                                    "src": "23184:18:38"
                                                  }
                                                ],
                                                "id": 10337,
                                                "name": "ExpressionStatement",
                                                "src": "23184:18:38"
                                              }
                                            ],
                                            "id": 10338,
                                            "name": "Block",
                                            "src": "22867:358:38"
                                          },
                                          {
                                            "children": [
                                              {
                                                "children": [
                                                  {
                                                    "attributes": {
                                                      "isConstant": false,
                                                      "isLValue": false,
                                                      "isPure": false,
                                                      "lValueRequested": false,
                                                      "operator": "=",
                                                      "type": "uint256"
                                                    },
                                                    "children": [
                                                      {
                                                        "attributes": {
                                                          "overloadedDeclarations": [
                                                            null
                                                          ],
                                                          "referencedDeclaration": 10129,
                                                          "type": "uint256",
                                                          "value": "x"
                                                        },
                                                        "id": 10339,
                                                        "name": "Identifier",
                                                        "src": "23243:1:38"
                                                      },
                                                      {
                                                        "attributes": {
                                                          "commonType": {
                                                            "typeIdentifier": "t_uint256",
                                                            "typeString": "uint256"
                                                          },
                                                          "isConstant": false,
                                                          "isLValue": false,
                                                          "isPure": false,
                                                          "lValueRequested": false,
                                                          "operator": "*",
                                                          "type": "uint256"
                                                        },
                                                        "children": [
                                                          {
                                                            "attributes": {
                                                              "overloadedDeclarations": [
                                                                null
                                                              ],
                                                              "referencedDeclaration": 10129,
                                                              "type": "uint256",
                                                              "value": "x"
                                                            },
                                                            "id": 10340,
                                                            "name": "Identifier",
                                                            "src": "23247:1:38"
                                                          },
                                                          {
                                                            "attributes": {
                                                              "overloadedDeclarations": [
                                                                null
                                                              ],
                                                              "referencedDeclaration": 10129,
                                                              "type": "uint256",
                                                              "value": "x"
                                                            },
                                                            "id": 10341,
                                                            "name": "Identifier",
                                                            "src": "23251:1:38"
                                                          }
                                                        ],
                                                        "id": 10342,
                                                        "name": "BinaryOperation",
                                                        "src": "23247:5:38"
                                                      }
                                                    ],
                                                    "id": 10343,
                                                    "name": "Assignment",
                                                    "src": "23243:9:38"
                                                  }
                                                ],
                                                "id": 10344,
                                                "name": "ExpressionStatement",
                                                "src": "23243:9:38"
                                              },
                                              {
                                                "children": [
                                                  {
                                                    "attributes": {
                                                      "isConstant": false,
                                                      "isLValue": false,
                                                      "isPure": false,
                                                      "lValueRequested": false,
                                                      "operator": ">>=",
                                                      "type": "uint256"
                                                    },
                                                    "children": [
                                                      {
                                                        "attributes": {
                                                          "overloadedDeclarations": [
                                                            null
                                                          ],
                                                          "referencedDeclaration": 10131,
                                                          "type": "uint256",
                                                          "value": "y"
                                                        },
                                                        "id": 10345,
                                                        "name": "Identifier",
                                                        "src": "23264:1:38"
                                                      },
                                                      {
                                                        "attributes": {
                                                          "hexvalue": "31",
                                                          "isConstant": false,
                                                          "isLValue": false,
                                                          "isPure": true,
                                                          "lValueRequested": false,
                                                          "token": "number",
                                                          "type": "int_const 1",
                                                          "value": "1"
                                                        },
                                                        "id": 10346,
                                                        "name": "Literal",
                                                        "src": "23270:1:38"
                                                      }
                                                    ],
                                                    "id": 10347,
                                                    "name": "Assignment",
                                                    "src": "23264:7:38"
                                                  }
                                                ],
                                                "id": 10348,
                                                "name": "ExpressionStatement",
                                                "src": "23264:7:38"
                                              },
                                              {
                                                "children": [
                                                  {
                                                    "attributes": {
                                                      "isConstant": false,
                                                      "isLValue": false,
                                                      "isPure": false,
                                                      "lValueRequested": false,
                                                      "operator": "<<=",
                                                      "type": "int256"
                                                    },
                                                    "children": [
                                                      {
                                                        "attributes": {
                                                          "overloadedDeclarations": [
                                                            null
                                                          ],
                                                          "referencedDeclaration": 10254,
                                                          "type": "int256",
                                                          "value": "xe"
                                                        },
                                                        "id": 10349,
                                                        "name": "Identifier",
                                                        "src": "23283:2:38"
                                                      },
                                                      {
                                                        "attributes": {
                                                          "hexvalue": "31",
                                                          "isConstant": false,
                                                          "isLValue": false,
                                                          "isPure": true,
                                                          "lValueRequested": false,
                                                          "token": "number",
                                                          "type": "int_const 1",
                                                          "value": "1"
                                                        },
                                                        "id": 10350,
                                                        "name": "Literal",
                                                        "src": "23290:1:38"
                                                      }
                                                    ],
                                                    "id": 10351,
                                                    "name": "Assignment",
                                                    "src": "23283:8:38"
                                                  }
                                                ],
                                                "id": 10352,
                                                "name": "ExpressionStatement",
                                                "src": "23283:8:38"
                                              },
                                              {
                                                "children": [
                                                  {
                                                    "attributes": {
                                                      "commonType": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                      },
                                                      "isConstant": false,
                                                      "isLValue": false,
                                                      "isPure": false,
                                                      "lValueRequested": false,
                                                      "operator": ">=",
                                                      "type": "bool"
                                                    },
                                                    "children": [
                                                      {
                                                        "attributes": {
                                                          "overloadedDeclarations": [
                                                            null
                                                          ],
                                                          "referencedDeclaration": 10129,
                                                          "type": "uint256",
                                                          "value": "x"
                                                        },
                                                        "id": 10353,
                                                        "name": "Identifier",
                                                        "src": "23307:1:38"
                                                      },
                                                      {
                                                        "attributes": {
                                                          "hexvalue": "307838303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030",
                                                          "isConstant": false,
                                                          "isLValue": false,
                                                          "isPure": true,
                                                          "lValueRequested": false,
                                                          "token": "number",
                                                          "type": "int_const 5789...(69 digits omitted)...9968",
                                                          "value": "0x8000000000000000000000000000000000000000000000000000000000000000"
                                                        },
                                                        "id": 10354,
                                                        "name": "Literal",
                                                        "src": "23324:66:38"
                                                      }
                                                    ],
                                                    "id": 10355,
                                                    "name": "BinaryOperation",
                                                    "src": "23307:83:38"
                                                  },
                                                  {
                                                    "children": [
                                                      {
                                                        "children": [
                                                          {
                                                            "attributes": {
                                                              "isConstant": false,
                                                              "isLValue": false,
                                                              "isPure": false,
                                                              "lValueRequested": false,
                                                              "operator": ">>=",
                                                              "type": "uint256"
                                                            },
                                                            "children": [
                                                              {
                                                                "attributes": {
                                                                  "overloadedDeclarations": [
                                                                    null
                                                                  ],
                                                                  "referencedDeclaration": 10129,
                                                                  "type": "uint256",
                                                                  "value": "x"
                                                                },
                                                                "id": 10356,
                                                                "name": "Identifier",
                                                                "src": "23406:1:38"
                                                              },
                                                              {
                                                                "attributes": {
                                                                  "hexvalue": "313238",
                                                                  "isConstant": false,
                                                                  "isLValue": false,
                                                                  "isPure": true,
                                                                  "lValueRequested": false,
                                                                  "token": "number",
                                                                  "type": "int_const 128",
                                                                  "value": "128"
                                                                },
                                                                "id": 10357,
                                                                "name": "Literal",
                                                                "src": "23412:3:38"
                                                              }
                                                            ],
                                                            "id": 10358,
                                                            "name": "Assignment",
                                                            "src": "23406:9:38"
                                                          }
                                                        ],
                                                        "id": 10359,
                                                        "name": "ExpressionStatement",
                                                        "src": "23406:9:38"
                                                      },
                                                      {
                                                        "children": [
                                                          {
                                                            "attributes": {
                                                              "isConstant": false,
                                                              "isLValue": false,
                                                              "isPure": false,
                                                              "lValueRequested": false,
                                                              "operator": "+=",
                                                              "type": "int256"
                                                            },
                                                            "children": [
                                                              {
                                                                "attributes": {
                                                                  "overloadedDeclarations": [
                                                                    null
                                                                  ],
                                                                  "referencedDeclaration": 10254,
                                                                  "type": "int256",
                                                                  "value": "xe"
                                                                },
                                                                "id": 10360,
                                                                "name": "Identifier",
                                                                "src": "23429:2:38"
                                                              },
                                                              {
                                                                "attributes": {
                                                                  "hexvalue": "31",
                                                                  "isConstant": false,
                                                                  "isLValue": false,
                                                                  "isPure": true,
                                                                  "lValueRequested": false,
                                                                  "token": "number",
                                                                  "type": "int_const 1",
                                                                  "value": "1"
                                                                },
                                                                "id": 10361,
                                                                "name": "Literal",
                                                                "src": "23435:1:38"
                                                              }
                                                            ],
                                                            "id": 10362,
                                                            "name": "Assignment",
                                                            "src": "23429:7:38"
                                                          }
                                                        ],
                                                        "id": 10363,
                                                        "name": "ExpressionStatement",
                                                        "src": "23429:7:38"
                                                      }
                                                    ],
                                                    "id": 10364,
                                                    "name": "Block",
                                                    "src": "23392:57:38"
                                                  },
                                                  {
                                                    "children": [
                                                      {
                                                        "attributes": {
                                                          "isConstant": false,
                                                          "isLValue": false,
                                                          "isPure": false,
                                                          "lValueRequested": false,
                                                          "operator": ">>=",
                                                          "type": "uint256"
                                                        },
                                                        "children": [
                                                          {
                                                            "attributes": {
                                                              "overloadedDeclarations": [
                                                                null
                                                              ],
                                                              "referencedDeclaration": 10129,
                                                              "type": "uint256",
                                                              "value": "x"
                                                            },
                                                            "id": 10365,
                                                            "name": "Identifier",
                                                            "src": "23455:1:38"
                                                          },
                                                          {
                                                            "attributes": {
                                                              "hexvalue": "313237",
                                                              "isConstant": false,
                                                              "isLValue": false,
                                                              "isPure": true,
                                                              "lValueRequested": false,
                                                              "token": "number",
                                                              "type": "int_const 127",
                                                              "value": "127"
                                                            },
                                                            "id": 10366,
                                                            "name": "Literal",
                                                            "src": "23461:3:38"
                                                          }
                                                        ],
                                                        "id": 10367,
                                                        "name": "Assignment",
                                                        "src": "23455:9:38"
                                                      }
                                                    ],
                                                    "id": 10368,
                                                    "name": "ExpressionStatement",
                                                    "src": "23455:9:38"
                                                  }
                                                ],
                                                "id": 10369,
                                                "name": "IfStatement",
                                                "src": "23303:161:38"
                                              },
                                              {
                                                "attributes": {},
                                                "children": [
                                                  {
                                                    "attributes": {
                                                      "commonType": {
                                                        "typeIdentifier": "t_int256",
                                                        "typeString": "int256"
                                                      },
                                                      "isConstant": false,
                                                      "isLValue": false,
                                                      "isPure": false,
                                                      "lValueRequested": false,
                                                      "operator": "<",
                                                      "type": "bool"
                                                    },
                                                    "children": [
                                                      {
                                                        "attributes": {
                                                          "overloadedDeclarations": [
                                                            null
                                                          ],
                                                          "referencedDeclaration": 10254,
                                                          "type": "int256",
                                                          "value": "xe"
                                                        },
                                                        "id": 10370,
                                                        "name": "Identifier",
                                                        "src": "23480:2:38"
                                                      },
                                                      {
                                                        "attributes": {
                                                          "isConstant": false,
                                                          "isLValue": false,
                                                          "isPure": true,
                                                          "lValueRequested": false,
                                                          "operator": "-",
                                                          "prefix": true,
                                                          "type": "int_const -127"
                                                        },
                                                        "children": [
                                                          {
                                                            "attributes": {
                                                              "hexvalue": "313237",
                                                              "isConstant": false,
                                                              "isLValue": false,
                                                              "isPure": true,
                                                              "lValueRequested": false,
                                                              "token": "number",
                                                              "type": "int_const 127",
                                                              "value": "127"
                                                            },
                                                            "id": 10371,
                                                            "name": "Literal",
                                                            "src": "23486:3:38"
                                                          }
                                                        ],
                                                        "id": 10372,
                                                        "name": "UnaryOperation",
                                                        "src": "23485:4:38"
                                                      }
                                                    ],
                                                    "id": 10373,
                                                    "name": "BinaryOperation",
                                                    "src": "23480:9:38"
                                                  },
                                                  {
                                                    "attributes": {
                                                      "functionReturnParameters": 10135
                                                    },
                                                    "children": [
                                                      {
                                                        "attributes": {
                                                          "hexvalue": "30",
                                                          "isConstant": false,
                                                          "isLValue": false,
                                                          "isPure": true,
                                                          "lValueRequested": false,
                                                          "token": "number",
                                                          "type": "int_const 0",
                                                          "value": "0"
                                                        },
                                                        "id": 10374,
                                                        "name": "Literal",
                                                        "src": "23498:1:38"
                                                      }
                                                    ],
                                                    "id": 10375,
                                                    "name": "Return",
                                                    "src": "23491:8:38"
                                                  }
                                                ],
                                                "id": 10376,
                                                "name": "IfStatement",
                                                "src": "23476:23:38"
                                              },
                                              {
                                                "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"
                                                            }
                                                          ],
                                                          "overloadedDeclarations": [
                                                            4294967278,
                                                            4294967278
                                                          ],
                                                          "referencedDeclaration": 4294967278,
                                                          "type": "function (bool) pure",
                                                          "value": "require"
                                                        },
                                                        "id": 10377,
                                                        "name": "Identifier",
                                                        "src": "23524:7:38"
                                                      },
                                                      {
                                                        "attributes": {
                                                          "commonType": {
                                                            "typeIdentifier": "t_int256",
                                                            "typeString": "int256"
                                                          },
                                                          "isConstant": false,
                                                          "isLValue": false,
                                                          "isPure": false,
                                                          "lValueRequested": false,
                                                          "operator": "<",
                                                          "type": "bool"
                                                        },
                                                        "children": [
                                                          {
                                                            "attributes": {
                                                              "overloadedDeclarations": [
                                                                null
                                                              ],
                                                              "referencedDeclaration": 10254,
                                                              "type": "int256",
                                                              "value": "xe"
                                                            },
                                                            "id": 10378,
                                                            "name": "Identifier",
                                                            "src": "23533:2:38"
                                                          },
                                                          {
                                                            "attributes": {
                                                              "hexvalue": "313238",
                                                              "isConstant": false,
                                                              "isLValue": false,
                                                              "isPure": true,
                                                              "lValueRequested": false,
                                                              "token": "number",
                                                              "type": "int_const 128",
                                                              "value": "128"
                                                            },
                                                            "id": 10379,
                                                            "name": "Literal",
                                                            "src": "23538:3:38"
                                                          }
                                                        ],
                                                        "id": 10380,
                                                        "name": "BinaryOperation",
                                                        "src": "23533:8:38"
                                                      }
                                                    ],
                                                    "id": 10381,
                                                    "name": "FunctionCall",
                                                    "src": "23524:18:38"
                                                  }
                                                ],
                                                "id": 10382,
                                                "name": "ExpressionStatement",
                                                "src": "23524:18:38"
                                              }
                                            ],
                                            "id": 10383,
                                            "name": "Block",
                                            "src": "23231:334:38"
                                          }
                                        ],
                                        "id": 10384,
                                        "name": "IfStatement",
                                        "src": "22852:713:38"
                                      }
                                    ],
                                    "id": 10385,
                                    "name": "Block",
                                    "src": "22842:731:38"
                                  }
                                ],
                                "id": 10386,
                                "name": "WhileStatement",
                                "src": "22828:745:38"
                              },
                              {
                                "children": [
                                  {
                                    "attributes": {
                                      "commonType": {
                                        "typeIdentifier": "t_int256",
                                        "typeString": "int256"
                                      },
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "operator": ">",
                                      "type": "bool"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 10283,
                                          "type": "int256",
                                          "value": "re"
                                        },
                                        "id": 10387,
                                        "name": "Identifier",
                                        "src": "23585:2:38"
                                      },
                                      {
                                        "attributes": {
                                          "hexvalue": "30",
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "token": "number",
                                          "type": "int_const 0",
                                          "value": "0"
                                        },
                                        "id": 10388,
                                        "name": "Literal",
                                        "src": "23590:1:38"
                                      }
                                    ],
                                    "id": 10389,
                                    "name": "BinaryOperation",
                                    "src": "23585:6:38"
                                  },
                                  {
                                    "children": [
                                      {
                                        "attributes": {
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "operator": "<<=",
                                          "type": "uint256"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 10279,
                                              "type": "uint256",
                                              "value": "result"
                                            },
                                            "id": 10390,
                                            "name": "Identifier",
                                            "src": "23593:6:38"
                                          },
                                          {
                                            "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": 10391,
                                                    "name": "ElementaryTypeName",
                                                    "src": "23604:7:38"
                                                  }
                                                ],
                                                "id": 10392,
                                                "name": "ElementaryTypeNameExpression",
                                                "src": "23604:7:38"
                                              },
                                              {
                                                "attributes": {
                                                  "overloadedDeclarations": [
                                                    null
                                                  ],
                                                  "referencedDeclaration": 10283,
                                                  "type": "int256",
                                                  "value": "re"
                                                },
                                                "id": 10393,
                                                "name": "Identifier",
                                                "src": "23613:2:38"
                                              }
                                            ],
                                            "id": 10394,
                                            "name": "FunctionCall",
                                            "src": "23604:12:38"
                                          }
                                        ],
                                        "id": 10395,
                                        "name": "Assignment",
                                        "src": "23593:23:38"
                                      }
                                    ],
                                    "id": 10396,
                                    "name": "ExpressionStatement",
                                    "src": "23593:23:38"
                                  },
                                  {
                                    "attributes": {},
                                    "children": [
                                      {
                                        "attributes": {
                                          "commonType": {
                                            "typeIdentifier": "t_int256",
                                            "typeString": "int256"
                                          },
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "operator": "<",
                                          "type": "bool"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 10283,
                                              "type": "int256",
                                              "value": "re"
                                            },
                                            "id": 10397,
                                            "name": "Identifier",
                                            "src": "23633:2:38"
                                          },
                                          {
                                            "attributes": {
                                              "hexvalue": "30",
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "lValueRequested": false,
                                              "token": "number",
                                              "type": "int_const 0",
                                              "value": "0"
                                            },
                                            "id": 10398,
                                            "name": "Literal",
                                            "src": "23638:1:38"
                                          }
                                        ],
                                        "id": 10399,
                                        "name": "BinaryOperation",
                                        "src": "23633:6:38"
                                      },
                                      {
                                        "children": [
                                          {
                                            "attributes": {
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": false,
                                              "lValueRequested": false,
                                              "operator": ">>=",
                                              "type": "uint256"
                                            },
                                            "children": [
                                              {
                                                "attributes": {
                                                  "overloadedDeclarations": [
                                                    null
                                                  ],
                                                  "referencedDeclaration": 10279,
                                                  "type": "uint256",
                                                  "value": "result"
                                                },
                                                "id": 10400,
                                                "name": "Identifier",
                                                "src": "23641:6:38"
                                              },
                                              {
                                                "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": 10401,
                                                        "name": "ElementaryTypeName",
                                                        "src": "23652:7:38"
                                                      }
                                                    ],
                                                    "id": 10402,
                                                    "name": "ElementaryTypeNameExpression",
                                                    "src": "23652:7:38"
                                                  },
                                                  {
                                                    "attributes": {
                                                      "isConstant": false,
                                                      "isLValue": false,
                                                      "isPure": false,
                                                      "lValueRequested": false,
                                                      "operator": "-",
                                                      "prefix": true,
                                                      "type": "int256"
                                                    },
                                                    "children": [
                                                      {
                                                        "attributes": {
                                                          "overloadedDeclarations": [
                                                            null
                                                          ],
                                                          "referencedDeclaration": 10283,
                                                          "type": "int256",
                                                          "value": "re"
                                                        },
                                                        "id": 10403,
                                                        "name": "Identifier",
                                                        "src": "23662:2:38"
                                                      }
                                                    ],
                                                    "id": 10404,
                                                    "name": "UnaryOperation",
                                                    "src": "23661:3:38"
                                                  }
                                                ],
                                                "id": 10405,
                                                "name": "FunctionCall",
                                                "src": "23652:13:38"
                                              }
                                            ],
                                            "id": 10406,
                                            "name": "Assignment",
                                            "src": "23641:24:38"
                                          }
                                        ],
                                        "id": 10407,
                                        "name": "ExpressionStatement",
                                        "src": "23641:24:38"
                                      }
                                    ],
                                    "id": 10408,
                                    "name": "IfStatement",
                                    "src": "23629:36:38"
                                  }
                                ],
                                "id": 10409,
                                "name": "IfStatement",
                                "src": "23581:84:38"
                              },
                              {
                                "attributes": {
                                  "functionReturnParameters": 10135
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 10279,
                                      "type": "uint256",
                                      "value": "result"
                                    },
                                    "id": 10410,
                                    "name": "Identifier",
                                    "src": "23681:6:38"
                                  }
                                ],
                                "id": 10411,
                                "name": "Return",
                                "src": "23674:13:38"
                              }
                            ],
                            "id": 10412,
                            "name": "Block",
                            "src": "22143:1551:38"
                          }
                        ],
                        "id": 10413,
                        "name": "IfStatement",
                        "src": "22112:1582:38"
                      }
                    ],
                    "id": 10414,
                    "name": "IfStatement",
                    "src": "22048:1646:38"
                  }
                ],
                "id": 10415,
                "name": "Block",
                "src": "22042:1656:38"
              }
            ],
            "id": 10416,
            "name": "FunctionDefinition",
            "src": "21974:1724:38"
          },
          {
            "attributes": {
              "implemented": true,
              "isConstructor": false,
              "kind": "function",
              "modifiers": [
                null
              ],
              "name": "sqrtu",
              "scope": 10621,
              "stateMutability": "pure",
              "virtual": false,
              "visibility": "private"
            },
            "children": [
              {
                "attributes": {
                  "text": " Calculate sqrt (x) rounding down, where x is unsigned 256-bit integer\n number.\n @param x unsigned 256-bit integer number\n @return unsigned 128-bit integer number"
                },
                "id": 10417,
                "name": "StructuredDocumentation",
                "src": "23702:193:38"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "x",
                      "scope": 10620,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint256",
                          "type": "uint256"
                        },
                        "id": 10418,
                        "name": "ElementaryTypeName",
                        "src": "23914:7:38"
                      }
                    ],
                    "id": 10419,
                    "name": "VariableDeclaration",
                    "src": "23914:9:38"
                  }
                ],
                "id": 10420,
                "name": "ParameterList",
                "src": "23913:11:38"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "",
                      "scope": 10620,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint128",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint128",
                          "type": "uint128"
                        },
                        "id": 10421,
                        "name": "ElementaryTypeName",
                        "src": "23947:7:38"
                      }
                    ],
                    "id": 10422,
                    "name": "VariableDeclaration",
                    "src": "23947:7:38"
                  }
                ],
                "id": 10423,
                "name": "ParameterList",
                "src": "23946:9:38"
              },
              {
                "children": [
                  {
                    "children": [
                      {
                        "attributes": {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "==",
                          "type": "bool"
                        },
                        "children": [
                          {
                            "attributes": {
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 10419,
                              "type": "uint256",
                              "value": "x"
                            },
                            "id": 10424,
                            "name": "Identifier",
                            "src": "23966:1:38"
                          },
                          {
                            "attributes": {
                              "hexvalue": "30",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "token": "number",
                              "type": "int_const 0",
                              "value": "0"
                            },
                            "id": 10425,
                            "name": "Literal",
                            "src": "23971:1:38"
                          }
                        ],
                        "id": 10426,
                        "name": "BinaryOperation",
                        "src": "23966:6:38"
                      },
                      {
                        "attributes": {
                          "functionReturnParameters": 10423
                        },
                        "children": [
                          {
                            "attributes": {
                              "hexvalue": "30",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "token": "number",
                              "type": "int_const 0",
                              "value": "0"
                            },
                            "id": 10427,
                            "name": "Literal",
                            "src": "23981:1:38"
                          }
                        ],
                        "id": 10428,
                        "name": "Return",
                        "src": "23974:8:38"
                      },
                      {
                        "children": [
                          {
                            "attributes": {
                              "assignments": [
                                10430
                              ]
                            },
                            "children": [
                              {
                                "attributes": {
                                  "constant": false,
                                  "mutability": "mutable",
                                  "name": "xx",
                                  "scope": 10617,
                                  "stateVariable": false,
                                  "storageLocation": "default",
                                  "type": "uint256",
                                  "visibility": "internal"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "name": "uint256",
                                      "type": "uint256"
                                    },
                                    "id": 10429,
                                    "name": "ElementaryTypeName",
                                    "src": "24001:7:38"
                                  }
                                ],
                                "id": 10430,
                                "name": "VariableDeclaration",
                                "src": "24001:10:38"
                              },
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 10419,
                                  "type": "uint256",
                                  "value": "x"
                                },
                                "id": 10431,
                                "name": "Identifier",
                                "src": "24014:1:38"
                              }
                            ],
                            "id": 10432,
                            "name": "VariableDeclarationStatement",
                            "src": "24001:14:38"
                          },
                          {
                            "attributes": {
                              "assignments": [
                                10434
                              ]
                            },
                            "children": [
                              {
                                "attributes": {
                                  "constant": false,
                                  "mutability": "mutable",
                                  "name": "r",
                                  "scope": 10617,
                                  "stateVariable": false,
                                  "storageLocation": "default",
                                  "type": "uint256",
                                  "visibility": "internal"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "name": "uint256",
                                      "type": "uint256"
                                    },
                                    "id": 10433,
                                    "name": "ElementaryTypeName",
                                    "src": "24023:7:38"
                                  }
                                ],
                                "id": 10434,
                                "name": "VariableDeclaration",
                                "src": "24023:9:38"
                              },
                              {
                                "attributes": {
                                  "hexvalue": "31",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "token": "number",
                                  "type": "int_const 1",
                                  "value": "1"
                                },
                                "id": 10435,
                                "name": "Literal",
                                "src": "24035:1:38"
                              }
                            ],
                            "id": 10436,
                            "name": "VariableDeclarationStatement",
                            "src": "24023:13:38"
                          },
                          {
                            "attributes": {},
                            "children": [
                              {
                                "attributes": {
                                  "commonType": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": ">=",
                                  "type": "bool"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 10430,
                                      "type": "uint256",
                                      "value": "xx"
                                    },
                                    "id": 10437,
                                    "name": "Identifier",
                                    "src": "24048:2:38"
                                  },
                                  {
                                    "attributes": {
                                      "hexvalue": "3078313030303030303030303030303030303030303030303030303030303030303030",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "token": "number",
                                      "type": "int_const 3402...(31 digits omitted)...1456",
                                      "value": "0x100000000000000000000000000000000"
                                    },
                                    "id": 10438,
                                    "name": "Literal",
                                    "src": "24054:35:38"
                                  }
                                ],
                                "id": 10439,
                                "name": "BinaryOperation",
                                "src": "24048:41:38"
                              },
                              {
                                "children": [
                                  {
                                    "children": [
                                      {
                                        "attributes": {
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "operator": ">>=",
                                          "type": "uint256"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 10430,
                                              "type": "uint256",
                                              "value": "xx"
                                            },
                                            "id": 10440,
                                            "name": "Identifier",
                                            "src": "24093:2:38"
                                          },
                                          {
                                            "attributes": {
                                              "hexvalue": "313238",
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "lValueRequested": false,
                                              "token": "number",
                                              "type": "int_const 128",
                                              "value": "128"
                                            },
                                            "id": 10441,
                                            "name": "Literal",
                                            "src": "24100:3:38"
                                          }
                                        ],
                                        "id": 10442,
                                        "name": "Assignment",
                                        "src": "24093:10:38"
                                      }
                                    ],
                                    "id": 10443,
                                    "name": "ExpressionStatement",
                                    "src": "24093:10:38"
                                  },
                                  {
                                    "children": [
                                      {
                                        "attributes": {
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "operator": "<<=",
                                          "type": "uint256"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 10434,
                                              "type": "uint256",
                                              "value": "r"
                                            },
                                            "id": 10444,
                                            "name": "Identifier",
                                            "src": "24105:1:38"
                                          },
                                          {
                                            "attributes": {
                                              "hexvalue": "3634",
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "lValueRequested": false,
                                              "token": "number",
                                              "type": "int_const 64",
                                              "value": "64"
                                            },
                                            "id": 10445,
                                            "name": "Literal",
                                            "src": "24111:2:38"
                                          }
                                        ],
                                        "id": 10446,
                                        "name": "Assignment",
                                        "src": "24105:8:38"
                                      }
                                    ],
                                    "id": 10447,
                                    "name": "ExpressionStatement",
                                    "src": "24105:8:38"
                                  }
                                ],
                                "id": 10448,
                                "name": "Block",
                                "src": "24091:25:38"
                              }
                            ],
                            "id": 10449,
                            "name": "IfStatement",
                            "src": "24044:72:38"
                          },
                          {
                            "attributes": {},
                            "children": [
                              {
                                "attributes": {
                                  "commonType": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": ">=",
                                  "type": "bool"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 10430,
                                      "type": "uint256",
                                      "value": "xx"
                                    },
                                    "id": 10450,
                                    "name": "Identifier",
                                    "src": "24127:2:38"
                                  },
                                  {
                                    "attributes": {
                                      "hexvalue": "30783130303030303030303030303030303030",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "token": "number",
                                      "type": "int_const 18446744073709551616",
                                      "value": "0x10000000000000000"
                                    },
                                    "id": 10451,
                                    "name": "Literal",
                                    "src": "24133:19:38"
                                  }
                                ],
                                "id": 10452,
                                "name": "BinaryOperation",
                                "src": "24127:25:38"
                              },
                              {
                                "children": [
                                  {
                                    "children": [
                                      {
                                        "attributes": {
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "operator": ">>=",
                                          "type": "uint256"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 10430,
                                              "type": "uint256",
                                              "value": "xx"
                                            },
                                            "id": 10453,
                                            "name": "Identifier",
                                            "src": "24156:2:38"
                                          },
                                          {
                                            "attributes": {
                                              "hexvalue": "3634",
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "lValueRequested": false,
                                              "token": "number",
                                              "type": "int_const 64",
                                              "value": "64"
                                            },
                                            "id": 10454,
                                            "name": "Literal",
                                            "src": "24163:2:38"
                                          }
                                        ],
                                        "id": 10455,
                                        "name": "Assignment",
                                        "src": "24156:9:38"
                                      }
                                    ],
                                    "id": 10456,
                                    "name": "ExpressionStatement",
                                    "src": "24156:9:38"
                                  },
                                  {
                                    "children": [
                                      {
                                        "attributes": {
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "operator": "<<=",
                                          "type": "uint256"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 10434,
                                              "type": "uint256",
                                              "value": "r"
                                            },
                                            "id": 10457,
                                            "name": "Identifier",
                                            "src": "24167:1:38"
                                          },
                                          {
                                            "attributes": {
                                              "hexvalue": "3332",
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "lValueRequested": false,
                                              "token": "number",
                                              "type": "int_const 32",
                                              "value": "32"
                                            },
                                            "id": 10458,
                                            "name": "Literal",
                                            "src": "24173:2:38"
                                          }
                                        ],
                                        "id": 10459,
                                        "name": "Assignment",
                                        "src": "24167:8:38"
                                      }
                                    ],
                                    "id": 10460,
                                    "name": "ExpressionStatement",
                                    "src": "24167:8:38"
                                  }
                                ],
                                "id": 10461,
                                "name": "Block",
                                "src": "24154:24:38"
                              }
                            ],
                            "id": 10462,
                            "name": "IfStatement",
                            "src": "24123:55:38"
                          },
                          {
                            "attributes": {},
                            "children": [
                              {
                                "attributes": {
                                  "commonType": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": ">=",
                                  "type": "bool"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 10430,
                                      "type": "uint256",
                                      "value": "xx"
                                    },
                                    "id": 10463,
                                    "name": "Identifier",
                                    "src": "24189:2:38"
                                  },
                                  {
                                    "attributes": {
                                      "hexvalue": "3078313030303030303030",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "token": "number",
                                      "type": "int_const 4294967296",
                                      "value": "0x100000000"
                                    },
                                    "id": 10464,
                                    "name": "Literal",
                                    "src": "24195:11:38"
                                  }
                                ],
                                "id": 10465,
                                "name": "BinaryOperation",
                                "src": "24189:17:38"
                              },
                              {
                                "children": [
                                  {
                                    "children": [
                                      {
                                        "attributes": {
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "operator": ">>=",
                                          "type": "uint256"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 10430,
                                              "type": "uint256",
                                              "value": "xx"
                                            },
                                            "id": 10466,
                                            "name": "Identifier",
                                            "src": "24210:2:38"
                                          },
                                          {
                                            "attributes": {
                                              "hexvalue": "3332",
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "lValueRequested": false,
                                              "token": "number",
                                              "type": "int_const 32",
                                              "value": "32"
                                            },
                                            "id": 10467,
                                            "name": "Literal",
                                            "src": "24217:2:38"
                                          }
                                        ],
                                        "id": 10468,
                                        "name": "Assignment",
                                        "src": "24210:9:38"
                                      }
                                    ],
                                    "id": 10469,
                                    "name": "ExpressionStatement",
                                    "src": "24210:9:38"
                                  },
                                  {
                                    "children": [
                                      {
                                        "attributes": {
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "operator": "<<=",
                                          "type": "uint256"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 10434,
                                              "type": "uint256",
                                              "value": "r"
                                            },
                                            "id": 10470,
                                            "name": "Identifier",
                                            "src": "24221:1:38"
                                          },
                                          {
                                            "attributes": {
                                              "hexvalue": "3136",
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "lValueRequested": false,
                                              "token": "number",
                                              "type": "int_const 16",
                                              "value": "16"
                                            },
                                            "id": 10471,
                                            "name": "Literal",
                                            "src": "24227:2:38"
                                          }
                                        ],
                                        "id": 10472,
                                        "name": "Assignment",
                                        "src": "24221:8:38"
                                      }
                                    ],
                                    "id": 10473,
                                    "name": "ExpressionStatement",
                                    "src": "24221:8:38"
                                  }
                                ],
                                "id": 10474,
                                "name": "Block",
                                "src": "24208:24:38"
                              }
                            ],
                            "id": 10475,
                            "name": "IfStatement",
                            "src": "24185:47:38"
                          },
                          {
                            "attributes": {},
                            "children": [
                              {
                                "attributes": {
                                  "commonType": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": ">=",
                                  "type": "bool"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 10430,
                                      "type": "uint256",
                                      "value": "xx"
                                    },
                                    "id": 10476,
                                    "name": "Identifier",
                                    "src": "24243:2:38"
                                  },
                                  {
                                    "attributes": {
                                      "hexvalue": "30783130303030",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "token": "number",
                                      "type": "int_const 65536",
                                      "value": "0x10000"
                                    },
                                    "id": 10477,
                                    "name": "Literal",
                                    "src": "24249:7:38"
                                  }
                                ],
                                "id": 10478,
                                "name": "BinaryOperation",
                                "src": "24243:13:38"
                              },
                              {
                                "children": [
                                  {
                                    "children": [
                                      {
                                        "attributes": {
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "operator": ">>=",
                                          "type": "uint256"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 10430,
                                              "type": "uint256",
                                              "value": "xx"
                                            },
                                            "id": 10479,
                                            "name": "Identifier",
                                            "src": "24260:2:38"
                                          },
                                          {
                                            "attributes": {
                                              "hexvalue": "3136",
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "lValueRequested": false,
                                              "token": "number",
                                              "type": "int_const 16",
                                              "value": "16"
                                            },
                                            "id": 10480,
                                            "name": "Literal",
                                            "src": "24267:2:38"
                                          }
                                        ],
                                        "id": 10481,
                                        "name": "Assignment",
                                        "src": "24260:9:38"
                                      }
                                    ],
                                    "id": 10482,
                                    "name": "ExpressionStatement",
                                    "src": "24260:9:38"
                                  },
                                  {
                                    "children": [
                                      {
                                        "attributes": {
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "operator": "<<=",
                                          "type": "uint256"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 10434,
                                              "type": "uint256",
                                              "value": "r"
                                            },
                                            "id": 10483,
                                            "name": "Identifier",
                                            "src": "24271:1:38"
                                          },
                                          {
                                            "attributes": {
                                              "hexvalue": "38",
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "lValueRequested": false,
                                              "token": "number",
                                              "type": "int_const 8",
                                              "value": "8"
                                            },
                                            "id": 10484,
                                            "name": "Literal",
                                            "src": "24277:1:38"
                                          }
                                        ],
                                        "id": 10485,
                                        "name": "Assignment",
                                        "src": "24271:7:38"
                                      }
                                    ],
                                    "id": 10486,
                                    "name": "ExpressionStatement",
                                    "src": "24271:7:38"
                                  }
                                ],
                                "id": 10487,
                                "name": "Block",
                                "src": "24258:23:38"
                              }
                            ],
                            "id": 10488,
                            "name": "IfStatement",
                            "src": "24239:42:38"
                          },
                          {
                            "attributes": {},
                            "children": [
                              {
                                "attributes": {
                                  "commonType": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": ">=",
                                  "type": "bool"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 10430,
                                      "type": "uint256",
                                      "value": "xx"
                                    },
                                    "id": 10489,
                                    "name": "Identifier",
                                    "src": "24292:2:38"
                                  },
                                  {
                                    "attributes": {
                                      "hexvalue": "3078313030",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "token": "number",
                                      "type": "int_const 256",
                                      "value": "0x100"
                                    },
                                    "id": 10490,
                                    "name": "Literal",
                                    "src": "24298:5:38"
                                  }
                                ],
                                "id": 10491,
                                "name": "BinaryOperation",
                                "src": "24292:11:38"
                              },
                              {
                                "children": [
                                  {
                                    "children": [
                                      {
                                        "attributes": {
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "operator": ">>=",
                                          "type": "uint256"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 10430,
                                              "type": "uint256",
                                              "value": "xx"
                                            },
                                            "id": 10492,
                                            "name": "Identifier",
                                            "src": "24307:2:38"
                                          },
                                          {
                                            "attributes": {
                                              "hexvalue": "38",
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "lValueRequested": false,
                                              "token": "number",
                                              "type": "int_const 8",
                                              "value": "8"
                                            },
                                            "id": 10493,
                                            "name": "Literal",
                                            "src": "24314:1:38"
                                          }
                                        ],
                                        "id": 10494,
                                        "name": "Assignment",
                                        "src": "24307:8:38"
                                      }
                                    ],
                                    "id": 10495,
                                    "name": "ExpressionStatement",
                                    "src": "24307:8:38"
                                  },
                                  {
                                    "children": [
                                      {
                                        "attributes": {
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "operator": "<<=",
                                          "type": "uint256"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 10434,
                                              "type": "uint256",
                                              "value": "r"
                                            },
                                            "id": 10496,
                                            "name": "Identifier",
                                            "src": "24317:1:38"
                                          },
                                          {
                                            "attributes": {
                                              "hexvalue": "34",
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "lValueRequested": false,
                                              "token": "number",
                                              "type": "int_const 4",
                                              "value": "4"
                                            },
                                            "id": 10497,
                                            "name": "Literal",
                                            "src": "24323:1:38"
                                          }
                                        ],
                                        "id": 10498,
                                        "name": "Assignment",
                                        "src": "24317:7:38"
                                      }
                                    ],
                                    "id": 10499,
                                    "name": "ExpressionStatement",
                                    "src": "24317:7:38"
                                  }
                                ],
                                "id": 10500,
                                "name": "Block",
                                "src": "24305:22:38"
                              }
                            ],
                            "id": 10501,
                            "name": "IfStatement",
                            "src": "24288:39:38"
                          },
                          {
                            "attributes": {},
                            "children": [
                              {
                                "attributes": {
                                  "commonType": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": ">=",
                                  "type": "bool"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 10430,
                                      "type": "uint256",
                                      "value": "xx"
                                    },
                                    "id": 10502,
                                    "name": "Identifier",
                                    "src": "24338:2:38"
                                  },
                                  {
                                    "attributes": {
                                      "hexvalue": "30783130",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "token": "number",
                                      "type": "int_const 16",
                                      "value": "0x10"
                                    },
                                    "id": 10503,
                                    "name": "Literal",
                                    "src": "24344:4:38"
                                  }
                                ],
                                "id": 10504,
                                "name": "BinaryOperation",
                                "src": "24338:10:38"
                              },
                              {
                                "children": [
                                  {
                                    "children": [
                                      {
                                        "attributes": {
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "operator": ">>=",
                                          "type": "uint256"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 10430,
                                              "type": "uint256",
                                              "value": "xx"
                                            },
                                            "id": 10505,
                                            "name": "Identifier",
                                            "src": "24352:2:38"
                                          },
                                          {
                                            "attributes": {
                                              "hexvalue": "34",
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "lValueRequested": false,
                                              "token": "number",
                                              "type": "int_const 4",
                                              "value": "4"
                                            },
                                            "id": 10506,
                                            "name": "Literal",
                                            "src": "24359:1:38"
                                          }
                                        ],
                                        "id": 10507,
                                        "name": "Assignment",
                                        "src": "24352:8:38"
                                      }
                                    ],
                                    "id": 10508,
                                    "name": "ExpressionStatement",
                                    "src": "24352:8:38"
                                  },
                                  {
                                    "children": [
                                      {
                                        "attributes": {
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "operator": "<<=",
                                          "type": "uint256"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 10434,
                                              "type": "uint256",
                                              "value": "r"
                                            },
                                            "id": 10509,
                                            "name": "Identifier",
                                            "src": "24362:1:38"
                                          },
                                          {
                                            "attributes": {
                                              "hexvalue": "32",
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "lValueRequested": false,
                                              "token": "number",
                                              "type": "int_const 2",
                                              "value": "2"
                                            },
                                            "id": 10510,
                                            "name": "Literal",
                                            "src": "24368:1:38"
                                          }
                                        ],
                                        "id": 10511,
                                        "name": "Assignment",
                                        "src": "24362:7:38"
                                      }
                                    ],
                                    "id": 10512,
                                    "name": "ExpressionStatement",
                                    "src": "24362:7:38"
                                  }
                                ],
                                "id": 10513,
                                "name": "Block",
                                "src": "24350:22:38"
                              }
                            ],
                            "id": 10514,
                            "name": "IfStatement",
                            "src": "24334:38:38"
                          },
                          {
                            "attributes": {},
                            "children": [
                              {
                                "attributes": {
                                  "commonType": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": ">=",
                                  "type": "bool"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 10430,
                                      "type": "uint256",
                                      "value": "xx"
                                    },
                                    "id": 10515,
                                    "name": "Identifier",
                                    "src": "24383:2:38"
                                  },
                                  {
                                    "attributes": {
                                      "hexvalue": "307838",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "token": "number",
                                      "type": "int_const 8",
                                      "value": "0x8"
                                    },
                                    "id": 10516,
                                    "name": "Literal",
                                    "src": "24389:3:38"
                                  }
                                ],
                                "id": 10517,
                                "name": "BinaryOperation",
                                "src": "24383:9:38"
                              },
                              {
                                "children": [
                                  {
                                    "children": [
                                      {
                                        "attributes": {
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "operator": "<<=",
                                          "type": "uint256"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 10434,
                                              "type": "uint256",
                                              "value": "r"
                                            },
                                            "id": 10518,
                                            "name": "Identifier",
                                            "src": "24396:1:38"
                                          },
                                          {
                                            "attributes": {
                                              "hexvalue": "31",
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "lValueRequested": false,
                                              "token": "number",
                                              "type": "int_const 1",
                                              "value": "1"
                                            },
                                            "id": 10519,
                                            "name": "Literal",
                                            "src": "24402:1:38"
                                          }
                                        ],
                                        "id": 10520,
                                        "name": "Assignment",
                                        "src": "24396:7:38"
                                      }
                                    ],
                                    "id": 10521,
                                    "name": "ExpressionStatement",
                                    "src": "24396:7:38"
                                  }
                                ],
                                "id": 10522,
                                "name": "Block",
                                "src": "24394:12:38"
                              }
                            ],
                            "id": 10523,
                            "name": "IfStatement",
                            "src": "24379:27:38"
                          },
                          {
                            "children": [
                              {
                                "attributes": {
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": "=",
                                  "type": "uint256"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 10434,
                                      "type": "uint256",
                                      "value": "r"
                                    },
                                    "id": 10524,
                                    "name": "Identifier",
                                    "src": "24413:1:38"
                                  },
                                  {
                                    "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": 10434,
                                                  "type": "uint256",
                                                  "value": "r"
                                                },
                                                "id": 10525,
                                                "name": "Identifier",
                                                "src": "24418:1:38"
                                              },
                                              {
                                                "attributes": {
                                                  "commonType": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                  },
                                                  "isConstant": false,
                                                  "isLValue": false,
                                                  "isPure": false,
                                                  "lValueRequested": false,
                                                  "operator": "/",
                                                  "type": "uint256"
                                                },
                                                "children": [
                                                  {
                                                    "attributes": {
                                                      "overloadedDeclarations": [
                                                        null
                                                      ],
                                                      "referencedDeclaration": 10419,
                                                      "type": "uint256",
                                                      "value": "x"
                                                    },
                                                    "id": 10526,
                                                    "name": "Identifier",
                                                    "src": "24422:1:38"
                                                  },
                                                  {
                                                    "attributes": {
                                                      "overloadedDeclarations": [
                                                        null
                                                      ],
                                                      "referencedDeclaration": 10434,
                                                      "type": "uint256",
                                                      "value": "r"
                                                    },
                                                    "id": 10527,
                                                    "name": "Identifier",
                                                    "src": "24426:1:38"
                                                  }
                                                ],
                                                "id": 10528,
                                                "name": "BinaryOperation",
                                                "src": "24422:5:38"
                                              }
                                            ],
                                            "id": 10529,
                                            "name": "BinaryOperation",
                                            "src": "24418:9:38"
                                          }
                                        ],
                                        "id": 10530,
                                        "name": "TupleExpression",
                                        "src": "24417:11:38"
                                      },
                                      {
                                        "attributes": {
                                          "hexvalue": "31",
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "token": "number",
                                          "type": "int_const 1",
                                          "value": "1"
                                        },
                                        "id": 10531,
                                        "name": "Literal",
                                        "src": "24432:1:38"
                                      }
                                    ],
                                    "id": 10532,
                                    "name": "BinaryOperation",
                                    "src": "24417:16:38"
                                  }
                                ],
                                "id": 10533,
                                "name": "Assignment",
                                "src": "24413:20:38"
                              }
                            ],
                            "id": 10534,
                            "name": "ExpressionStatement",
                            "src": "24413:20:38"
                          },
                          {
                            "children": [
                              {
                                "attributes": {
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": "=",
                                  "type": "uint256"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 10434,
                                      "type": "uint256",
                                      "value": "r"
                                    },
                                    "id": 10535,
                                    "name": "Identifier",
                                    "src": "24441:1:38"
                                  },
                                  {
                                    "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": 10434,
                                                  "type": "uint256",
                                                  "value": "r"
                                                },
                                                "id": 10536,
                                                "name": "Identifier",
                                                "src": "24446:1:38"
                                              },
                                              {
                                                "attributes": {
                                                  "commonType": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                  },
                                                  "isConstant": false,
                                                  "isLValue": false,
                                                  "isPure": false,
                                                  "lValueRequested": false,
                                                  "operator": "/",
                                                  "type": "uint256"
                                                },
                                                "children": [
                                                  {
                                                    "attributes": {
                                                      "overloadedDeclarations": [
                                                        null
                                                      ],
                                                      "referencedDeclaration": 10419,
                                                      "type": "uint256",
                                                      "value": "x"
                                                    },
                                                    "id": 10537,
                                                    "name": "Identifier",
                                                    "src": "24450:1:38"
                                                  },
                                                  {
                                                    "attributes": {
                                                      "overloadedDeclarations": [
                                                        null
                                                      ],
                                                      "referencedDeclaration": 10434,
                                                      "type": "uint256",
                                                      "value": "r"
                                                    },
                                                    "id": 10538,
                                                    "name": "Identifier",
                                                    "src": "24454:1:38"
                                                  }
                                                ],
                                                "id": 10539,
                                                "name": "BinaryOperation",
                                                "src": "24450:5:38"
                                              }
                                            ],
                                            "id": 10540,
                                            "name": "BinaryOperation",
                                            "src": "24446:9:38"
                                          }
                                        ],
                                        "id": 10541,
                                        "name": "TupleExpression",
                                        "src": "24445:11:38"
                                      },
                                      {
                                        "attributes": {
                                          "hexvalue": "31",
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "token": "number",
                                          "type": "int_const 1",
                                          "value": "1"
                                        },
                                        "id": 10542,
                                        "name": "Literal",
                                        "src": "24460:1:38"
                                      }
                                    ],
                                    "id": 10543,
                                    "name": "BinaryOperation",
                                    "src": "24445:16:38"
                                  }
                                ],
                                "id": 10544,
                                "name": "Assignment",
                                "src": "24441:20:38"
                              }
                            ],
                            "id": 10545,
                            "name": "ExpressionStatement",
                            "src": "24441:20:38"
                          },
                          {
                            "children": [
                              {
                                "attributes": {
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": "=",
                                  "type": "uint256"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 10434,
                                      "type": "uint256",
                                      "value": "r"
                                    },
                                    "id": 10546,
                                    "name": "Identifier",
                                    "src": "24469:1:38"
                                  },
                                  {
                                    "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": 10434,
                                                  "type": "uint256",
                                                  "value": "r"
                                                },
                                                "id": 10547,
                                                "name": "Identifier",
                                                "src": "24474:1:38"
                                              },
                                              {
                                                "attributes": {
                                                  "commonType": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                  },
                                                  "isConstant": false,
                                                  "isLValue": false,
                                                  "isPure": false,
                                                  "lValueRequested": false,
                                                  "operator": "/",
                                                  "type": "uint256"
                                                },
                                                "children": [
                                                  {
                                                    "attributes": {
                                                      "overloadedDeclarations": [
                                                        null
                                                      ],
                                                      "referencedDeclaration": 10419,
                                                      "type": "uint256",
                                                      "value": "x"
                                                    },
                                                    "id": 10548,
                                                    "name": "Identifier",
                                                    "src": "24478:1:38"
                                                  },
                                                  {
                                                    "attributes": {
                                                      "overloadedDeclarations": [
                                                        null
                                                      ],
                                                      "referencedDeclaration": 10434,
                                                      "type": "uint256",
                                                      "value": "r"
                                                    },
                                                    "id": 10549,
                                                    "name": "Identifier",
                                                    "src": "24482:1:38"
                                                  }
                                                ],
                                                "id": 10550,
                                                "name": "BinaryOperation",
                                                "src": "24478:5:38"
                                              }
                                            ],
                                            "id": 10551,
                                            "name": "BinaryOperation",
                                            "src": "24474:9:38"
                                          }
                                        ],
                                        "id": 10552,
                                        "name": "TupleExpression",
                                        "src": "24473:11:38"
                                      },
                                      {
                                        "attributes": {
                                          "hexvalue": "31",
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "token": "number",
                                          "type": "int_const 1",
                                          "value": "1"
                                        },
                                        "id": 10553,
                                        "name": "Literal",
                                        "src": "24488:1:38"
                                      }
                                    ],
                                    "id": 10554,
                                    "name": "BinaryOperation",
                                    "src": "24473:16:38"
                                  }
                                ],
                                "id": 10555,
                                "name": "Assignment",
                                "src": "24469:20:38"
                              }
                            ],
                            "id": 10556,
                            "name": "ExpressionStatement",
                            "src": "24469:20:38"
                          },
                          {
                            "children": [
                              {
                                "attributes": {
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": "=",
                                  "type": "uint256"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 10434,
                                      "type": "uint256",
                                      "value": "r"
                                    },
                                    "id": 10557,
                                    "name": "Identifier",
                                    "src": "24497:1:38"
                                  },
                                  {
                                    "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": 10434,
                                                  "type": "uint256",
                                                  "value": "r"
                                                },
                                                "id": 10558,
                                                "name": "Identifier",
                                                "src": "24502:1:38"
                                              },
                                              {
                                                "attributes": {
                                                  "commonType": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                  },
                                                  "isConstant": false,
                                                  "isLValue": false,
                                                  "isPure": false,
                                                  "lValueRequested": false,
                                                  "operator": "/",
                                                  "type": "uint256"
                                                },
                                                "children": [
                                                  {
                                                    "attributes": {
                                                      "overloadedDeclarations": [
                                                        null
                                                      ],
                                                      "referencedDeclaration": 10419,
                                                      "type": "uint256",
                                                      "value": "x"
                                                    },
                                                    "id": 10559,
                                                    "name": "Identifier",
                                                    "src": "24506:1:38"
                                                  },
                                                  {
                                                    "attributes": {
                                                      "overloadedDeclarations": [
                                                        null
                                                      ],
                                                      "referencedDeclaration": 10434,
                                                      "type": "uint256",
                                                      "value": "r"
                                                    },
                                                    "id": 10560,
                                                    "name": "Identifier",
                                                    "src": "24510:1:38"
                                                  }
                                                ],
                                                "id": 10561,
                                                "name": "BinaryOperation",
                                                "src": "24506:5:38"
                                              }
                                            ],
                                            "id": 10562,
                                            "name": "BinaryOperation",
                                            "src": "24502:9:38"
                                          }
                                        ],
                                        "id": 10563,
                                        "name": "TupleExpression",
                                        "src": "24501:11:38"
                                      },
                                      {
                                        "attributes": {
                                          "hexvalue": "31",
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "token": "number",
                                          "type": "int_const 1",
                                          "value": "1"
                                        },
                                        "id": 10564,
                                        "name": "Literal",
                                        "src": "24516:1:38"
                                      }
                                    ],
                                    "id": 10565,
                                    "name": "BinaryOperation",
                                    "src": "24501:16:38"
                                  }
                                ],
                                "id": 10566,
                                "name": "Assignment",
                                "src": "24497:20:38"
                              }
                            ],
                            "id": 10567,
                            "name": "ExpressionStatement",
                            "src": "24497:20:38"
                          },
                          {
                            "children": [
                              {
                                "attributes": {
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": "=",
                                  "type": "uint256"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 10434,
                                      "type": "uint256",
                                      "value": "r"
                                    },
                                    "id": 10568,
                                    "name": "Identifier",
                                    "src": "24525:1:38"
                                  },
                                  {
                                    "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": 10434,
                                                  "type": "uint256",
                                                  "value": "r"
                                                },
                                                "id": 10569,
                                                "name": "Identifier",
                                                "src": "24530:1:38"
                                              },
                                              {
                                                "attributes": {
                                                  "commonType": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                  },
                                                  "isConstant": false,
                                                  "isLValue": false,
                                                  "isPure": false,
                                                  "lValueRequested": false,
                                                  "operator": "/",
                                                  "type": "uint256"
                                                },
                                                "children": [
                                                  {
                                                    "attributes": {
                                                      "overloadedDeclarations": [
                                                        null
                                                      ],
                                                      "referencedDeclaration": 10419,
                                                      "type": "uint256",
                                                      "value": "x"
                                                    },
                                                    "id": 10570,
                                                    "name": "Identifier",
                                                    "src": "24534:1:38"
                                                  },
                                                  {
                                                    "attributes": {
                                                      "overloadedDeclarations": [
                                                        null
                                                      ],
                                                      "referencedDeclaration": 10434,
                                                      "type": "uint256",
                                                      "value": "r"
                                                    },
                                                    "id": 10571,
                                                    "name": "Identifier",
                                                    "src": "24538:1:38"
                                                  }
                                                ],
                                                "id": 10572,
                                                "name": "BinaryOperation",
                                                "src": "24534:5:38"
                                              }
                                            ],
                                            "id": 10573,
                                            "name": "BinaryOperation",
                                            "src": "24530:9:38"
                                          }
                                        ],
                                        "id": 10574,
                                        "name": "TupleExpression",
                                        "src": "24529:11:38"
                                      },
                                      {
                                        "attributes": {
                                          "hexvalue": "31",
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "token": "number",
                                          "type": "int_const 1",
                                          "value": "1"
                                        },
                                        "id": 10575,
                                        "name": "Literal",
                                        "src": "24544:1:38"
                                      }
                                    ],
                                    "id": 10576,
                                    "name": "BinaryOperation",
                                    "src": "24529:16:38"
                                  }
                                ],
                                "id": 10577,
                                "name": "Assignment",
                                "src": "24525:20:38"
                              }
                            ],
                            "id": 10578,
                            "name": "ExpressionStatement",
                            "src": "24525:20:38"
                          },
                          {
                            "children": [
                              {
                                "attributes": {
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": "=",
                                  "type": "uint256"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 10434,
                                      "type": "uint256",
                                      "value": "r"
                                    },
                                    "id": 10579,
                                    "name": "Identifier",
                                    "src": "24553:1:38"
                                  },
                                  {
                                    "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": 10434,
                                                  "type": "uint256",
                                                  "value": "r"
                                                },
                                                "id": 10580,
                                                "name": "Identifier",
                                                "src": "24558:1:38"
                                              },
                                              {
                                                "attributes": {
                                                  "commonType": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                  },
                                                  "isConstant": false,
                                                  "isLValue": false,
                                                  "isPure": false,
                                                  "lValueRequested": false,
                                                  "operator": "/",
                                                  "type": "uint256"
                                                },
                                                "children": [
                                                  {
                                                    "attributes": {
                                                      "overloadedDeclarations": [
                                                        null
                                                      ],
                                                      "referencedDeclaration": 10419,
                                                      "type": "uint256",
                                                      "value": "x"
                                                    },
                                                    "id": 10581,
                                                    "name": "Identifier",
                                                    "src": "24562:1:38"
                                                  },
                                                  {
                                                    "attributes": {
                                                      "overloadedDeclarations": [
                                                        null
                                                      ],
                                                      "referencedDeclaration": 10434,
                                                      "type": "uint256",
                                                      "value": "r"
                                                    },
                                                    "id": 10582,
                                                    "name": "Identifier",
                                                    "src": "24566:1:38"
                                                  }
                                                ],
                                                "id": 10583,
                                                "name": "BinaryOperation",
                                                "src": "24562:5:38"
                                              }
                                            ],
                                            "id": 10584,
                                            "name": "BinaryOperation",
                                            "src": "24558:9:38"
                                          }
                                        ],
                                        "id": 10585,
                                        "name": "TupleExpression",
                                        "src": "24557:11:38"
                                      },
                                      {
                                        "attributes": {
                                          "hexvalue": "31",
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "token": "number",
                                          "type": "int_const 1",
                                          "value": "1"
                                        },
                                        "id": 10586,
                                        "name": "Literal",
                                        "src": "24572:1:38"
                                      }
                                    ],
                                    "id": 10587,
                                    "name": "BinaryOperation",
                                    "src": "24557:16:38"
                                  }
                                ],
                                "id": 10588,
                                "name": "Assignment",
                                "src": "24553:20:38"
                              }
                            ],
                            "id": 10589,
                            "name": "ExpressionStatement",
                            "src": "24553:20:38"
                          },
                          {
                            "children": [
                              {
                                "attributes": {
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": "=",
                                  "type": "uint256"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 10434,
                                      "type": "uint256",
                                      "value": "r"
                                    },
                                    "id": 10590,
                                    "name": "Identifier",
                                    "src": "24581:1:38"
                                  },
                                  {
                                    "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": 10434,
                                                  "type": "uint256",
                                                  "value": "r"
                                                },
                                                "id": 10591,
                                                "name": "Identifier",
                                                "src": "24586:1:38"
                                              },
                                              {
                                                "attributes": {
                                                  "commonType": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                  },
                                                  "isConstant": false,
                                                  "isLValue": false,
                                                  "isPure": false,
                                                  "lValueRequested": false,
                                                  "operator": "/",
                                                  "type": "uint256"
                                                },
                                                "children": [
                                                  {
                                                    "attributes": {
                                                      "overloadedDeclarations": [
                                                        null
                                                      ],
                                                      "referencedDeclaration": 10419,
                                                      "type": "uint256",
                                                      "value": "x"
                                                    },
                                                    "id": 10592,
                                                    "name": "Identifier",
                                                    "src": "24590:1:38"
                                                  },
                                                  {
                                                    "attributes": {
                                                      "overloadedDeclarations": [
                                                        null
                                                      ],
                                                      "referencedDeclaration": 10434,
                                                      "type": "uint256",
                                                      "value": "r"
                                                    },
                                                    "id": 10593,
                                                    "name": "Identifier",
                                                    "src": "24594:1:38"
                                                  }
                                                ],
                                                "id": 10594,
                                                "name": "BinaryOperation",
                                                "src": "24590:5:38"
                                              }
                                            ],
                                            "id": 10595,
                                            "name": "BinaryOperation",
                                            "src": "24586:9:38"
                                          }
                                        ],
                                        "id": 10596,
                                        "name": "TupleExpression",
                                        "src": "24585:11:38"
                                      },
                                      {
                                        "attributes": {
                                          "hexvalue": "31",
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "token": "number",
                                          "type": "int_const 1",
                                          "value": "1"
                                        },
                                        "id": 10597,
                                        "name": "Literal",
                                        "src": "24600:1:38"
                                      }
                                    ],
                                    "id": 10598,
                                    "name": "BinaryOperation",
                                    "src": "24585:16:38"
                                  }
                                ],
                                "id": 10599,
                                "name": "Assignment",
                                "src": "24581:20:38"
                              }
                            ],
                            "id": 10600,
                            "name": "ExpressionStatement",
                            "src": "24581:20:38"
                          },
                          {
                            "attributes": {
                              "assignments": [
                                10602
                              ]
                            },
                            "children": [
                              {
                                "attributes": {
                                  "constant": false,
                                  "mutability": "mutable",
                                  "name": "r1",
                                  "scope": 10617,
                                  "stateVariable": false,
                                  "storageLocation": "default",
                                  "type": "uint256",
                                  "visibility": "internal"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "name": "uint256",
                                      "type": "uint256"
                                    },
                                    "id": 10601,
                                    "name": "ElementaryTypeName",
                                    "src": "24646:7:38"
                                  }
                                ],
                                "id": 10602,
                                "name": "VariableDeclaration",
                                "src": "24646:10:38"
                              },
                              {
                                "attributes": {
                                  "commonType": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": "/",
                                  "type": "uint256"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 10419,
                                      "type": "uint256",
                                      "value": "x"
                                    },
                                    "id": 10603,
                                    "name": "Identifier",
                                    "src": "24659:1:38"
                                  },
                                  {
                                    "attributes": {
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 10434,
                                      "type": "uint256",
                                      "value": "r"
                                    },
                                    "id": 10604,
                                    "name": "Identifier",
                                    "src": "24663:1:38"
                                  }
                                ],
                                "id": 10605,
                                "name": "BinaryOperation",
                                "src": "24659:5:38"
                              }
                            ],
                            "id": 10606,
                            "name": "VariableDeclarationStatement",
                            "src": "24646:18:38"
                          },
                          {
                            "attributes": {
                              "functionReturnParameters": 10423
                            },
                            "children": [
                              {
                                "attributes": {
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "isStructConstructorCall": false,
                                  "lValueRequested": false,
                                  "names": [
                                    null
                                  ],
                                  "tryCall": false,
                                  "type": "uint128",
                                  "type_conversion": true
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      ],
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "type": "type(uint128)"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "name": "uint128"
                                        },
                                        "id": 10607,
                                        "name": "ElementaryTypeName",
                                        "src": "24679:7:38"
                                      }
                                    ],
                                    "id": 10608,
                                    "name": "ElementaryTypeNameExpression",
                                    "src": "24679:7:38"
                                  },
                                  {
                                    "attributes": {
                                      "isConstant": 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": "bool"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 10434,
                                              "type": "uint256",
                                              "value": "r"
                                            },
                                            "id": 10609,
                                            "name": "Identifier",
                                            "src": "24688:1:38"
                                          },
                                          {
                                            "attributes": {
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 10602,
                                              "type": "uint256",
                                              "value": "r1"
                                            },
                                            "id": 10610,
                                            "name": "Identifier",
                                            "src": "24692:2:38"
                                          }
                                        ],
                                        "id": 10611,
                                        "name": "BinaryOperation",
                                        "src": "24688:6:38"
                                      },
                                      {
                                        "attributes": {
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 10434,
                                          "type": "uint256",
                                          "value": "r"
                                        },
                                        "id": 10612,
                                        "name": "Identifier",
                                        "src": "24697:1:38"
                                      },
                                      {
                                        "attributes": {
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 10602,
                                          "type": "uint256",
                                          "value": "r1"
                                        },
                                        "id": 10613,
                                        "name": "Identifier",
                                        "src": "24701:2:38"
                                      }
                                    ],
                                    "id": 10614,
                                    "name": "Conditional",
                                    "src": "24688:15:38"
                                  }
                                ],
                                "id": 10615,
                                "name": "FunctionCall",
                                "src": "24679:25:38"
                              }
                            ],
                            "id": 10616,
                            "name": "Return",
                            "src": "24672:32:38"
                          }
                        ],
                        "id": 10617,
                        "name": "Block",
                        "src": "23993:718:38"
                      }
                    ],
                    "id": 10618,
                    "name": "IfStatement",
                    "src": "23962:749:38"
                  }
                ],
                "id": 10619,
                "name": "Block",
                "src": "23956:759:38"
              }
            ],
            "id": 10620,
            "name": "FunctionDefinition",
            "src": "23898:817:38"
          }
        ],
        "id": 10621,
        "name": "ContractDefinition",
        "src": "686:24031:38"
      }
    ],
    "id": 10622,
    "name": "SourceUnit",
    "src": "191:24527:38"
  },
  "compiler": {
    "name": "solc",
    "version": "0.7.6+commit.7338295f.Emscripten.clang"
  },
  "networks": {},
  "schemaVersion": "3.4.1",
  "updatedAt": "2021-06-03T23:56:22.384Z",
  "devdoc": {
    "kind": "dev",
    "methods": {},
    "version": 1
  },
  "userdoc": {
    "kind": "user",
    "methods": {},
    "notice": "Smart contract library of mathematical functions operating with signed 64.64-bit fixed point numbers.  Signed 64.64-bit fixed point number is basically a simple fraction whose numerator is signed 128-bit integer and denominator is 2^64.  As long as denominator is always the same, there is no need to store it, thus in Solidity signed 64.64-bit fixed point numbers are represented by int128 type holding only the numerator.",
    "version": 1
  }
}