{
  "abi": [],
  "bytecode": {
    "object": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212206969cb09aa8bcfa4f9201fc201ab72e8b4d2a48b4c63fe3002e5c2b24c93c65764736f6c63430008160033",
    "sourceMap": "115:1845:65:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;115:1845:65;;;;;;;;;;;;;;;;;",
    "linkReferences": {}
  },
  "deployedBytecode": {
    "object": "0x73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212206969cb09aa8bcfa4f9201fc201ab72e8b4d2a48b4c63fe3002e5c2b24c93c65764736f6c63430008160033",
    "sourceMap": "115:1845:65:-:0;;;;;;;;",
    "linkReferences": {}
  },
  "methodIdentifiers": {},
  "rawMetadata": "{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/TestIEEE754.sol\":\"IEEE754\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"details\":{\"constantOptimizer\":true,\"cse\":true,\"deduplicate\":true,\"inliner\":true,\"jumpdestRemover\":true,\"orderLiterals\":true,\"peephole\":true,\"simpleCounterForLoopUncheckedIncrement\":true,\"yul\":true,\"yulDetails\":{\"optimizerSteps\":\"dhfoD[xarrscLMcCTU]uljmul:fDnTOcmu\",\"stackAllocation\":true}},\"runs\":999999999},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@uniswap/v3-core/=lib_uniswap/v3-core/\",\":@uniswap/v3-periphery/=lib_uniswap/v3-periphery/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":v3-core/=lib_uniswap/v3-core/\",\":v3-periphery/libraries/=lib_uniswap/v3-periphery/contracts/libraries/\"]},\"sources\":{\"lib/forge-std/lib/ds-test/src/test.sol\":{\"keccak256\":\"0x8758531bbac3972efcf1fa46383dbe1d276406fe527bc7abb2f236486278e83b\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://1f64264d61506847acf8761e84aff690cebe830958eac00bac7924d8be569240\",\"dweb:/ipfs/QmSekDJvJ82MZAmr63n7YvfLzQ7gS4NLSHPmHL3GN3rw8k\"]},\"lib/forge-std/src/Base.sol\":{\"keccak256\":\"0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224\",\"dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK\"]},\"lib/forge-std/src/StdAssertions.sol\":{\"keccak256\":\"0x1a0dee4d8b2c81e9318e87dd85ef009467ebf7dba6575530d1fce94d34dbae60\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ddd790c86ddde1013d1f7a552a80168eacf2e9244077f96799180644ad523a5b\",\"dweb:/ipfs/QmYinBFt9uEVFXP9ytT9CDoNpzWieQVgLWRFRNiypMzJaL\"]},\"lib/forge-std/src/StdChains.sol\":{\"keccak256\":\"0x51e6eb138fc953fac1ac78012a39b3f16d9289ce06a222ba93bb0621768f96e6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://653c577e054cf578594148a07b286571d494f401b6d4a940d3ccabd47b29233d\",\"dweb:/ipfs/QmTWDVvR4m82MGXWYY8BCaVN89TguQJSLqRgzHzrMkFHtx\"]},\"lib/forge-std/src/StdCheats.sol\":{\"keccak256\":\"0x2e1b4b99283c16efaf155f7e55ea357943cf6e61fc02aad060534349f63b6cd5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d471a35903e8a367a145ca5b5955caf691c723fe1117c6dcffd928d9f8d7c95a\",\"dweb:/ipfs/QmXGnFUGiX9APL8xit7NZQEYBoEL3wWyW1YyFoJQd2pGPe\"]},\"lib/forge-std/src/StdError.sol\":{\"keccak256\":\"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6\",\"dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj\"]},\"lib/forge-std/src/StdInvariant.sol\":{\"keccak256\":\"0xf5762db8ef95099bbe77578cd9349511ed77f4dd63ec98cc6b7cd711447830c1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a6b0360806a9804eac0f7e07492b5db9c4953c521dabb9a11b17dd610d5b804c\",\"dweb:/ipfs/QmUFozSt3W7drBRdm1cdRow61EABqSLJtkvYZXWmoHUPss\"]},\"lib/forge-std/src/StdJson.sol\":{\"keccak256\":\"0x9e2a7521190c462a0667706385f1c52a816220a9813ca8ac520fba7ba45d660b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d23017fe6570b28130a731b86179352b93a5fb5af32f11559837afc1186293c\",\"dweb:/ipfs/QmR3p6zG5Kmcr8gKocFCSopLHfXv1AziPJbH17nKyMxwxV\"]},\"lib/forge-std/src/StdMath.sol\":{\"keccak256\":\"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92\",\"dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC\"]},\"lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0x391a28a2e54aea51a6fb03a3a48035304ca4d24bc669ddf3d4c152c7162e514d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://475fd0d87ccb0fdc4418dea2babffb4adb4aafb817e61f7ef31c2303f10c6c26\",\"dweb:/ipfs/QmQgcgtZxpkW6DRmbJszN1F8mU6zhaTZGdWWsj77yCuWN9\"]},\"lib/forge-std/src/StdStyle.sol\":{\"keccak256\":\"0x43e2a8a9b9c2574dabe74f11adf6f782df218f463540e3b5b563609fe108597d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://51363ca97404cf4128e1141428949768c31929e75e014b02c85e887fbbb4f1b8\",\"dweb:/ipfs/QmVhtbQc2fU4rRmbcfBtz34mAgG4BAZBsbna1Ca4SkoPsK\"]},\"lib/forge-std/src/StdUtils.sol\":{\"keccak256\":\"0x8758c42ba9d9e46868b796e2330ac239006ede07bd438a4b36dd6f2c47d27dc1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11f5752e0187b1e3631b875efdbe05d45929d05f1c1717105a9115d0a6628140\",\"dweb:/ipfs/QmUKkx9jfsUvjyYBw45RvrW1hTFXDXi2Jv5tbHP86mnzpi\"]},\"lib/forge-std/src/Test.sol\":{\"keccak256\":\"0xf3b62c75cea11a0e8ef8e6526e5e5c74ae47a892b9bcefc0e98d76066e1ffd24\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a41faaf836453e02c71fc272c80b3c90a614b30c9ba636512db0d033c7b93beb\",\"dweb:/ipfs/QmeQAreYYaxztQtFLQdHCzCPEorj9T5foSu2hQmxk7xT5x\"]},\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0xb569d0b4398fad95f508fb854e832143edf69a897af4250f5f60fe195a2066c5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://84b722ada97ea7bb841cdc0fa556aa36a02ff2d380fa24f6dc0717a71c6d9c7c\",\"dweb:/ipfs/QmfCH9Q4tvJhPM286GFsE4UCP4YncLpRu4Nwa2ZkHdRfbw\"]},\"lib/forge-std/src/console.sol\":{\"keccak256\":\"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70\",\"dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec\"]},\"lib/forge-std/src/console2.sol\":{\"keccak256\":\"0x954646445d1014c3cd85c7918f5e7adeeca5ee44b68c00bafa237e597a4e35ea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://516fa3be52da4763147175bfba4be0aa011fadbb0c1afb01f97265bd4cee7973\",\"dweb:/ipfs/QmdixAyMJefx7qePChgdxcBH5MxhmN7vsqPuPLx3CgrVmF\"]},\"lib/forge-std/src/interfaces/IMulticall3.sol\":{\"keccak256\":\"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0\",\"dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2\"]},\"lib/forge-std/src/safeconsole.sol\":{\"keccak256\":\"0xbaf41fdc6c54297e7cd8250e48b0f20eaac918e342a1028cef3f9a52ac086381\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a500ad81dea226f9910e6b50f99a9ff930105e393a692cbfb2185e4cdb4424ae\",\"dweb:/ipfs/QmVbUQpXNMmMWRiy4FvBNczzq46BMGfUoBikvSHNiCxVTq\"]},\"test/TestIEEE754.sol\":{\"keccak256\":\"0x5e93ca039c105bb9e6d28c634ca32dfa615acb5d4f07fd1b7f5c3ea2265b8072\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://e4c15b9869557d0163d4524a61807f30f83890080b29ce2291c338348947ac69\",\"dweb:/ipfs/QmZrpb1bfFy79hzk4uTCYY8dqn3941WaHtbGyM97isgLR1\"]}},\"version\":1}",
  "metadata": {
    "compiler": {
      "version": "0.8.22+commit.4fc1097e"
    },
    "language": "Solidity",
    "output": {
      "abi": [],
      "devdoc": {
        "kind": "dev",
        "methods": {},
        "version": 1
      },
      "userdoc": {
        "kind": "user",
        "methods": {},
        "version": 1
      }
    },
    "settings": {
      "remappings": [
        "@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/",
        "@uniswap/v3-core/=lib_uniswap/v3-core/",
        "@uniswap/v3-periphery/=lib_uniswap/v3-periphery/",
        "ds-test/=lib/forge-std/lib/ds-test/src/",
        "forge-std/=lib/forge-std/src/",
        "openzeppelin-contracts/=lib/openzeppelin-contracts/",
        "v3-core/=lib_uniswap/v3-core/",
        "v3-periphery/libraries/=lib_uniswap/v3-periphery/contracts/libraries/"
      ],
      "optimizer": {
        "runs": 999999999,
        "details": {
          "peephole": true,
          "inliner": true,
          "jumpdestRemover": true,
          "orderLiterals": true,
          "deduplicate": true,
          "cse": true,
          "constantOptimizer": true,
          "yul": true,
          "yulDetails": {
            "stackAllocation": true,
            "optimizerSteps": "dhfoD[xarrscLMcCTU]uljmul:fDnTOcmu"
          }
        }
      },
      "metadata": {
        "bytecodeHash": "ipfs"
      },
      "compilationTarget": {
        "test/TestIEEE754.sol": "IEEE754"
      },
      "libraries": {}
    },
    "sources": {
      "lib/forge-std/lib/ds-test/src/test.sol": {
        "keccak256": "0x8758531bbac3972efcf1fa46383dbe1d276406fe527bc7abb2f236486278e83b",
        "urls": [
          "bzz-raw://1f64264d61506847acf8761e84aff690cebe830958eac00bac7924d8be569240",
          "dweb:/ipfs/QmSekDJvJ82MZAmr63n7YvfLzQ7gS4NLSHPmHL3GN3rw8k"
        ],
        "license": "GPL-3.0-or-later"
      },
      "lib/forge-std/src/Base.sol": {
        "keccak256": "0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c",
        "urls": [
          "bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224",
          "dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK"
        ],
        "license": "MIT"
      },
      "lib/forge-std/src/StdAssertions.sol": {
        "keccak256": "0x1a0dee4d8b2c81e9318e87dd85ef009467ebf7dba6575530d1fce94d34dbae60",
        "urls": [
          "bzz-raw://ddd790c86ddde1013d1f7a552a80168eacf2e9244077f96799180644ad523a5b",
          "dweb:/ipfs/QmYinBFt9uEVFXP9ytT9CDoNpzWieQVgLWRFRNiypMzJaL"
        ],
        "license": "MIT"
      },
      "lib/forge-std/src/StdChains.sol": {
        "keccak256": "0x51e6eb138fc953fac1ac78012a39b3f16d9289ce06a222ba93bb0621768f96e6",
        "urls": [
          "bzz-raw://653c577e054cf578594148a07b286571d494f401b6d4a940d3ccabd47b29233d",
          "dweb:/ipfs/QmTWDVvR4m82MGXWYY8BCaVN89TguQJSLqRgzHzrMkFHtx"
        ],
        "license": "MIT"
      },
      "lib/forge-std/src/StdCheats.sol": {
        "keccak256": "0x2e1b4b99283c16efaf155f7e55ea357943cf6e61fc02aad060534349f63b6cd5",
        "urls": [
          "bzz-raw://d471a35903e8a367a145ca5b5955caf691c723fe1117c6dcffd928d9f8d7c95a",
          "dweb:/ipfs/QmXGnFUGiX9APL8xit7NZQEYBoEL3wWyW1YyFoJQd2pGPe"
        ],
        "license": "MIT"
      },
      "lib/forge-std/src/StdError.sol": {
        "keccak256": "0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77",
        "urls": [
          "bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6",
          "dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj"
        ],
        "license": "MIT"
      },
      "lib/forge-std/src/StdInvariant.sol": {
        "keccak256": "0xf5762db8ef95099bbe77578cd9349511ed77f4dd63ec98cc6b7cd711447830c1",
        "urls": [
          "bzz-raw://a6b0360806a9804eac0f7e07492b5db9c4953c521dabb9a11b17dd610d5b804c",
          "dweb:/ipfs/QmUFozSt3W7drBRdm1cdRow61EABqSLJtkvYZXWmoHUPss"
        ],
        "license": "MIT"
      },
      "lib/forge-std/src/StdJson.sol": {
        "keccak256": "0x9e2a7521190c462a0667706385f1c52a816220a9813ca8ac520fba7ba45d660b",
        "urls": [
          "bzz-raw://7d23017fe6570b28130a731b86179352b93a5fb5af32f11559837afc1186293c",
          "dweb:/ipfs/QmR3p6zG5Kmcr8gKocFCSopLHfXv1AziPJbH17nKyMxwxV"
        ],
        "license": "MIT"
      },
      "lib/forge-std/src/StdMath.sol": {
        "keccak256": "0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2",
        "urls": [
          "bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92",
          "dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC"
        ],
        "license": "MIT"
      },
      "lib/forge-std/src/StdStorage.sol": {
        "keccak256": "0x391a28a2e54aea51a6fb03a3a48035304ca4d24bc669ddf3d4c152c7162e514d",
        "urls": [
          "bzz-raw://475fd0d87ccb0fdc4418dea2babffb4adb4aafb817e61f7ef31c2303f10c6c26",
          "dweb:/ipfs/QmQgcgtZxpkW6DRmbJszN1F8mU6zhaTZGdWWsj77yCuWN9"
        ],
        "license": "MIT"
      },
      "lib/forge-std/src/StdStyle.sol": {
        "keccak256": "0x43e2a8a9b9c2574dabe74f11adf6f782df218f463540e3b5b563609fe108597d",
        "urls": [
          "bzz-raw://51363ca97404cf4128e1141428949768c31929e75e014b02c85e887fbbb4f1b8",
          "dweb:/ipfs/QmVhtbQc2fU4rRmbcfBtz34mAgG4BAZBsbna1Ca4SkoPsK"
        ],
        "license": "MIT"
      },
      "lib/forge-std/src/StdUtils.sol": {
        "keccak256": "0x8758c42ba9d9e46868b796e2330ac239006ede07bd438a4b36dd6f2c47d27dc1",
        "urls": [
          "bzz-raw://11f5752e0187b1e3631b875efdbe05d45929d05f1c1717105a9115d0a6628140",
          "dweb:/ipfs/QmUKkx9jfsUvjyYBw45RvrW1hTFXDXi2Jv5tbHP86mnzpi"
        ],
        "license": "MIT"
      },
      "lib/forge-std/src/Test.sol": {
        "keccak256": "0xf3b62c75cea11a0e8ef8e6526e5e5c74ae47a892b9bcefc0e98d76066e1ffd24",
        "urls": [
          "bzz-raw://a41faaf836453e02c71fc272c80b3c90a614b30c9ba636512db0d033c7b93beb",
          "dweb:/ipfs/QmeQAreYYaxztQtFLQdHCzCPEorj9T5foSu2hQmxk7xT5x"
        ],
        "license": "MIT"
      },
      "lib/forge-std/src/Vm.sol": {
        "keccak256": "0xb569d0b4398fad95f508fb854e832143edf69a897af4250f5f60fe195a2066c5",
        "urls": [
          "bzz-raw://84b722ada97ea7bb841cdc0fa556aa36a02ff2d380fa24f6dc0717a71c6d9c7c",
          "dweb:/ipfs/QmfCH9Q4tvJhPM286GFsE4UCP4YncLpRu4Nwa2ZkHdRfbw"
        ],
        "license": "MIT"
      },
      "lib/forge-std/src/console.sol": {
        "keccak256": "0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba",
        "urls": [
          "bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70",
          "dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec"
        ],
        "license": "MIT"
      },
      "lib/forge-std/src/console2.sol": {
        "keccak256": "0x954646445d1014c3cd85c7918f5e7adeeca5ee44b68c00bafa237e597a4e35ea",
        "urls": [
          "bzz-raw://516fa3be52da4763147175bfba4be0aa011fadbb0c1afb01f97265bd4cee7973",
          "dweb:/ipfs/QmdixAyMJefx7qePChgdxcBH5MxhmN7vsqPuPLx3CgrVmF"
        ],
        "license": "MIT"
      },
      "lib/forge-std/src/interfaces/IMulticall3.sol": {
        "keccak256": "0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a",
        "urls": [
          "bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0",
          "dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2"
        ],
        "license": "MIT"
      },
      "lib/forge-std/src/safeconsole.sol": {
        "keccak256": "0xbaf41fdc6c54297e7cd8250e48b0f20eaac918e342a1028cef3f9a52ac086381",
        "urls": [
          "bzz-raw://a500ad81dea226f9910e6b50f99a9ff930105e393a692cbfb2185e4cdb4424ae",
          "dweb:/ipfs/QmVbUQpXNMmMWRiy4FvBNczzq46BMGfUoBikvSHNiCxVTq"
        ],
        "license": "MIT"
      },
      "test/TestIEEE754.sol": {
        "keccak256": "0x5e93ca039c105bb9e6d28c634ca32dfa615acb5d4f07fd1b7f5c3ea2265b8072",
        "urls": [
          "bzz-raw://e4c15b9869557d0163d4524a61807f30f83890080b29ce2291c338348947ac69",
          "dweb:/ipfs/QmZrpb1bfFy79hzk4uTCYY8dqn3941WaHtbGyM97isgLR1"
        ],
        "license": "UNLICENSED"
      }
    },
    "version": 1
  },
  "ast": {
    "absolutePath": "test/TestIEEE754.sol",
    "id": 50824,
    "exportedSymbols": {
      "DSTest": [
        2291
      ],
      "IEEE754": [
        50578
      ],
      "StdAssertions": [
        3823
      ],
      "StdChains": [
        4516
      ],
      "StdCheats": [
        7334
      ],
      "StdInvariant": [
        7624
      ],
      "StdStorage": [
        8374
      ],
      "StdStyle": [
        11038
      ],
      "StdUtils": [
        11886
      ],
      "Test": [
        11937
      ],
      "TestBase": [
        2357
      ],
      "TestIEEE754": [
        50823
      ],
      "Vm": [
        13464
      ],
      "console": [
        21528
      ],
      "console2": [
        29653
      ],
      "safeconsole": [
        42891
      ],
      "stdError": [
        7400
      ],
      "stdJson": [
        8200
      ],
      "stdMath": [
        8342
      ],
      "stdStorage": [
        9827
      ]
    },
    "nodeType": "SourceUnit",
    "src": "39:4089:65",
    "nodes": [
      {
        "id": 50396,
        "nodeType": "PragmaDirective",
        "src": "39:24:65",
        "nodes": [],
        "literals": [
          "solidity",
          ">=",
          "0.8",
          ".0"
        ]
      },
      {
        "id": 50397,
        "nodeType": "PragmaDirective",
        "src": "64:19:65",
        "nodes": [],
        "literals": [
          "abicoder",
          "v2"
        ]
      },
      {
        "id": 50398,
        "nodeType": "ImportDirective",
        "src": "85:28:65",
        "nodes": [],
        "absolutePath": "lib/forge-std/src/Test.sol",
        "file": "forge-std/Test.sol",
        "nameLocation": "-1:-1:-1",
        "scope": 50824,
        "sourceUnit": 11938,
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "id": 50578,
        "nodeType": "ContractDefinition",
        "src": "115:1845:65",
        "nodes": [
          {
            "id": 50436,
            "nodeType": "FunctionDefinition",
            "src": "177:195:65",
            "nodes": [],
            "body": {
              "id": 50435,
              "nodeType": "Block",
              "src": "251:121:65",
              "nodes": [],
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 50414,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 50410,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 50408,
                            "name": "p",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 50402,
                            "src": "269:1:65",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": ">=",
                          "rightExpression": {
                            "hexValue": "31",
                            "id": 50409,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "274:1:65",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_1_by_1",
                              "typeString": "int_const 1"
                            },
                            "value": "1"
                          },
                          "src": "269:6:65",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "&&",
                        "rightExpression": {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 50413,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 50411,
                            "name": "p",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 50402,
                            "src": "279:1:65",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "<=",
                          "rightExpression": {
                            "hexValue": "323536",
                            "id": 50412,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "284:3:65",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_256_by_1",
                              "typeString": "int_const 256"
                            },
                            "value": "256"
                          },
                          "src": "279:8:65",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "269:18:65",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "hexValue": "7020696e76616c6964",
                        "id": 50415,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "289:11:65",
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_8b592306eed1055dcdd948ca29407a1249cfe3e804496b2ead930aac834cd721",
                          "typeString": "literal_string \"p invalid\""
                        },
                        "value": "p invalid"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_8b592306eed1055dcdd948ca29407a1249cfe3e804496b2ead930aac834cd721",
                          "typeString": "literal_string \"p invalid\""
                        }
                      ],
                      "id": 50407,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        -18,
                        -18
                      ],
                      "referencedDeclaration": -18,
                      "src": "261:7:65",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 50416,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "261:40:65",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 50417,
                  "nodeType": "ExpressionStatement",
                  "src": "261:40:65"
                },
                {
                  "assignments": [
                    50419
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 50419,
                      "mutability": "mutable",
                      "name": "s",
                      "nameLocation": "319:1:65",
                      "nodeType": "VariableDeclaration",
                      "scope": 50435,
                      "src": "311:9:65",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 50418,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "311:7:65",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 50423,
                  "initialValue": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 50422,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "hexValue": "323536",
                      "id": 50420,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "323:3:65",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_256_by_1",
                        "typeString": "int_const 256"
                      },
                      "value": "256"
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "-",
                    "rightExpression": {
                      "id": 50421,
                      "name": "p",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 50402,
                      "src": "329:1:65",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "323:7:65",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "311:19:65"
                },
                {
                  "expression": {
                    "id": 50433,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 50424,
                      "name": "r",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 50405,
                      "src": "340:1:65",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int256",
                        "typeString": "int256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "commonType": {
                        "typeIdentifier": "t_int256",
                        "typeString": "int256"
                      },
                      "id": 50432,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "arguments": [
                          {
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 50429,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "id": 50427,
                              "name": "b",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 50400,
                              "src": "352:1:65",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "<<",
                            "rightExpression": {
                              "id": 50428,
                              "name": "s",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 50419,
                              "src": "357:1:65",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "src": "352:6:65",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "id": 50426,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "344:6:65",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_int256_$",
                            "typeString": "type(int256)"
                          },
                          "typeName": {
                            "id": 50425,
                            "name": "int256",
                            "nodeType": "ElementaryTypeName",
                            "src": "344:6:65",
                            "typeDescriptions": {}
                          }
                        },
                        "id": 50430,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "344:16:65",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": ">>",
                      "rightExpression": {
                        "id": 50431,
                        "name": "s",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 50419,
                        "src": "364:1:65",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "src": "344:21:65",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int256",
                        "typeString": "int256"
                      }
                    },
                    "src": "340:25:65",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int256",
                      "typeString": "int256"
                    }
                  },
                  "id": 50434,
                  "nodeType": "ExpressionStatement",
                  "src": "340:25:65"
                }
              ]
            },
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "bits2int",
            "nameLocation": "186:8:65",
            "parameters": {
              "id": 50403,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 50400,
                  "mutability": "mutable",
                  "name": "b",
                  "nameLocation": "204:1:65",
                  "nodeType": "VariableDeclaration",
                  "scope": 50436,
                  "src": "196:9:65",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 50399,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "196:7:65",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 50402,
                  "mutability": "mutable",
                  "name": "p",
                  "nameLocation": "215:1:65",
                  "nodeType": "VariableDeclaration",
                  "scope": 50436,
                  "src": "207:9:65",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 50401,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "207:7:65",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "195:22:65"
            },
            "returnParameters": {
              "id": 50406,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 50405,
                  "mutability": "mutable",
                  "name": "r",
                  "nameLocation": "248:1:65",
                  "nodeType": "VariableDeclaration",
                  "scope": 50436,
                  "src": "241:8:65",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_int256",
                    "typeString": "int256"
                  },
                  "typeName": {
                    "id": 50404,
                    "name": "int256",
                    "nodeType": "ElementaryTypeName",
                    "src": "241:6:65",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int256",
                      "typeString": "int256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "240:10:65"
            },
            "scope": 50578,
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "id": 50439,
            "nodeType": "VariableDeclaration",
            "src": "378:41:65",
            "nodes": [],
            "constant": true,
            "mutability": "constant",
            "name": "EBIAS",
            "nameLocation": "403:5:65",
            "scope": 50578,
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_int32",
              "typeString": "int32"
            },
            "typeName": {
              "id": 50437,
              "name": "int32",
              "nodeType": "ElementaryTypeName",
              "src": "378:5:65",
              "typeDescriptions": {
                "typeIdentifier": "t_int32",
                "typeString": "int32"
              }
            },
            "value": {
              "hexValue": "313237",
              "id": 50438,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "416:3:65",
              "typeDescriptions": {
                "typeIdentifier": "t_rational_127_by_1",
                "typeString": "int_const 127"
              },
              "value": "127"
            },
            "visibility": "internal"
          },
          {
            "id": 50442,
            "nodeType": "VariableDeclaration",
            "src": "425:42:65",
            "nodes": [],
            "constant": true,
            "mutability": "constant",
            "name": "ENAN",
            "nameLocation": "450:4:65",
            "scope": 50578,
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_int32",
              "typeString": "int32"
            },
            "typeName": {
              "id": 50440,
              "name": "int32",
              "nodeType": "ElementaryTypeName",
              "src": "425:5:65",
              "typeDescriptions": {
                "typeIdentifier": "t_int32",
                "typeString": "int32"
              }
            },
            "value": {
              "hexValue": "30786666",
              "id": 50441,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "463:4:65",
              "typeDescriptions": {
                "typeIdentifier": "t_rational_255_by_1",
                "typeString": "int_const 255"
              },
              "value": "0xff"
            },
            "visibility": "internal"
          },
          {
            "id": 50445,
            "nodeType": "VariableDeclaration",
            "src": "499:39:65",
            "nodes": [],
            "constant": true,
            "mutability": "constant",
            "name": "ESUBNORM",
            "nameLocation": "524:8:65",
            "scope": 50578,
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_int32",
              "typeString": "int32"
            },
            "typeName": {
              "id": 50443,
              "name": "int32",
              "nodeType": "ElementaryTypeName",
              "src": "499:5:65",
              "typeDescriptions": {
                "typeIdentifier": "t_int32",
                "typeString": "int32"
              }
            },
            "value": {
              "hexValue": "30",
              "id": 50444,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "537:1:65",
              "typeDescriptions": {
                "typeIdentifier": "t_rational_0_by_1",
                "typeString": "int_const 0"
              },
              "value": "0"
            },
            "visibility": "internal"
          },
          {
            "id": 50448,
            "nodeType": "VariableDeclaration",
            "src": "545:49:65",
            "nodes": [],
            "constant": true,
            "mutability": "constant",
            "name": "SIGN_MASK",
            "nameLocation": "570:9:65",
            "scope": 50578,
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint32",
              "typeString": "uint32"
            },
            "typeName": {
              "id": 50446,
              "name": "uint32",
              "nodeType": "ElementaryTypeName",
              "src": "545:6:65",
              "typeDescriptions": {
                "typeIdentifier": "t_uint32",
                "typeString": "uint32"
              }
            },
            "value": {
              "hexValue": "3078383030305f30303030",
              "id": 50447,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "583:11:65",
              "typeDescriptions": {
                "typeIdentifier": "t_rational_2147483648_by_1",
                "typeString": "int_const 2147483648"
              },
              "value": "0x8000_0000"
            },
            "visibility": "internal"
          },
          {
            "id": 50451,
            "nodeType": "VariableDeclaration",
            "src": "600:49:65",
            "nodes": [],
            "constant": true,
            "mutability": "constant",
            "name": "EXP_MASK",
            "nameLocation": "625:8:65",
            "scope": 50578,
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint32",
              "typeString": "uint32"
            },
            "typeName": {
              "id": 50449,
              "name": "uint32",
              "nodeType": "ElementaryTypeName",
              "src": "600:6:65",
              "typeDescriptions": {
                "typeIdentifier": "t_uint32",
                "typeString": "uint32"
              }
            },
            "value": {
              "hexValue": "3078376638305f30303030",
              "id": 50450,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "638:11:65",
              "typeDescriptions": {
                "typeIdentifier": "t_rational_2139095040_by_1",
                "typeString": "int_const 2139095040"
              },
              "value": "0x7f80_0000"
            },
            "visibility": "internal"
          },
          {
            "id": 50454,
            "nodeType": "VariableDeclaration",
            "src": "655:49:65",
            "nodes": [],
            "constant": true,
            "mutability": "constant",
            "name": "MANT_MASK",
            "nameLocation": "680:9:65",
            "scope": 50578,
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint32",
              "typeString": "uint32"
            },
            "typeName": {
              "id": 50452,
              "name": "uint32",
              "nodeType": "ElementaryTypeName",
              "src": "655:6:65",
              "typeDescriptions": {
                "typeIdentifier": "t_uint32",
                "typeString": "uint32"
              }
            },
            "value": {
              "hexValue": "3078303037665f66666666",
              "id": 50453,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "693:11:65",
              "typeDescriptions": {
                "typeIdentifier": "t_rational_8388607_by_1",
                "typeString": "int_const 8388607"
              },
              "value": "0x007f_ffff"
            },
            "visibility": "internal"
          },
          {
            "id": 50459,
            "nodeType": "VariableDeclaration",
            "src": "710:58:65",
            "nodes": [],
            "constant": true,
            "mutability": "constant",
            "name": "ZERO_MASK",
            "nameLocation": "735:9:65",
            "scope": 50578,
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint32",
              "typeString": "uint32"
            },
            "typeName": {
              "id": 50455,
              "name": "uint32",
              "nodeType": "ElementaryTypeName",
              "src": "710:6:65",
              "typeDescriptions": {
                "typeIdentifier": "t_uint32",
                "typeString": "uint32"
              }
            },
            "value": {
              "commonType": {
                "typeIdentifier": "t_uint32",
                "typeString": "uint32"
              },
              "id": 50458,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "lValueRequested": false,
              "leftExpression": {
                "id": 50456,
                "name": "EXP_MASK",
                "nodeType": "Identifier",
                "overloadedDeclarations": [],
                "referencedDeclaration": 50451,
                "src": "748:8:65",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint32",
                  "typeString": "uint32"
                }
              },
              "nodeType": "BinaryOperation",
              "operator": "|",
              "rightExpression": {
                "id": 50457,
                "name": "MANT_MASK",
                "nodeType": "Identifier",
                "overloadedDeclarations": [],
                "referencedDeclaration": 50454,
                "src": "759:9:65",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint32",
                  "typeString": "uint32"
                }
              },
              "src": "748:20:65",
              "typeDescriptions": {
                "typeIdentifier": "t_uint32",
                "typeString": "uint32"
              }
            },
            "visibility": "internal"
          },
          {
            "id": 50462,
            "nodeType": "VariableDeclaration",
            "src": "774:49:65",
            "nodes": [],
            "constant": true,
            "mutability": "constant",
            "name": "MSB",
            "nameLocation": "799:3:65",
            "scope": 50578,
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_int32",
              "typeString": "int32"
            },
            "typeName": {
              "id": 50460,
              "name": "int32",
              "nodeType": "ElementaryTypeName",
              "src": "774:5:65",
              "typeDescriptions": {
                "typeIdentifier": "t_int32",
                "typeString": "int32"
              }
            },
            "value": {
              "hexValue": "3078303038305f30303030",
              "id": 50461,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "812:11:65",
              "typeDescriptions": {
                "typeIdentifier": "t_rational_8388608_by_1",
                "typeString": "int_const 8388608"
              },
              "value": "0x0080_0000"
            },
            "visibility": "internal"
          },
          {
            "id": 50577,
            "nodeType": "FunctionDefinition",
            "src": "852:1106:65",
            "nodes": [],
            "body": {
              "id": 50576,
              "nodeType": "Block",
              "src": "955:1003:65",
              "nodes": [],
              "statements": [
                {
                  "id": 50575,
                  "nodeType": "UncheckedBlock",
                  "src": "956:1001:65",
                  "statements": [
                    {
                      "condition": {
                        "commonType": {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        },
                        "id": 50475,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "commonType": {
                            "typeIdentifier": "t_uint32",
                            "typeString": "uint32"
                          },
                          "id": 50473,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 50471,
                            "name": "floatingPoint",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 50464,
                            "src": "1002:13:65",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint32",
                              "typeString": "uint32"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "&",
                          "rightExpression": {
                            "id": 50472,
                            "name": "ZERO_MASK",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 50459,
                            "src": "1018:9:65",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint32",
                              "typeString": "uint32"
                            }
                          },
                          "src": "1002:25:65",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint32",
                            "typeString": "uint32"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "hexValue": "30",
                          "id": 50474,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "1031:1:65",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "1002:30:65",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "id": 50478,
                      "nodeType": "IfStatement",
                      "src": "998:44:65",
                      "trueBody": {
                        "expression": {
                          "hexValue": "30",
                          "id": 50476,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "1041:1:65",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "functionReturnParameters": 50470,
                        "id": 50477,
                        "nodeType": "Return",
                        "src": "1034:8:65"
                      }
                    },
                    {
                      "assignments": [
                        50480
                      ],
                      "declarations": [
                        {
                          "constant": false,
                          "id": 50480,
                          "mutability": "mutable",
                          "name": "exp",
                          "nameLocation": "1095:3:65",
                          "nodeType": "VariableDeclaration",
                          "scope": 50575,
                          "src": "1088:10:65",
                          "stateVariable": false,
                          "storageLocation": "default",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int32",
                            "typeString": "int32"
                          },
                          "typeName": {
                            "id": 50479,
                            "name": "int32",
                            "nodeType": "ElementaryTypeName",
                            "src": "1088:5:65",
                            "typeDescriptions": {
                              "typeIdentifier": "t_int32",
                              "typeString": "int32"
                            }
                          },
                          "visibility": "internal"
                        }
                      ],
                      "id": 50489,
                      "initialValue": {
                        "commonType": {
                          "typeIdentifier": "t_int32",
                          "typeString": "int32"
                        },
                        "id": 50488,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "arguments": [
                            {
                              "commonType": {
                                "typeIdentifier": "t_uint32",
                                "typeString": "uint32"
                              },
                              "id": 50485,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "id": 50483,
                                "name": "floatingPoint",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 50464,
                                "src": "1107:13:65",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint32",
                                  "typeString": "uint32"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "&",
                              "rightExpression": {
                                "id": 50484,
                                "name": "EXP_MASK",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 50451,
                                "src": "1123:8:65",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint32",
                                  "typeString": "uint32"
                                }
                              },
                              "src": "1107:24:65",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint32",
                                "typeString": "uint32"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint32",
                                "typeString": "uint32"
                              }
                            ],
                            "id": 50482,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "1101:5:65",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_int32_$",
                              "typeString": "type(int32)"
                            },
                            "typeName": {
                              "id": 50481,
                              "name": "int32",
                              "nodeType": "ElementaryTypeName",
                              "src": "1101:5:65",
                              "typeDescriptions": {}
                            }
                          },
                          "id": 50486,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "1101:31:65",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_int32",
                            "typeString": "int32"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">>",
                        "rightExpression": {
                          "hexValue": "3233",
                          "id": 50487,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "1136:2:65",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_23_by_1",
                            "typeString": "int_const 23"
                          },
                          "value": "23"
                        },
                        "src": "1101:37:65",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int32",
                          "typeString": "int32"
                        }
                      },
                      "nodeType": "VariableDeclarationStatement",
                      "src": "1088:50:65"
                    },
                    {
                      "expression": {
                        "arguments": [
                          {
                            "commonType": {
                              "typeIdentifier": "t_int32",
                              "typeString": "int32"
                            },
                            "id": 50493,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "id": 50491,
                              "name": "exp",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 50480,
                              "src": "1157:3:65",
                              "typeDescriptions": {
                                "typeIdentifier": "t_int32",
                                "typeString": "int32"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "!=",
                            "rightExpression": {
                              "id": 50492,
                              "name": "ENAN",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 50442,
                              "src": "1164:4:65",
                              "typeDescriptions": {
                                "typeIdentifier": "t_int32",
                                "typeString": "int32"
                              }
                            },
                            "src": "1157:11:65",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          {
                            "hexValue": "4e614e206e6f7420737570706f72746564",
                            "id": 50494,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "string",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "1170:19:65",
                            "typeDescriptions": {
                              "typeIdentifier": "t_stringliteral_99bebfbf084fa3004c97aa5e5b0e6afbfdbe84ab9e1227d03f980ea0e8bf4b1e",
                              "typeString": "literal_string \"NaN not supported\""
                            },
                            "value": "NaN not supported"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            },
                            {
                              "typeIdentifier": "t_stringliteral_99bebfbf084fa3004c97aa5e5b0e6afbfdbe84ab9e1227d03f980ea0e8bf4b1e",
                              "typeString": "literal_string \"NaN not supported\""
                            }
                          ],
                          "id": 50490,
                          "name": "require",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [
                            -18,
                            -18
                          ],
                          "referencedDeclaration": -18,
                          "src": "1148:7:65",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                            "typeString": "function (bool,string memory) pure"
                          }
                        },
                        "id": 50495,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1148:42:65",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_tuple$__$",
                          "typeString": "tuple()"
                        }
                      },
                      "id": 50496,
                      "nodeType": "ExpressionStatement",
                      "src": "1148:42:65"
                    },
                    {
                      "assignments": [
                        50498
                      ],
                      "declarations": [
                        {
                          "constant": false,
                          "id": 50498,
                          "mutability": "mutable",
                          "name": "mant",
                          "nameLocation": "1240:4:65",
                          "nodeType": "VariableDeclaration",
                          "scope": 50575,
                          "src": "1233:11:65",
                          "stateVariable": false,
                          "storageLocation": "default",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          },
                          "typeName": {
                            "id": 50497,
                            "name": "int256",
                            "nodeType": "ElementaryTypeName",
                            "src": "1233:6:65",
                            "typeDescriptions": {
                              "typeIdentifier": "t_int256",
                              "typeString": "int256"
                            }
                          },
                          "visibility": "internal"
                        }
                      ],
                      "id": 50505,
                      "initialValue": {
                        "arguments": [
                          {
                            "commonType": {
                              "typeIdentifier": "t_uint32",
                              "typeString": "uint32"
                            },
                            "id": 50503,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "id": 50501,
                              "name": "floatingPoint",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 50464,
                              "src": "1253:13:65",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint32",
                                "typeString": "uint32"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "&",
                            "rightExpression": {
                              "id": 50502,
                              "name": "MANT_MASK",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 50454,
                              "src": "1269:9:65",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint32",
                                "typeString": "uint32"
                              }
                            },
                            "src": "1253:25:65",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint32",
                              "typeString": "uint32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint32",
                              "typeString": "uint32"
                            }
                          ],
                          "id": 50500,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "1247:5:65",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_int32_$",
                            "typeString": "type(int32)"
                          },
                          "typeName": {
                            "id": 50499,
                            "name": "int32",
                            "nodeType": "ElementaryTypeName",
                            "src": "1247:5:65",
                            "typeDescriptions": {}
                          }
                        },
                        "id": 50504,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1247:32:65",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_int32",
                          "typeString": "int32"
                        }
                      },
                      "nodeType": "VariableDeclarationStatement",
                      "src": "1233:46:65"
                    },
                    {
                      "condition": {
                        "commonType": {
                          "typeIdentifier": "t_int32",
                          "typeString": "int32"
                        },
                        "id": 50508,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "id": 50506,
                          "name": "exp",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 50480,
                          "src": "1293:3:65",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int32",
                            "typeString": "int32"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "!=",
                        "rightExpression": {
                          "id": 50507,
                          "name": "ESUBNORM",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 50445,
                          "src": "1300:8:65",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int32",
                            "typeString": "int32"
                          }
                        },
                        "src": "1293:15:65",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "id": 50513,
                      "nodeType": "IfStatement",
                      "src": "1289:32:65",
                      "trueBody": {
                        "expression": {
                          "id": 50511,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "id": 50509,
                            "name": "mant",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 50498,
                            "src": "1310:4:65",
                            "typeDescriptions": {
                              "typeIdentifier": "t_int256",
                              "typeString": "int256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "|=",
                          "rightHandSide": {
                            "id": 50510,
                            "name": "MSB",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 50462,
                            "src": "1318:3:65",
                            "typeDescriptions": {
                              "typeIdentifier": "t_int32",
                              "typeString": "int32"
                            }
                          },
                          "src": "1310:11:65",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          }
                        },
                        "id": 50512,
                        "nodeType": "ExpressionStatement",
                        "src": "1310:11:65"
                      }
                    },
                    {
                      "condition": {
                        "commonType": {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        },
                        "id": 50518,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "commonType": {
                            "typeIdentifier": "t_uint32",
                            "typeString": "uint32"
                          },
                          "id": 50516,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 50514,
                            "name": "floatingPoint",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 50464,
                            "src": "1387:13:65",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint32",
                              "typeString": "uint32"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "&",
                          "rightExpression": {
                            "id": 50515,
                            "name": "SIGN_MASK",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 50448,
                            "src": "1403:9:65",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint32",
                              "typeString": "uint32"
                            }
                          },
                          "src": "1387:25:65",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint32",
                            "typeString": "uint32"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "!=",
                        "rightExpression": {
                          "hexValue": "30",
                          "id": 50517,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "1416:1:65",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "1387:30:65",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "id": 50524,
                      "nodeType": "IfStatement",
                      "src": "1383:48:65",
                      "trueBody": {
                        "expression": {
                          "id": 50522,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "id": 50519,
                            "name": "mant",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 50498,
                            "src": "1419:4:65",
                            "typeDescriptions": {
                              "typeIdentifier": "t_int256",
                              "typeString": "int256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "id": 50521,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "UnaryOperation",
                            "operator": "-",
                            "prefix": true,
                            "src": "1426:5:65",
                            "subExpression": {
                              "id": 50520,
                              "name": "mant",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 50498,
                              "src": "1427:4:65",
                              "typeDescriptions": {
                                "typeIdentifier": "t_int256",
                                "typeString": "int256"
                              }
                            },
                            "typeDescriptions": {
                              "typeIdentifier": "t_int256",
                              "typeString": "int256"
                            }
                          },
                          "src": "1419:12:65",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          }
                        },
                        "id": 50523,
                        "nodeType": "ExpressionStatement",
                        "src": "1419:12:65"
                      }
                    },
                    {
                      "expression": {
                        "id": 50529,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftHandSide": {
                          "id": 50525,
                          "name": "exp",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 50480,
                          "src": "1501:3:65",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int32",
                            "typeString": "int32"
                          }
                        },
                        "nodeType": "Assignment",
                        "operator": "=",
                        "rightHandSide": {
                          "commonType": {
                            "typeIdentifier": "t_int32",
                            "typeString": "int32"
                          },
                          "id": 50528,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 50526,
                            "name": "exp",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 50480,
                            "src": "1507:3:65",
                            "typeDescriptions": {
                              "typeIdentifier": "t_int32",
                              "typeString": "int32"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "-",
                          "rightExpression": {
                            "id": 50527,
                            "name": "EBIAS",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 50439,
                            "src": "1513:5:65",
                            "typeDescriptions": {
                              "typeIdentifier": "t_int32",
                              "typeString": "int32"
                            }
                          },
                          "src": "1507:11:65",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int32",
                            "typeString": "int32"
                          }
                        },
                        "src": "1501:17:65",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int32",
                          "typeString": "int32"
                        }
                      },
                      "id": 50530,
                      "nodeType": "ExpressionStatement",
                      "src": "1501:17:65"
                    },
                    {
                      "assignments": [
                        50532
                      ],
                      "declarations": [
                        {
                          "constant": false,
                          "id": 50532,
                          "mutability": "mutable",
                          "name": "rshft",
                          "nameLocation": "1559:5:65",
                          "nodeType": "VariableDeclaration",
                          "scope": 50575,
                          "src": "1552:12:65",
                          "stateVariable": false,
                          "storageLocation": "default",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          },
                          "typeName": {
                            "id": 50531,
                            "name": "int256",
                            "nodeType": "ElementaryTypeName",
                            "src": "1552:6:65",
                            "typeDescriptions": {
                              "typeIdentifier": "t_int256",
                              "typeString": "int256"
                            }
                          },
                          "visibility": "internal"
                        }
                      ],
                      "id": 50541,
                      "initialValue": {
                        "commonType": {
                          "typeIdentifier": "t_int32",
                          "typeString": "int32"
                        },
                        "id": 50540,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "commonType": {
                            "typeIdentifier": "t_int32",
                            "typeString": "int32"
                          },
                          "id": 50538,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "hexValue": "3233",
                            "id": 50533,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "1567:2:65",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_23_by_1",
                              "typeString": "int_const 23"
                            },
                            "value": "23"
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "-",
                          "rightExpression": {
                            "arguments": [
                              {
                                "id": 50536,
                                "name": "fixedBits",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 50466,
                                "src": "1578:9:65",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint32",
                                  "typeString": "uint32"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint32",
                                  "typeString": "uint32"
                                }
                              ],
                              "id": 50535,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "1572:5:65",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_int32_$",
                                "typeString": "type(int32)"
                              },
                              "typeName": {
                                "id": 50534,
                                "name": "int32",
                                "nodeType": "ElementaryTypeName",
                                "src": "1572:5:65",
                                "typeDescriptions": {}
                              }
                            },
                            "id": 50537,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "1572:16:65",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_int32",
                              "typeString": "int32"
                            }
                          },
                          "src": "1567:21:65",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int32",
                            "typeString": "int32"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "-",
                        "rightExpression": {
                          "id": 50539,
                          "name": "exp",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 50480,
                          "src": "1591:3:65",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int32",
                            "typeString": "int32"
                          }
                        },
                        "src": "1567:27:65",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int32",
                          "typeString": "int32"
                        }
                      },
                      "nodeType": "VariableDeclarationStatement",
                      "src": "1552:42:65"
                    },
                    {
                      "condition": {
                        "commonType": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        },
                        "id": 50544,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "id": 50542,
                          "name": "rshft",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 50532,
                          "src": "1721:5:65",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "<",
                        "rightExpression": {
                          "hexValue": "30",
                          "id": 50543,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "1729:1:65",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "1721:9:65",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "falseBody": {
                        "condition": {
                          "commonType": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          },
                          "id": 50557,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 50555,
                            "name": "rshft",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 50532,
                            "src": "1820:5:65",
                            "typeDescriptions": {
                              "typeIdentifier": "t_int256",
                              "typeString": "int256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": ">",
                          "rightExpression": {
                            "hexValue": "30",
                            "id": 50556,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "1828:1:65",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0"
                          },
                          "src": "1820:9:65",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "falseBody": {
                          "expression": {
                            "id": 50569,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftHandSide": {
                              "id": 50567,
                              "name": "fixedPoint",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 50469,
                              "src": "1905:10:65",
                              "typeDescriptions": {
                                "typeIdentifier": "t_int256",
                                "typeString": "int256"
                              }
                            },
                            "nodeType": "Assignment",
                            "operator": "=",
                            "rightHandSide": {
                              "id": 50568,
                              "name": "mant",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 50498,
                              "src": "1918:4:65",
                              "typeDescriptions": {
                                "typeIdentifier": "t_int256",
                                "typeString": "int256"
                              }
                            },
                            "src": "1905:17:65",
                            "typeDescriptions": {
                              "typeIdentifier": "t_int256",
                              "typeString": "int256"
                            }
                          },
                          "id": 50570,
                          "nodeType": "ExpressionStatement",
                          "src": "1905:17:65"
                        },
                        "id": 50571,
                        "nodeType": "IfStatement",
                        "src": "1816:106:65",
                        "trueBody": {
                          "expression": {
                            "id": 50565,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftHandSide": {
                              "id": 50558,
                              "name": "fixedPoint",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 50469,
                              "src": "1843:10:65",
                              "typeDescriptions": {
                                "typeIdentifier": "t_int256",
                                "typeString": "int256"
                              }
                            },
                            "nodeType": "Assignment",
                            "operator": "=",
                            "rightHandSide": {
                              "commonType": {
                                "typeIdentifier": "t_int256",
                                "typeString": "int256"
                              },
                              "id": 50564,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "id": 50559,
                                "name": "mant",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 50498,
                                "src": "1856:4:65",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_int256",
                                  "typeString": "int256"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": ">>",
                              "rightExpression": {
                                "arguments": [
                                  {
                                    "id": 50562,
                                    "name": "rshft",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 50532,
                                    "src": "1872:5:65",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_int256",
                                      "typeString": "int256"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_int256",
                                      "typeString": "int256"
                                    }
                                  ],
                                  "id": 50561,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "1864:7:65",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_uint256_$",
                                    "typeString": "type(uint256)"
                                  },
                                  "typeName": {
                                    "id": 50560,
                                    "name": "uint256",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "1864:7:65",
                                    "typeDescriptions": {}
                                  }
                                },
                                "id": 50563,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "nameLocations": [],
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "1864:14:65",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "src": "1856:22:65",
                              "typeDescriptions": {
                                "typeIdentifier": "t_int256",
                                "typeString": "int256"
                              }
                            },
                            "src": "1843:35:65",
                            "typeDescriptions": {
                              "typeIdentifier": "t_int256",
                              "typeString": "int256"
                            }
                          },
                          "id": 50566,
                          "nodeType": "ExpressionStatement",
                          "src": "1843:35:65"
                        }
                      },
                      "id": 50572,
                      "nodeType": "IfStatement",
                      "src": "1717:205:65",
                      "trueBody": {
                        "expression": {
                          "id": 50553,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "id": 50545,
                            "name": "fixedPoint",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 50469,
                            "src": "1765:10:65",
                            "typeDescriptions": {
                              "typeIdentifier": "t_int256",
                              "typeString": "int256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "commonType": {
                              "typeIdentifier": "t_int256",
                              "typeString": "int256"
                            },
                            "id": 50552,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "id": 50546,
                              "name": "mant",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 50498,
                              "src": "1778:4:65",
                              "typeDescriptions": {
                                "typeIdentifier": "t_int256",
                                "typeString": "int256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "<<",
                            "rightExpression": {
                              "arguments": [
                                {
                                  "id": 50550,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "UnaryOperation",
                                  "operator": "-",
                                  "prefix": true,
                                  "src": "1794:6:65",
                                  "subExpression": {
                                    "id": 50549,
                                    "name": "rshft",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 50532,
                                    "src": "1795:5:65",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_int256",
                                      "typeString": "int256"
                                    }
                                  },
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_int256",
                                    "typeString": "int256"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_int256",
                                    "typeString": "int256"
                                  }
                                ],
                                "id": 50548,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "ElementaryTypeNameExpression",
                                "src": "1786:7:65",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_uint256_$",
                                  "typeString": "type(uint256)"
                                },
                                "typeName": {
                                  "id": 50547,
                                  "name": "uint256",
                                  "nodeType": "ElementaryTypeName",
                                  "src": "1786:7:65",
                                  "typeDescriptions": {}
                                }
                              },
                              "id": 50551,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "nameLocations": [],
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "1786:15:65",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "src": "1778:23:65",
                            "typeDescriptions": {
                              "typeIdentifier": "t_int256",
                              "typeString": "int256"
                            }
                          },
                          "src": "1765:36:65",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          }
                        },
                        "id": 50554,
                        "nodeType": "ExpressionStatement",
                        "src": "1765:36:65"
                      }
                    },
                    {
                      "expression": {
                        "id": 50573,
                        "name": "fixedPoint",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 50469,
                        "src": "1940:10:65",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        }
                      },
                      "functionReturnParameters": 50470,
                      "id": 50574,
                      "nodeType": "Return",
                      "src": "1933:17:65"
                    }
                  ]
                }
              ]
            },
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "float2fixed",
            "nameLocation": "861:11:65",
            "parameters": {
              "id": 50467,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 50464,
                  "mutability": "mutable",
                  "name": "floatingPoint",
                  "nameLocation": "880:13:65",
                  "nodeType": "VariableDeclaration",
                  "scope": 50577,
                  "src": "873:20:65",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint32",
                    "typeString": "uint32"
                  },
                  "typeName": {
                    "id": 50463,
                    "name": "uint32",
                    "nodeType": "ElementaryTypeName",
                    "src": "873:6:65",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 50466,
                  "mutability": "mutable",
                  "name": "fixedBits",
                  "nameLocation": "902:9:65",
                  "nodeType": "VariableDeclaration",
                  "scope": 50577,
                  "src": "895:16:65",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint32",
                    "typeString": "uint32"
                  },
                  "typeName": {
                    "id": 50465,
                    "name": "uint32",
                    "nodeType": "ElementaryTypeName",
                    "src": "895:6:65",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "872:40:65"
            },
            "returnParameters": {
              "id": 50470,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 50469,
                  "mutability": "mutable",
                  "name": "fixedPoint",
                  "nameLocation": "943:10:65",
                  "nodeType": "VariableDeclaration",
                  "scope": 50577,
                  "src": "936:17:65",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_int256",
                    "typeString": "int256"
                  },
                  "typeName": {
                    "id": 50468,
                    "name": "int256",
                    "nodeType": "ElementaryTypeName",
                    "src": "936:6:65",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int256",
                      "typeString": "int256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "935:19:65"
            },
            "scope": 50578,
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          }
        ],
        "abstract": false,
        "baseContracts": [],
        "canonicalName": "IEEE754",
        "contractDependencies": [],
        "contractKind": "library",
        "fullyImplemented": true,
        "linearizedBaseContracts": [
          50578
        ],
        "name": "IEEE754",
        "nameLocation": "123:7:65",
        "scope": 50824,
        "usedErrors": [],
        "usedEvents": []
      },
      {
        "id": 50823,
        "nodeType": "ContractDefinition",
        "src": "1962:2165:65",
        "nodes": [
          {
            "id": 50590,
            "nodeType": "FunctionDefinition",
            "src": "1998:81:65",
            "nodes": [],
            "body": {
              "id": 50589,
              "nodeType": "Block",
              "src": "2029:50:65",
              "nodes": [],
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "hexValue": "54657374466c6f61742073657475702829",
                        "id": 50586,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "2052:19:65",
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_0896eb74f075dd684f424c18206056b75abfca11e5ce3995711820731e6a9cc1",
                          "typeString": "literal_string \"TestFloat setup()\""
                        },
                        "value": "TestFloat setup()"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_stringliteral_0896eb74f075dd684f424c18206056b75abfca11e5ce3995711820731e6a9cc1",
                          "typeString": "literal_string \"TestFloat setup()\""
                        }
                      ],
                      "expression": {
                        "id": 50583,
                        "name": "console2",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 29653,
                        "src": "2039:8:65",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_console2_$29653_$",
                          "typeString": "type(library console2)"
                        }
                      },
                      "id": 50585,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "2048:3:65",
                      "memberName": "log",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 22167,
                      "src": "2039:12:65",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (string memory) pure"
                      }
                    },
                    "id": 50587,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2039:33:65",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 50588,
                  "nodeType": "ExpressionStatement",
                  "src": "2039:33:65"
                }
              ]
            },
            "functionSelector": "0a9254e4",
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "setUp",
            "nameLocation": "2007:5:65",
            "parameters": {
              "id": 50581,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2012:2:65"
            },
            "returnParameters": {
              "id": 50582,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2029:0:65"
            },
            "scope": 50823,
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "external"
          },
          {
            "id": 50593,
            "nodeType": "VariableDeclaration",
            "src": "2110:34:65",
            "nodes": [],
            "constant": true,
            "mutability": "constant",
            "name": "umin",
            "nameLocation": "2136:4:65",
            "scope": 50823,
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 50591,
              "name": "uint256",
              "nodeType": "ElementaryTypeName",
              "src": "2110:7:65",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": {
              "hexValue": "30",
              "id": 50592,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "2143:1:65",
              "typeDescriptions": {
                "typeIdentifier": "t_rational_0_by_1",
                "typeString": "int_const 0"
              },
              "value": "0"
            },
            "visibility": "internal"
          },
          {
            "id": 50597,
            "nodeType": "VariableDeclaration",
            "src": "2150:38:65",
            "nodes": [],
            "constant": true,
            "mutability": "constant",
            "name": "umax",
            "nameLocation": "2176:4:65",
            "scope": 50823,
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 50594,
              "name": "uint256",
              "nodeType": "ElementaryTypeName",
              "src": "2150:7:65",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": {
              "id": 50596,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "lValueRequested": false,
              "nodeType": "UnaryOperation",
              "operator": "~",
              "prefix": true,
              "src": "2183:5:65",
              "subExpression": {
                "id": 50595,
                "name": "umin",
                "nodeType": "Identifier",
                "overloadedDeclarations": [],
                "referencedDeclaration": 50593,
                "src": "2184:4:65",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                }
              },
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "visibility": "internal"
          },
          {
            "id": 50605,
            "nodeType": "VariableDeclaration",
            "src": "2215:48:65",
            "nodes": [],
            "constant": true,
            "mutability": "constant",
            "name": "imax",
            "nameLocation": "2241:4:65",
            "scope": 50823,
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_int256",
              "typeString": "int256"
            },
            "typeName": {
              "id": 50598,
              "name": "int256",
              "nodeType": "ElementaryTypeName",
              "src": "2215:6:65",
              "typeDescriptions": {
                "typeIdentifier": "t_int256",
                "typeString": "int256"
              }
            },
            "value": {
              "arguments": [
                {
                  "commonType": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "id": 50603,
                  "isConstant": false,
                  "isLValue": false,
                  "isPure": true,
                  "lValueRequested": false,
                  "leftExpression": {
                    "id": 50601,
                    "name": "umax",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 50597,
                    "src": "2255:4:65",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "BinaryOperation",
                  "operator": ">>",
                  "rightExpression": {
                    "hexValue": "31",
                    "id": 50602,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "number",
                    "lValueRequested": false,
                    "nodeType": "Literal",
                    "src": "2261:1:65",
                    "typeDescriptions": {
                      "typeIdentifier": "t_rational_1_by_1",
                      "typeString": "int_const 1"
                    },
                    "value": "1"
                  },
                  "src": "2255:7:65",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                }
              ],
              "expression": {
                "argumentTypes": [
                  {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                ],
                "id": 50600,
                "isConstant": false,
                "isLValue": false,
                "isPure": true,
                "lValueRequested": false,
                "nodeType": "ElementaryTypeNameExpression",
                "src": "2248:6:65",
                "typeDescriptions": {
                  "typeIdentifier": "t_type$_t_int256_$",
                  "typeString": "type(int256)"
                },
                "typeName": {
                  "id": 50599,
                  "name": "int256",
                  "nodeType": "ElementaryTypeName",
                  "src": "2248:6:65",
                  "typeDescriptions": {}
                }
              },
              "id": 50604,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "typeConversion",
              "lValueRequested": false,
              "nameLocations": [],
              "names": [],
              "nodeType": "FunctionCall",
              "src": "2248:15:65",
              "tryCall": false,
              "typeDescriptions": {
                "typeIdentifier": "t_int256",
                "typeString": "int256"
              }
            },
            "visibility": "internal"
          },
          {
            "id": 50609,
            "nodeType": "VariableDeclaration",
            "src": "2280:38:65",
            "nodes": [],
            "constant": true,
            "mutability": "constant",
            "name": "imin",
            "nameLocation": "2306:4:65",
            "scope": 50823,
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_int256",
              "typeString": "int256"
            },
            "typeName": {
              "id": 50606,
              "name": "int256",
              "nodeType": "ElementaryTypeName",
              "src": "2280:6:65",
              "typeDescriptions": {
                "typeIdentifier": "t_int256",
                "typeString": "int256"
              }
            },
            "value": {
              "id": 50608,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "lValueRequested": false,
              "nodeType": "UnaryOperation",
              "operator": "~",
              "prefix": true,
              "src": "2313:5:65",
              "subExpression": {
                "id": 50607,
                "name": "imax",
                "nodeType": "Identifier",
                "overloadedDeclarations": [],
                "referencedDeclaration": 50605,
                "src": "2314:4:65",
                "typeDescriptions": {
                  "typeIdentifier": "t_int256",
                  "typeString": "int256"
                }
              },
              "typeDescriptions": {
                "typeIdentifier": "t_int256",
                "typeString": "int256"
              }
            },
            "visibility": "internal"
          },
          {
            "id": 50673,
            "nodeType": "FunctionDefinition",
            "src": "2408:446:65",
            "nodes": [],
            "body": {
              "id": 50672,
              "nodeType": "Block",
              "src": "2455:399:65",
              "nodes": [],
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "hexValue": "73616e69747952657665727473",
                        "id": 50617,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "2478:15:65",
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_fafd0e5a2c531a9d45dd7dee00e91efbb51a89d15a0ffa4b23e283a9bc2d768d",
                          "typeString": "literal_string \"sanityReverts\""
                        },
                        "value": "sanityReverts"
                      },
                      {
                        "id": 50618,
                        "name": "t",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 50611,
                        "src": "2495:1:65",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_stringliteral_fafd0e5a2c531a9d45dd7dee00e91efbb51a89d15a0ffa4b23e283a9bc2d768d",
                          "typeString": "literal_string \"sanityReverts\""
                        },
                        {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        }
                      ],
                      "expression": {
                        "id": 50614,
                        "name": "console2",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 29653,
                        "src": "2465:8:65",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_console2_$29653_$",
                          "typeString": "type(library console2)"
                        }
                      },
                      "id": 50616,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "2474:3:65",
                      "memberName": "log",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 22297,
                      "src": "2465:12:65",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$_t_int256_$returns$__$",
                        "typeString": "function (string memory,int256) pure"
                      }
                    },
                    "id": 50619,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2465:32:65",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 50620,
                  "nodeType": "ExpressionStatement",
                  "src": "2465:32:65"
                },
                {
                  "assignments": [
                    50622
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 50622,
                      "mutability": "mutable",
                      "name": "u",
                      "nameLocation": "2515:1:65",
                      "nodeType": "VariableDeclaration",
                      "scope": 50672,
                      "src": "2507:9:65",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 50621,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "2507:7:65",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 50623,
                  "nodeType": "VariableDeclarationStatement",
                  "src": "2507:9:65"
                },
                {
                  "assignments": [
                    50625
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 50625,
                      "mutability": "mutable",
                      "name": "i",
                      "nameLocation": "2533:1:65",
                      "nodeType": "VariableDeclaration",
                      "scope": 50672,
                      "src": "2526:8:65",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int256",
                        "typeString": "int256"
                      },
                      "typeName": {
                        "id": 50624,
                        "name": "int256",
                        "nodeType": "ElementaryTypeName",
                        "src": "2526:6:65",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 50626,
                  "nodeType": "VariableDeclarationStatement",
                  "src": "2526:8:65"
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_int256",
                      "typeString": "int256"
                    },
                    "id": 50629,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 50627,
                      "name": "t",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 50611,
                      "src": "2548:1:65",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int256",
                        "typeString": "int256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "hexValue": "31",
                      "id": 50628,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "2553:1:65",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_1_by_1",
                        "typeString": "int_const 1"
                      },
                      "value": "1"
                    },
                    "src": "2548:6:65",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "condition": {
                      "commonType": {
                        "typeIdentifier": "t_int256",
                        "typeString": "int256"
                      },
                      "id": 50639,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "id": 50637,
                        "name": "t",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 50611,
                        "src": "2613:1:65",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "==",
                      "rightExpression": {
                        "hexValue": "32",
                        "id": 50638,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "2618:1:65",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_2_by_1",
                          "typeString": "int_const 2"
                        },
                        "value": "2"
                      },
                      "src": "2613:6:65",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "falseBody": {
                      "condition": {
                        "commonType": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        },
                        "id": 50649,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "id": 50647,
                          "name": "t",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 50611,
                          "src": "2679:1:65",
                          "typeDescriptions": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "hexValue": "33",
                          "id": 50648,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "2684:1:65",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_3_by_1",
                            "typeString": "int_const 3"
                          },
                          "value": "3"
                        },
                        "src": "2679:6:65",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "falseBody": {
                        "condition": {
                          "commonType": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          },
                          "id": 50659,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 50657,
                            "name": "t",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 50611,
                            "src": "2744:1:65",
                            "typeDescriptions": {
                              "typeIdentifier": "t_int256",
                              "typeString": "int256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "hexValue": "34",
                            "id": 50658,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "2749:1:65",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_4_by_1",
                              "typeString": "int_const 4"
                            },
                            "value": "4"
                          },
                          "src": "2744:6:65",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "falseBody": {
                          "id": 50667,
                          "nodeType": "Block",
                          "src": "2806:42:65",
                          "statements": []
                        },
                        "id": 50668,
                        "nodeType": "IfStatement",
                        "src": "2740:108:65",
                        "trueBody": {
                          "id": 50666,
                          "nodeType": "Block",
                          "src": "2752:48:65",
                          "statements": [
                            {
                              "expression": {
                                "id": 50664,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "id": 50660,
                                  "name": "i",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 50625,
                                  "src": "2766:1:65",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_int256",
                                    "typeString": "int256"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "=",
                                "rightHandSide": {
                                  "commonType": {
                                    "typeIdentifier": "t_int256",
                                    "typeString": "int256"
                                  },
                                  "id": 50663,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "leftExpression": {
                                    "id": 50661,
                                    "name": "imin",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 50609,
                                    "src": "2770:4:65",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_int256",
                                      "typeString": "int256"
                                    }
                                  },
                                  "nodeType": "BinaryOperation",
                                  "operator": "-",
                                  "rightExpression": {
                                    "hexValue": "31",
                                    "id": 50662,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "number",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "2775:1:65",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_rational_1_by_1",
                                      "typeString": "int_const 1"
                                    },
                                    "value": "1"
                                  },
                                  "src": "2770:6:65",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_int256",
                                    "typeString": "int256"
                                  }
                                },
                                "src": "2766:10:65",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_int256",
                                  "typeString": "int256"
                                }
                              },
                              "id": 50665,
                              "nodeType": "ExpressionStatement",
                              "src": "2766:10:65"
                            }
                          ]
                        }
                      },
                      "id": 50669,
                      "nodeType": "IfStatement",
                      "src": "2675:173:65",
                      "trueBody": {
                        "id": 50656,
                        "nodeType": "Block",
                        "src": "2687:47:65",
                        "statements": [
                          {
                            "expression": {
                              "id": 50654,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftHandSide": {
                                "id": 50650,
                                "name": "i",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 50625,
                                "src": "2701:1:65",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_int256",
                                  "typeString": "int256"
                                }
                              },
                              "nodeType": "Assignment",
                              "operator": "=",
                              "rightHandSide": {
                                "commonType": {
                                  "typeIdentifier": "t_int256",
                                  "typeString": "int256"
                                },
                                "id": 50653,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "id": 50651,
                                  "name": "imax",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 50605,
                                  "src": "2705:4:65",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_int256",
                                    "typeString": "int256"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "+",
                                "rightExpression": {
                                  "hexValue": "31",
                                  "id": 50652,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "2710:1:65",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_1_by_1",
                                    "typeString": "int_const 1"
                                  },
                                  "value": "1"
                                },
                                "src": "2705:6:65",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_int256",
                                  "typeString": "int256"
                                }
                              },
                              "src": "2701:10:65",
                              "typeDescriptions": {
                                "typeIdentifier": "t_int256",
                                "typeString": "int256"
                              }
                            },
                            "id": 50655,
                            "nodeType": "ExpressionStatement",
                            "src": "2701:10:65"
                          }
                        ]
                      }
                    },
                    "id": 50670,
                    "nodeType": "IfStatement",
                    "src": "2609:239:65",
                    "trueBody": {
                      "id": 50646,
                      "nodeType": "Block",
                      "src": "2621:48:65",
                      "statements": [
                        {
                          "expression": {
                            "id": 50644,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftHandSide": {
                              "id": 50640,
                              "name": "u",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 50622,
                              "src": "2635:1:65",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "Assignment",
                            "operator": "=",
                            "rightHandSide": {
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "id": 50643,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "leftExpression": {
                                "id": 50641,
                                "name": "umin",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 50593,
                                "src": "2639:4:65",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "-",
                              "rightExpression": {
                                "hexValue": "31",
                                "id": 50642,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "2644:1:65",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_1_by_1",
                                  "typeString": "int_const 1"
                                },
                                "value": "1"
                              },
                              "src": "2639:6:65",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "src": "2635:10:65",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "id": 50645,
                          "nodeType": "ExpressionStatement",
                          "src": "2635:10:65"
                        }
                      ]
                    }
                  },
                  "id": 50671,
                  "nodeType": "IfStatement",
                  "src": "2544:304:65",
                  "trueBody": {
                    "id": 50636,
                    "nodeType": "Block",
                    "src": "2556:47:65",
                    "statements": [
                      {
                        "expression": {
                          "id": 50634,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "id": 50630,
                            "name": "u",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 50622,
                            "src": "2570:1:65",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 50633,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "leftExpression": {
                              "id": 50631,
                              "name": "umax",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 50597,
                              "src": "2574:4:65",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "+",
                            "rightExpression": {
                              "hexValue": "31",
                              "id": 50632,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "2579:1:65",
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_1_by_1",
                                "typeString": "int_const 1"
                              },
                              "value": "1"
                            },
                            "src": "2574:6:65",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "2570:10:65",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 50635,
                        "nodeType": "ExpressionStatement",
                        "src": "2570:10:65"
                      }
                    ]
                  }
                }
              ]
            },
            "functionSelector": "df96063b",
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "sanityReverts",
            "nameLocation": "2417:13:65",
            "parameters": {
              "id": 50612,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 50611,
                  "mutability": "mutable",
                  "name": "t",
                  "nameLocation": "2438:1:65",
                  "nodeType": "VariableDeclaration",
                  "scope": 50673,
                  "src": "2431:8:65",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_int256",
                    "typeString": "int256"
                  },
                  "typeName": {
                    "id": 50610,
                    "name": "int256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2431:6:65",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int256",
                      "typeString": "int256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2430:10:65"
            },
            "returnParameters": {
              "id": 50613,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2455:0:65"
            },
            "scope": 50823,
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "external"
          },
          {
            "id": 50721,
            "nodeType": "FunctionDefinition",
            "src": "2860:390:65",
            "nodes": [],
            "body": {
              "id": 50720,
              "nodeType": "Block",
              "src": "2891:359:65",
              "nodes": [],
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "hexValue": "466c6f61742e7465737453616e6974792829",
                        "id": 50679,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "2914:20:65",
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_c8443029829768cd1770dc2373588bc0152e6177e06d9f45b1a1468c40d676b0",
                          "typeString": "literal_string \"Float.testSanity()\""
                        },
                        "value": "Float.testSanity()"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_stringliteral_c8443029829768cd1770dc2373588bc0152e6177e06d9f45b1a1468c40d676b0",
                          "typeString": "literal_string \"Float.testSanity()\""
                        }
                      ],
                      "expression": {
                        "id": 50676,
                        "name": "console2",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 29653,
                        "src": "2901:8:65",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_console2_$29653_$",
                          "typeString": "type(library console2)"
                        }
                      },
                      "id": 50678,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "2910:3:65",
                      "memberName": "log",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 22167,
                      "src": "2901:12:65",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (string memory) pure"
                      }
                    },
                    "id": 50680,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2901:34:65",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 50681,
                  "nodeType": "ExpressionStatement",
                  "src": "2901:34:65"
                },
                {
                  "assignments": [
                    50683
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 50683,
                      "mutability": "mutable",
                      "name": "i",
                      "nameLocation": "2952:1:65",
                      "nodeType": "VariableDeclaration",
                      "scope": 50720,
                      "src": "2945:8:65",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int256",
                        "typeString": "int256"
                      },
                      "typeName": {
                        "id": 50682,
                        "name": "int256",
                        "nodeType": "ElementaryTypeName",
                        "src": "2945:6:65",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 50684,
                  "nodeType": "VariableDeclarationStatement",
                  "src": "2945:8:65"
                },
                {
                  "body": {
                    "id": 50706,
                    "nodeType": "Block",
                    "src": "2984:112:65",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "expression": {
                              "id": 50695,
                              "name": "vm",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 2350,
                              "src": "2998:2:65",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_Vm_$13464",
                                "typeString": "contract Vm"
                              }
                            },
                            "id": 50697,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "3001:12:65",
                            "memberName": "expectRevert",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 13126,
                            "src": "2998:15:65",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_nonpayable$__$returns$__$",
                              "typeString": "function () external"
                            }
                          },
                          "id": 50698,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "2998:17:65",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 50699,
                        "nodeType": "ExpressionStatement",
                        "src": "2998:17:65"
                      },
                      {
                        "expression": {
                          "arguments": [
                            {
                              "id": 50703,
                              "name": "i",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 50683,
                              "src": "3048:1:65",
                              "typeDescriptions": {
                                "typeIdentifier": "t_int256",
                                "typeString": "int256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_int256",
                                "typeString": "int256"
                              }
                            ],
                            "expression": {
                              "id": 50700,
                              "name": "this",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": -28,
                              "src": "3029:4:65",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_TestIEEE754_$50823",
                                "typeString": "contract TestIEEE754"
                              }
                            },
                            "id": 50702,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "3034:13:65",
                            "memberName": "sanityReverts",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 50673,
                            "src": "3029:18:65",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_pure$_t_int256_$returns$__$",
                              "typeString": "function (int256) pure external"
                            }
                          },
                          "id": 50704,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "3029:21:65",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 50705,
                        "nodeType": "ExpressionStatement",
                        "src": "3029:21:65"
                      }
                    ]
                  },
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_int256",
                      "typeString": "int256"
                    },
                    "id": 50691,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 50689,
                      "name": "i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 50683,
                      "src": "2973:1:65",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int256",
                        "typeString": "int256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<=",
                    "rightExpression": {
                      "hexValue": "34",
                      "id": 50690,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "2976:1:65",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_4_by_1",
                        "typeString": "int_const 4"
                      },
                      "value": "4"
                    },
                    "src": "2973:4:65",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 50707,
                  "initializationExpression": {
                    "expression": {
                      "id": 50687,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftHandSide": {
                        "id": 50685,
                        "name": "i",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 50683,
                        "src": "2968:1:65",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        }
                      },
                      "nodeType": "Assignment",
                      "operator": "=",
                      "rightHandSide": {
                        "hexValue": "31",
                        "id": 50686,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "2970:1:65",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_1_by_1",
                          "typeString": "int_const 1"
                        },
                        "value": "1"
                      },
                      "src": "2968:3:65",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int256",
                        "typeString": "int256"
                      }
                    },
                    "id": 50688,
                    "nodeType": "ExpressionStatement",
                    "src": "2968:3:65"
                  },
                  "isSimpleCounterLoop": false,
                  "loopExpression": {
                    "expression": {
                      "id": 50693,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "++",
                      "prefix": false,
                      "src": "2979:3:65",
                      "subExpression": {
                        "id": 50692,
                        "name": "i",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 50683,
                        "src": "2979:1:65",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_int256",
                        "typeString": "int256"
                      }
                    },
                    "id": 50694,
                    "nodeType": "ExpressionStatement",
                    "src": "2979:3:65"
                  },
                  "nodeType": "ForStatement",
                  "src": "2963:133:65"
                },
                {
                  "expression": {
                    "id": 50712,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 50708,
                      "name": "i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 50683,
                      "src": "3105:1:65",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int256",
                        "typeString": "int256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "commonType": {
                        "typeIdentifier": "t_int256",
                        "typeString": "int256"
                      },
                      "id": 50711,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "leftExpression": {
                        "id": 50709,
                        "name": "imax",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 50605,
                        "src": "3109:4:65",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "<<",
                      "rightExpression": {
                        "hexValue": "31",
                        "id": 50710,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "3117:1:65",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_1_by_1",
                          "typeString": "int_const 1"
                        },
                        "value": "1"
                      },
                      "src": "3109:9:65",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int256",
                        "typeString": "int256"
                      }
                    },
                    "src": "3105:13:65",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int256",
                      "typeString": "int256"
                    }
                  },
                  "id": 50713,
                  "nodeType": "ExpressionStatement",
                  "src": "3105:13:65"
                },
                {
                  "expression": {
                    "id": 50718,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 50714,
                      "name": "i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 50683,
                      "src": "3179:1:65",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int256",
                        "typeString": "int256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "commonType": {
                        "typeIdentifier": "t_int256",
                        "typeString": "int256"
                      },
                      "id": 50717,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "leftExpression": {
                        "id": 50715,
                        "name": "imin",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 50609,
                        "src": "3183:4:65",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "<<",
                      "rightExpression": {
                        "hexValue": "31",
                        "id": 50716,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "3191:1:65",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_1_by_1",
                          "typeString": "int_const 1"
                        },
                        "value": "1"
                      },
                      "src": "3183:9:65",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int256",
                        "typeString": "int256"
                      }
                    },
                    "src": "3179:13:65",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int256",
                      "typeString": "int256"
                    }
                  },
                  "id": 50719,
                  "nodeType": "ExpressionStatement",
                  "src": "3179:13:65"
                }
              ]
            },
            "functionSelector": "c21e06ec",
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "testSanity",
            "nameLocation": "2869:10:65",
            "parameters": {
              "id": 50674,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2879:2:65"
            },
            "returnParameters": {
              "id": 50675,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2891:0:65"
            },
            "scope": 50823,
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "id": 50728,
            "nodeType": "StructDefinition",
            "src": "3256:102:65",
            "nodes": [],
            "canonicalName": "TestIEEE754.Item",
            "members": [
              {
                "constant": false,
                "id": 50723,
                "mutability": "mutable",
                "name": "floatingPoint",
                "nameLocation": "3285:13:65",
                "nodeType": "VariableDeclaration",
                "scope": 50728,
                "src": "3278:20:65",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint32",
                  "typeString": "uint32"
                },
                "typeName": {
                  "id": 50722,
                  "name": "uint32",
                  "nodeType": "ElementaryTypeName",
                  "src": "3278:6:65",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint32",
                    "typeString": "uint32"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 50725,
                "mutability": "mutable",
                "name": "fixedBits",
                "nameLocation": "3315:9:65",
                "nodeType": "VariableDeclaration",
                "scope": 50728,
                "src": "3308:16:65",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint32",
                  "typeString": "uint32"
                },
                "typeName": {
                  "id": 50724,
                  "name": "uint32",
                  "nodeType": "ElementaryTypeName",
                  "src": "3308:6:65",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint32",
                    "typeString": "uint32"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 50727,
                "mutability": "mutable",
                "name": "fixedPoint",
                "nameLocation": "3341:10:65",
                "nodeType": "VariableDeclaration",
                "scope": 50728,
                "src": "3334:17:65",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_int256",
                  "typeString": "int256"
                },
                "typeName": {
                  "id": 50726,
                  "name": "int256",
                  "nodeType": "ElementaryTypeName",
                  "src": "3334:6:65",
                  "typeDescriptions": {
                    "typeIdentifier": "t_int256",
                    "typeString": "int256"
                  }
                },
                "visibility": "internal"
              }
            ],
            "name": "Item",
            "nameLocation": "3263:4:65",
            "scope": 50823,
            "visibility": "public"
          },
          {
            "id": 50822,
            "nodeType": "FunctionDefinition",
            "src": "3364:761:65",
            "nodes": [],
            "body": {
              "id": 50821,
              "nodeType": "Block",
              "src": "3405:720:65",
              "nodes": [],
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "hexValue": "54657374494545453735342e74657374466c6f61743266697865642829",
                        "id": 50734,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "3428:31:65",
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_1f700677d7976407cf28fad97487e1fb3aa6fed30a542fb2a2c397aa2ed4983a",
                          "typeString": "literal_string \"TestIEEE754.testFloat2fixed()\""
                        },
                        "value": "TestIEEE754.testFloat2fixed()"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_stringliteral_1f700677d7976407cf28fad97487e1fb3aa6fed30a542fb2a2c397aa2ed4983a",
                          "typeString": "literal_string \"TestIEEE754.testFloat2fixed()\""
                        }
                      ],
                      "expression": {
                        "id": 50731,
                        "name": "console2",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 29653,
                        "src": "3415:8:65",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_console2_$29653_$",
                          "typeString": "type(library console2)"
                        }
                      },
                      "id": 50733,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "3424:3:65",
                      "memberName": "log",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 22167,
                      "src": "3415:12:65",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (string memory) pure"
                      }
                    },
                    "id": 50735,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3415:45:65",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 50736,
                  "nodeType": "ExpressionStatement",
                  "src": "3415:45:65"
                },
                {
                  "assignments": [
                    50742
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 50742,
                      "mutability": "mutable",
                      "name": "items",
                      "nameLocation": "3486:5:65",
                      "nodeType": "VariableDeclaration",
                      "scope": 50821,
                      "src": "3471:20:65",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_struct$_Item_$50728_memory_ptr_$6_memory_ptr",
                        "typeString": "struct TestIEEE754.Item[6]"
                      },
                      "typeName": {
                        "baseType": {
                          "id": 50740,
                          "nodeType": "UserDefinedTypeName",
                          "pathNode": {
                            "id": 50739,
                            "name": "Item",
                            "nameLocations": [
                              "3471:4:65"
                            ],
                            "nodeType": "IdentifierPath",
                            "referencedDeclaration": 50728,
                            "src": "3471:4:65"
                          },
                          "referencedDeclaration": 50728,
                          "src": "3471:4:65",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Item_$50728_storage_ptr",
                            "typeString": "struct TestIEEE754.Item"
                          }
                        },
                        "id": 50741,
                        "length": {
                          "hexValue": "36",
                          "id": 50738,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "3476:1:65",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_6_by_1",
                            "typeString": "int_const 6"
                          },
                          "value": "6"
                        },
                        "nodeType": "ArrayTypeName",
                        "src": "3471:7:65",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_struct$_Item_$50728_storage_$6_storage_ptr",
                          "typeString": "struct TestIEEE754.Item[6]"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 50788,
                  "initialValue": {
                    "components": [
                      {
                        "arguments": [
                          {
                            "hexValue": "30783366383030303030",
                            "id": 50744,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "3513:10:65",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_1065353216_by_1",
                              "typeString": "int_const 1065353216"
                            },
                            "value": "0x3f800000"
                          },
                          {
                            "hexValue": "30",
                            "id": 50745,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "3525:1:65",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0"
                          },
                          {
                            "commonType": {
                              "typeIdentifier": "t_rational_1_by_1",
                              "typeString": "int_const 1"
                            },
                            "id": 50748,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "leftExpression": {
                              "hexValue": "31",
                              "id": 50746,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "3528:1:65",
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_1_by_1",
                                "typeString": "int_const 1"
                              },
                              "value": "1"
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "<<",
                            "rightExpression": {
                              "hexValue": "30",
                              "id": 50747,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "3533:1:65",
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              },
                              "value": "0"
                            },
                            "src": "3528:6:65",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_1_by_1",
                              "typeString": "int_const 1"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_rational_1065353216_by_1",
                              "typeString": "int_const 1065353216"
                            },
                            {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            {
                              "typeIdentifier": "t_rational_1_by_1",
                              "typeString": "int_const 1"
                            }
                          ],
                          "id": 50743,
                          "name": "Item",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 50728,
                          "src": "3508:4:65",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_struct$_Item_$50728_storage_ptr_$",
                            "typeString": "type(struct TestIEEE754.Item storage pointer)"
                          }
                        },
                        "id": 50749,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "structConstructorCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "3508:27:65",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Item_$50728_memory_ptr",
                          "typeString": "struct TestIEEE754.Item memory"
                        }
                      },
                      {
                        "arguments": [
                          {
                            "hexValue": "30783366383030303030",
                            "id": 50751,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "3566:10:65",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_1065353216_by_1",
                              "typeString": "int_const 1065353216"
                            },
                            "value": "0x3f800000"
                          },
                          {
                            "hexValue": "313238",
                            "id": 50752,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "3578:3:65",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_128_by_1",
                              "typeString": "int_const 128"
                            },
                            "value": "128"
                          },
                          {
                            "commonType": {
                              "typeIdentifier": "t_rational_340282366920938463463374607431768211456_by_1",
                              "typeString": "int_const 3402...(31 digits omitted)...1456"
                            },
                            "id": 50755,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "leftExpression": {
                              "hexValue": "31",
                              "id": 50753,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "3583:1:65",
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_1_by_1",
                                "typeString": "int_const 1"
                              },
                              "value": "1"
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "<<",
                            "rightExpression": {
                              "hexValue": "313238",
                              "id": 50754,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "3588:3:65",
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_128_by_1",
                                "typeString": "int_const 128"
                              },
                              "value": "128"
                            },
                            "src": "3583:8:65",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_340282366920938463463374607431768211456_by_1",
                              "typeString": "int_const 3402...(31 digits omitted)...1456"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_rational_1065353216_by_1",
                              "typeString": "int_const 1065353216"
                            },
                            {
                              "typeIdentifier": "t_rational_128_by_1",
                              "typeString": "int_const 128"
                            },
                            {
                              "typeIdentifier": "t_rational_340282366920938463463374607431768211456_by_1",
                              "typeString": "int_const 3402...(31 digits omitted)...1456"
                            }
                          ],
                          "id": 50750,
                          "name": "Item",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 50728,
                          "src": "3561:4:65",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_struct$_Item_$50728_storage_ptr_$",
                            "typeString": "type(struct TestIEEE754.Item storage pointer)"
                          }
                        },
                        "id": 50756,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "structConstructorCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "3561:31:65",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Item_$50728_memory_ptr",
                          "typeString": "struct TestIEEE754.Item memory"
                        }
                      },
                      {
                        "arguments": [
                          {
                            "hexValue": "30783366383030303030",
                            "id": 50758,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "3619:10:65",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_1065353216_by_1",
                              "typeString": "int_const 1065353216"
                            },
                            "value": "0x3f800000"
                          },
                          {
                            "hexValue": "323534",
                            "id": 50759,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "3631:3:65",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_254_by_1",
                              "typeString": "int_const 254"
                            },
                            "value": "254"
                          },
                          {
                            "commonType": {
                              "typeIdentifier": "t_rational_28948022309329048855892746252171976963317496166410141009864396001978282409984_by_1",
                              "typeString": "int_const 2894...(69 digits omitted)...9984"
                            },
                            "id": 50762,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "leftExpression": {
                              "hexValue": "31",
                              "id": 50760,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "3636:1:65",
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_1_by_1",
                                "typeString": "int_const 1"
                              },
                              "value": "1"
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "<<",
                            "rightExpression": {
                              "hexValue": "323534",
                              "id": 50761,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "3641:3:65",
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_254_by_1",
                                "typeString": "int_const 254"
                              },
                              "value": "254"
                            },
                            "src": "3636:8:65",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_28948022309329048855892746252171976963317496166410141009864396001978282409984_by_1",
                              "typeString": "int_const 2894...(69 digits omitted)...9984"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_rational_1065353216_by_1",
                              "typeString": "int_const 1065353216"
                            },
                            {
                              "typeIdentifier": "t_rational_254_by_1",
                              "typeString": "int_const 254"
                            },
                            {
                              "typeIdentifier": "t_rational_28948022309329048855892746252171976963317496166410141009864396001978282409984_by_1",
                              "typeString": "int_const 2894...(69 digits omitted)...9984"
                            }
                          ],
                          "id": 50757,
                          "name": "Item",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 50728,
                          "src": "3614:4:65",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_struct$_Item_$50728_storage_ptr_$",
                            "typeString": "type(struct TestIEEE754.Item storage pointer)"
                          }
                        },
                        "id": 50763,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "structConstructorCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "3614:31:65",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Item_$50728_memory_ptr",
                          "typeString": "struct TestIEEE754.Item memory"
                        }
                      },
                      {
                        "arguments": [
                          {
                            "hexValue": "30786266383030303030",
                            "id": 50765,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "3672:10:65",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_3212836864_by_1",
                              "typeString": "int_const 3212836864"
                            },
                            "value": "0xbf800000"
                          },
                          {
                            "hexValue": "313238",
                            "id": 50766,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "3684:3:65",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_128_by_1",
                              "typeString": "int_const 128"
                            },
                            "value": "128"
                          },
                          {
                            "commonType": {
                              "typeIdentifier": "t_rational_minus_340282366920938463463374607431768211456_by_1",
                              "typeString": "int_const -340...(32 digits omitted)...1456"
                            },
                            "id": 50770,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "leftExpression": {
                              "id": 50768,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "UnaryOperation",
                              "operator": "-",
                              "prefix": true,
                              "src": "3689:2:65",
                              "subExpression": {
                                "hexValue": "31",
                                "id": 50767,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "3690:1:65",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_1_by_1",
                                  "typeString": "int_const 1"
                                },
                                "value": "1"
                              },
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_minus_1_by_1",
                                "typeString": "int_const -1"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "<<",
                            "rightExpression": {
                              "hexValue": "313238",
                              "id": 50769,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "3695:3:65",
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_128_by_1",
                                "typeString": "int_const 128"
                              },
                              "value": "128"
                            },
                            "src": "3689:9:65",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_minus_340282366920938463463374607431768211456_by_1",
                              "typeString": "int_const -340...(32 digits omitted)...1456"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_rational_3212836864_by_1",
                              "typeString": "int_const 3212836864"
                            },
                            {
                              "typeIdentifier": "t_rational_128_by_1",
                              "typeString": "int_const 128"
                            },
                            {
                              "typeIdentifier": "t_rational_minus_340282366920938463463374607431768211456_by_1",
                              "typeString": "int_const -340...(32 digits omitted)...1456"
                            }
                          ],
                          "id": 50764,
                          "name": "Item",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 50728,
                          "src": "3667:4:65",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_struct$_Item_$50728_storage_ptr_$",
                            "typeString": "type(struct TestIEEE754.Item storage pointer)"
                          }
                        },
                        "id": 50771,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "structConstructorCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "3667:32:65",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Item_$50728_memory_ptr",
                          "typeString": "struct TestIEEE754.Item memory"
                        }
                      },
                      {
                        "arguments": [
                          {
                            "hexValue": "30783430303030303030",
                            "id": 50773,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "3726:10:65",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_1073741824_by_1",
                              "typeString": "int_const 1073741824"
                            },
                            "value": "0x40000000"
                          },
                          {
                            "hexValue": "313238",
                            "id": 50774,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "3738:3:65",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_128_by_1",
                              "typeString": "int_const 128"
                            },
                            "value": "128"
                          },
                          {
                            "commonType": {
                              "typeIdentifier": "t_rational_680564733841876926926749214863536422912_by_1",
                              "typeString": "int_const 6805...(31 digits omitted)...2912"
                            },
                            "id": 50777,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "leftExpression": {
                              "hexValue": "32",
                              "id": 50775,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "3743:1:65",
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_2_by_1",
                                "typeString": "int_const 2"
                              },
                              "value": "2"
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "<<",
                            "rightExpression": {
                              "hexValue": "313238",
                              "id": 50776,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "3748:3:65",
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_128_by_1",
                                "typeString": "int_const 128"
                              },
                              "value": "128"
                            },
                            "src": "3743:8:65",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_680564733841876926926749214863536422912_by_1",
                              "typeString": "int_const 6805...(31 digits omitted)...2912"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_rational_1073741824_by_1",
                              "typeString": "int_const 1073741824"
                            },
                            {
                              "typeIdentifier": "t_rational_128_by_1",
                              "typeString": "int_const 128"
                            },
                            {
                              "typeIdentifier": "t_rational_680564733841876926926749214863536422912_by_1",
                              "typeString": "int_const 6805...(31 digits omitted)...2912"
                            }
                          ],
                          "id": 50772,
                          "name": "Item",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 50728,
                          "src": "3721:4:65",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_struct$_Item_$50728_storage_ptr_$",
                            "typeString": "type(struct TestIEEE754.Item storage pointer)"
                          }
                        },
                        "id": 50778,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "structConstructorCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "3721:31:65",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Item_$50728_memory_ptr",
                          "typeString": "struct TestIEEE754.Item memory"
                        }
                      },
                      {
                        "arguments": [
                          {
                            "hexValue": "30786330303030303030",
                            "id": 50780,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "3779:10:65",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_3221225472_by_1",
                              "typeString": "int_const 3221225472"
                            },
                            "value": "0xc0000000"
                          },
                          {
                            "hexValue": "313238",
                            "id": 50781,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "3791:3:65",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_128_by_1",
                              "typeString": "int_const 128"
                            },
                            "value": "128"
                          },
                          {
                            "commonType": {
                              "typeIdentifier": "t_rational_minus_680564733841876926926749214863536422912_by_1",
                              "typeString": "int_const -680...(32 digits omitted)...2912"
                            },
                            "id": 50785,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "leftExpression": {
                              "id": 50783,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "UnaryOperation",
                              "operator": "-",
                              "prefix": true,
                              "src": "3796:2:65",
                              "subExpression": {
                                "hexValue": "32",
                                "id": 50782,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "3797:1:65",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_2_by_1",
                                  "typeString": "int_const 2"
                                },
                                "value": "2"
                              },
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_minus_2_by_1",
                                "typeString": "int_const -2"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "<<",
                            "rightExpression": {
                              "hexValue": "313238",
                              "id": 50784,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "3802:3:65",
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_128_by_1",
                                "typeString": "int_const 128"
                              },
                              "value": "128"
                            },
                            "src": "3796:9:65",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_minus_680564733841876926926749214863536422912_by_1",
                              "typeString": "int_const -680...(32 digits omitted)...2912"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_rational_3221225472_by_1",
                              "typeString": "int_const 3221225472"
                            },
                            {
                              "typeIdentifier": "t_rational_128_by_1",
                              "typeString": "int_const 128"
                            },
                            {
                              "typeIdentifier": "t_rational_minus_680564733841876926926749214863536422912_by_1",
                              "typeString": "int_const -680...(32 digits omitted)...2912"
                            }
                          ],
                          "id": 50779,
                          "name": "Item",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 50728,
                          "src": "3774:4:65",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_struct$_Item_$50728_storage_ptr_$",
                            "typeString": "type(struct TestIEEE754.Item storage pointer)"
                          }
                        },
                        "id": 50786,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "structConstructorCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "3774:32:65",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Item_$50728_memory_ptr",
                          "typeString": "struct TestIEEE754.Item memory"
                        }
                      }
                    ],
                    "id": 50787,
                    "isConstant": false,
                    "isInlineArray": true,
                    "isLValue": false,
                    "isPure": true,
                    "lValueRequested": false,
                    "nodeType": "TupleExpression",
                    "src": "3494:423:65",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_struct$_Item_$50728_memory_ptr_$6_memory_ptr",
                      "typeString": "struct TestIEEE754.Item memory[6] memory"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "3471:446:65"
                },
                {
                  "body": {
                    "id": 50819,
                    "nodeType": "Block",
                    "src": "3964:154:65",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "commonType": {
                                "typeIdentifier": "t_int256",
                                "typeString": "int256"
                              },
                              "id": 50816,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "expression": {
                                  "baseExpression": {
                                    "id": 50801,
                                    "name": "items",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 50742,
                                    "src": "3986:5:65",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_array$_t_struct$_Item_$50728_memory_ptr_$6_memory_ptr",
                                      "typeString": "struct TestIEEE754.Item memory[6] memory"
                                    }
                                  },
                                  "id": 50803,
                                  "indexExpression": {
                                    "id": 50802,
                                    "name": "i",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 50790,
                                    "src": "3992:1:65",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "IndexAccess",
                                  "src": "3986:8:65",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_Item_$50728_memory_ptr",
                                    "typeString": "struct TestIEEE754.Item memory"
                                  }
                                },
                                "id": 50804,
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberLocation": "3995:10:65",
                                "memberName": "fixedPoint",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 50727,
                                "src": "3986:19:65",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_int256",
                                  "typeString": "int256"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "==",
                              "rightExpression": {
                                "arguments": [
                                  {
                                    "expression": {
                                      "baseExpression": {
                                        "id": 50807,
                                        "name": "items",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 50742,
                                        "src": "4046:5:65",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_array$_t_struct$_Item_$50728_memory_ptr_$6_memory_ptr",
                                          "typeString": "struct TestIEEE754.Item memory[6] memory"
                                        }
                                      },
                                      "id": 50809,
                                      "indexExpression": {
                                        "id": 50808,
                                        "name": "i",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 50790,
                                        "src": "4052:1:65",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      },
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "nodeType": "IndexAccess",
                                      "src": "4046:8:65",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_struct$_Item_$50728_memory_ptr",
                                        "typeString": "struct TestIEEE754.Item memory"
                                      }
                                    },
                                    "id": 50810,
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberLocation": "4055:13:65",
                                    "memberName": "floatingPoint",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 50723,
                                    "src": "4046:22:65",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint32",
                                      "typeString": "uint32"
                                    }
                                  },
                                  {
                                    "expression": {
                                      "baseExpression": {
                                        "id": 50811,
                                        "name": "items",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 50742,
                                        "src": "4070:5:65",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_array$_t_struct$_Item_$50728_memory_ptr_$6_memory_ptr",
                                          "typeString": "struct TestIEEE754.Item memory[6] memory"
                                        }
                                      },
                                      "id": 50813,
                                      "indexExpression": {
                                        "id": 50812,
                                        "name": "i",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 50790,
                                        "src": "4076:1:65",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      },
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "nodeType": "IndexAccess",
                                      "src": "4070:8:65",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_struct$_Item_$50728_memory_ptr",
                                        "typeString": "struct TestIEEE754.Item memory"
                                      }
                                    },
                                    "id": 50814,
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberLocation": "4079:9:65",
                                    "memberName": "fixedBits",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 50725,
                                    "src": "4070:18:65",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint32",
                                      "typeString": "uint32"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint32",
                                      "typeString": "uint32"
                                    },
                                    {
                                      "typeIdentifier": "t_uint32",
                                      "typeString": "uint32"
                                    }
                                  ],
                                  "expression": {
                                    "id": 50805,
                                    "name": "IEEE754",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 50578,
                                    "src": "4009:7:65",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_contract$_IEEE754_$50578_$",
                                      "typeString": "type(library IEEE754)"
                                    }
                                  },
                                  "id": 50806,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberLocation": "4017:11:65",
                                  "memberName": "float2fixed",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 50577,
                                  "src": "4009:19:65",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_internal_pure$_t_uint32_$_t_uint32_$returns$_t_int256_$",
                                    "typeString": "function (uint32,uint32) pure returns (int256)"
                                  }
                                },
                                "id": 50815,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "nameLocations": [],
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "4009:97:65",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_int256",
                                  "typeString": "int256"
                                }
                              },
                              "src": "3986:120:65",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            ],
                            "id": 50800,
                            "name": "require",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [
                              -18,
                              -18
                            ],
                            "referencedDeclaration": -18,
                            "src": "3978:7:65",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                              "typeString": "function (bool) pure"
                            }
                          },
                          "id": 50817,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "3978:129:65",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 50818,
                        "nodeType": "ExpressionStatement",
                        "src": "3978:129:65"
                      }
                    ]
                  },
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 50796,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 50793,
                      "name": "i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 50790,
                      "src": "3943:1:65",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "expression": {
                        "id": 50794,
                        "name": "items",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 50742,
                        "src": "3945:5:65",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_struct$_Item_$50728_memory_ptr_$6_memory_ptr",
                          "typeString": "struct TestIEEE754.Item memory[6] memory"
                        }
                      },
                      "id": 50795,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "3951:6:65",
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "src": "3945:12:65",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "3943:14:65",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 50820,
                  "initializationExpression": {
                    "assignments": [
                      50790
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 50790,
                        "mutability": "mutable",
                        "name": "i",
                        "nameLocation": "3938:1:65",
                        "nodeType": "VariableDeclaration",
                        "scope": 50820,
                        "src": "3933:6:65",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 50789,
                          "name": "uint",
                          "nodeType": "ElementaryTypeName",
                          "src": "3933:4:65",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "id": 50792,
                    "initialValue": {
                      "hexValue": "30",
                      "id": 50791,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "3940:1:65",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "nodeType": "VariableDeclarationStatement",
                    "src": "3933:8:65"
                  },
                  "isSimpleCounterLoop": true,
                  "loopExpression": {
                    "expression": {
                      "id": 50798,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "++",
                      "prefix": false,
                      "src": "3959:3:65",
                      "subExpression": {
                        "id": 50797,
                        "name": "i",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 50790,
                        "src": "3959:1:65",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 50799,
                    "nodeType": "ExpressionStatement",
                    "src": "3959:3:65"
                  },
                  "nodeType": "ForStatement",
                  "src": "3928:190:65"
                }
              ]
            },
            "functionSelector": "b1a3670e",
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "testFloat2fixed",
            "nameLocation": "3373:15:65",
            "parameters": {
              "id": 50729,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3388:2:65"
            },
            "returnParameters": {
              "id": 50730,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3405:0:65"
            },
            "scope": 50823,
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "external"
          }
        ],
        "abstract": false,
        "baseContracts": [
          {
            "baseName": {
              "id": 50579,
              "name": "Test",
              "nameLocations": [
                "1986:4:65"
              ],
              "nodeType": "IdentifierPath",
              "referencedDeclaration": 11937,
              "src": "1986:4:65"
            },
            "id": 50580,
            "nodeType": "InheritanceSpecifier",
            "src": "1986:4:65"
          }
        ],
        "canonicalName": "TestIEEE754",
        "contractDependencies": [],
        "contractKind": "contract",
        "fullyImplemented": true,
        "internalFunctionIDs": {
          "21582": 1
        },
        "linearizedBaseContracts": [
          50823,
          11937,
          2357,
          2354,
          11886,
          7624,
          7334,
          6570,
          4516,
          3823,
          2291
        ],
        "name": "TestIEEE754",
        "nameLocation": "1971:11:65",
        "scope": 50824,
        "usedErrors": [],
        "usedEvents": [
          5,
          9,
          13,
          17,
          21,
          25,
          29,
          33,
          39,
          45,
          53,
          61,
          67,
          73,
          79,
          85,
          2418,
          2423,
          2428,
          2435,
          2442,
          2449
        ]
      }
    ],
    "license": "UNLICENSED"
  },
  "id": 65
}