{
  "contractName": "BigDivMock",
  "abi": [
    {
      "constant": true,
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_numA",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "_numB",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "_den",
          "type": "uint256"
        }
      ],
      "name": "bigDiv2x1",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_numA",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "_numB",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "_den",
          "type": "uint256"
        }
      ],
      "name": "bigDiv2x1RoundUp",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_numA",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "_numB",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "_denA",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "_denB",
          "type": "uint256"
        }
      ],
      "name": "bigDiv2x2",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "pure",
      "type": "function"
    }
  ],
  "metadata": "{\"compiler\":{\"version\":\"0.5.17+commit.d19bba13\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_numA\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_numB\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_den\",\"type\":\"uint256\"}],\"name\":\"bigDiv2x1\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_numA\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_numB\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_den\",\"type\":\"uint256\"}],\"name\":\"bigDiv2x1RoundUp\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_numA\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_numB\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_denA\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_denB\",\"type\":\"uint256\"}],\"name\":\"bigDiv2x2\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{},\"title\":\"Used for testing only.\"},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/home/circleci/repo/contracts/test-artifacts/BigDivMock.sol\":\"BigDivMock\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/home/circleci/repo/contracts/math/BigDiv.sol\":{\"keccak256\":\"0xf695ffefeaf1c536baecf7684f56cc089e54d8a852d6ff299b7cb02313d821f7\",\"urls\":[\"bzz-raw://90052e8d9837cf9529de377bee6bf5ccf33f640b586fd05539f4543863f4b474\",\"dweb:/ipfs/QmPoWhkbMZm1pYjPEkzKG3aSpPHaMnwqqXRs7gbFrH62Fk\"]},\"/home/circleci/repo/contracts/test-artifacts/BigDivMock.sol\":{\"keccak256\":\"0x324804e47f1c114e4c8c8fd7643c1415d6c77df128da9ad89efd54f407b412ab\",\"urls\":[\"bzz-raw://6870060e0d8197345f8bef13fe44800bf9f1696d6626115c7959365426bb01dd\",\"dweb:/ipfs/QmeJ8ZusRvgcA6nuf872kKZpTF26QgS8NtynQVxpVH7PuT\"]},\"@openzeppelin/contracts-ethereum-package/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x640b6dee7a4b830bdfd52b5031a07fc2b12209f5b2e29e5d364a7d37f69d8076\",\"urls\":[\"bzz-raw://31113152e1ddb78fe7a4197f247591ca894e93f916867beb708d8e747b6cc74f\",\"dweb:/ipfs/QmbZaJyXdpsYGykVhHH9qpVGQg9DGCxE2QufbCUy3daTgq\"]}},\"version\":1}",
  "bytecode": "0x608060405234801561001057600080fd5b506105a6806100206000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c80632bab744114610046578063600caa5014610087578063a1d52ace146100b0575b600080fd5b6100756004803603608081101561005c57600080fd5b50803590602081013590604081013590606001356100d9565b60408051918252519081900360200190f35b6100756004803603606081101561009d57600080fd5b50803590602081013590604001356100f2565b610075600480360360608110156100c657600080fd5b5080359060208101359060400135610109565b60006100e785858585610116565b90505b949350505050565b60006100ff8484846102c0565b90505b9392505050565b60006100ff848484610449565b600081836000198161012457fe5b041061013e5761013785858486026102c0565b90506100ea565b841580610149575083155b15610156575060006100ea565b8183818111156101665750839050825b600086886000198161017457fe5b041061019f575086860281818161018757fe5b04905082818161019357fe5b0493506100ea92505050565b8688818111156101af5750889050875b60008483816101ba57fe5b049050630bebc2008111156101e1576101d48183886102c0565b96505050505050506100ea565b506001600160801b03600019838101829004600190810192848301040190829082908161020a57fe5b041061028557810280848161021b57fe5b049450630bebc2008511156102855761023a858463ffffffff61049416565b945085858161024557fe5b049450600085118015610263575080856000198161025f57fe5b0410155b15610285579384029386858161027557fe5b0497506100ea9650505050505050565b5050600160801b85046001600160801b03850481026102b08185816102a657fe5b04846000196102c0565b9c9b505050505050505050505050565b60008315806102cd575082155b156102da57506000610102565b60008385600019816102e857fe5b041061030557508383028281816102fb57fe5b0491506101029050565b8385818111156103155750859050845b84828161031e57fe5b0492506305f5e1008311156103485761033d838263ffffffff61049416565b935061010292505050565b60001981016001600160801b038104600101905060001983016001600160801b038104600101905080826000198161037c57fe5b04106103ec579081029081848161038f57fe5b049450630bebc2008511156103ec576103ae858463ffffffff61049416565b94505060001986018181816103bf57fe5b0490506103d381600163ffffffff6104f616565b90508085816103de57fe5b049550610102945050505050565b60016001600160801b0360001985010401915081838161040857fe5b04945050600019860181818161041a57fe5b04600101905080848161042957fe5b04905061043c858263ffffffff61049416565b9998505050505050505050565b6000806104578585856102c0565b905080610468576001915050610102565b60016305f5e10060001983010401811981111561048b5760001992505050610102565b01949350505050565b6000826104a3575060006104f0565b828202828482816104b057fe5b04146104ed5760405162461bcd60e51b81526004018080602001828103825260218152602001806105516021913960400191505060405180910390fd5b90505b92915050565b6000828201838110156104ed576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fdfe536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a265627a7a723158206729097e465e2f0e571c73da00ac014769331d1b2c67dbbe68fbd86f785ea58464736f6c63430005110032",
  "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100415760003560e01c80632bab744114610046578063600caa5014610087578063a1d52ace146100b0575b600080fd5b6100756004803603608081101561005c57600080fd5b50803590602081013590604081013590606001356100d9565b60408051918252519081900360200190f35b6100756004803603606081101561009d57600080fd5b50803590602081013590604001356100f2565b610075600480360360608110156100c657600080fd5b5080359060208101359060400135610109565b60006100e785858585610116565b90505b949350505050565b60006100ff8484846102c0565b90505b9392505050565b60006100ff848484610449565b600081836000198161012457fe5b041061013e5761013785858486026102c0565b90506100ea565b841580610149575083155b15610156575060006100ea565b8183818111156101665750839050825b600086886000198161017457fe5b041061019f575086860281818161018757fe5b04905082818161019357fe5b0493506100ea92505050565b8688818111156101af5750889050875b60008483816101ba57fe5b049050630bebc2008111156101e1576101d48183886102c0565b96505050505050506100ea565b506001600160801b03600019838101829004600190810192848301040190829082908161020a57fe5b041061028557810280848161021b57fe5b049450630bebc2008511156102855761023a858463ffffffff61049416565b945085858161024557fe5b049450600085118015610263575080856000198161025f57fe5b0410155b15610285579384029386858161027557fe5b0497506100ea9650505050505050565b5050600160801b85046001600160801b03850481026102b08185816102a657fe5b04846000196102c0565b9c9b505050505050505050505050565b60008315806102cd575082155b156102da57506000610102565b60008385600019816102e857fe5b041061030557508383028281816102fb57fe5b0491506101029050565b8385818111156103155750859050845b84828161031e57fe5b0492506305f5e1008311156103485761033d838263ffffffff61049416565b935061010292505050565b60001981016001600160801b038104600101905060001983016001600160801b038104600101905080826000198161037c57fe5b04106103ec579081029081848161038f57fe5b049450630bebc2008511156103ec576103ae858463ffffffff61049416565b94505060001986018181816103bf57fe5b0490506103d381600163ffffffff6104f616565b90508085816103de57fe5b049550610102945050505050565b60016001600160801b0360001985010401915081838161040857fe5b04945050600019860181818161041a57fe5b04600101905080848161042957fe5b04905061043c858263ffffffff61049416565b9998505050505050505050565b6000806104578585856102c0565b905080610468576001915050610102565b60016305f5e10060001983010401811981111561048b5760001992505050610102565b01949350505050565b6000826104a3575060006104f0565b828202828482816104b057fe5b04146104ed5760405162461bcd60e51b81526004018080602001828103825260218152602001806105516021913960400191505060405180910390fd5b90505b92915050565b6000828201838110156104ed576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fdfe536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a265627a7a723158206729097e465e2f0e571c73da00ac014769331d1b2c67dbbe68fbd86f785ea58464736f6c63430005110032",
  "sourceMap": "96:526:9:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;96:526:9;;;;;;;",
  "deployedSourceMap": "96:526:9:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;96:526:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;444:176;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;444:176:9;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;120:151;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;120:151:9;;;;;;;;;;;;:::i;275:165::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;275:165:9;;;;;;;;;;;;:::i;444:176::-;552:4;571:44;588:5;595;602;609;571:16;:44::i;:::-;564:51;;444:176;;;;;;;:::o;120:151::-;211:4;230:36;247:5;254;261:4;230:16;:36::i;:::-;223:43;;120:151;;;;;;:::o;275:165::-;373:4;392:43;416:5;423;430:4;392:23;:43::i;4640:2052:6:-;4750:4;4786:5;4777;-1:-1:-1;;4766:16:6;;;;;;:25;4762:151;;4868:38;4878:5;4885;4900;4892;:13;4868:9;:38::i;:::-;4861:45;;;;4762:151;4923:10;;;:24;;-1:-1:-1;4937:10:6;;4923:24;4919:117;;;-1:-1:-1;5028:1:6;5021:8;;4919:117;5081:5;5106;5121:13;;;5117:70;;;-1:-1:-1;5153:5:6;;-1:-1:-1;5175:5:6;5117:70;5193:10;5234:5;5225;-1:-1:-1;;5214:16:6;;;;;;:25;5210:181;;-1:-1:-1;5305:13:6;;;5335:6;5305:13;5335:6;5326:15;;;;;;;5358:6;5349:15;;;;;;;;-1:-1:-1;5372:12:6;;-1:-1:-1;;;5372:12:6;5210:181;5492:5;5517;5532:13;;;5528:70;;;-1:-1:-1;5564:5:6;;-1:-1:-1;5586:5:6;5528:70;5635:9;5656:6;5647;:15;;;;;;;-1:-1:-1;1151:13:6;5672:27;;5668:86;;;5716:31;5726:4;5732:6;5740;5716:9;:31::i;:::-;5709:38;;;;;;;;;;5668:86;-1:-1:-1;;;;;;;;5959:10:6;;;5975:25;;;5945:1;6006:9;;;;5886:10;;;5902:27;5935:11;;6006:9;;5935:11;;;6025:17;;;;;:25;6021:345;;6060:14;;;6091:6;6060:14;6091:15;;;;;;-1:-1:-1;1151:13:6;6118:28;;6114:246;;;6166:17;:5;6176:6;6166:17;:9;:17;:::i;:::-;6158:25;;6202:6;6193:15;;;;;;;;;6230:1;6222:5;:9;:39;;;;;6255:6;6246:5;-1:-1:-1;;6235:16:6;;;;;;:26;;6222:39;6218:134;;;6275:15;;;;6311:6;6275:15;6311:6;6302:15;;;;;;-1:-1:-1;6329:12:6;;-1:-1:-1;;;;;;;6329:12:6;6218:134;-1:-1:-1;;;;;6581:29:6;;-1:-1:-1;;;;;6480:27:6;;6616:14;;6643:44;6616:14;6653:6;6616:14;6653:15;;;;;6670:6;-1:-1:-1;;6643:9:6;:44::i;:::-;6636:51;4640:2052;-1:-1:-1;;;;;;;;;;;;4640:2052:6:o;1480:1592::-;1573:4;1589:10;;;:24;;-1:-1:-1;1603:10:6;;1589:24;1585:117;;;-1:-1:-1;1694:1:6;1687:8;;1585:117;1708:10;1749:5;1740;-1:-1:-1;;1729:16:6;;;;;;:25;1725:158;;-1:-1:-1;1822:13:6;;;1852:4;1822:13;1852:4;1843:13;;;;;;-1:-1:-1;1864:12:6;;-1:-1:-1;1864:12:6;1725:158;1926:5;1951;1966:13;;;1962:70;;;-1:-1:-1;1998:5:6;;-1:-1:-1;2020:5:6;1962:70;2055:4;2046:6;:13;;;;;;2038:21;;1006:9;2069:5;:17;2065:152;;;2173:17;:5;2183:6;2173:17;:9;:17;:::i;:::-;2165:25;-1:-1:-1;2198:12:6;;-1:-1:-1;;;2198:12:6;2065:152;-1:-1:-1;;2327:10:6;;-1:-1:-1;;;;;2327:10:6;2343:27;2386:1;2376:11;;-1:-1:-1;;;2405:10:6;;-1:-1:-1;;;;;2405:10:6;2421:25;2460:1;2452:9;;-1:-1:-1;2452:9:6;2482:6;-1:-1:-1;;2482:6:6;2471:17;;;;;:25;2467:298;;2506:14;;;;;2536:6;2506:14;2536:15;;;;;;-1:-1:-1;1151:13:6;2563:28;;2559:200;;;2611:17;:5;2621:6;2611:17;:9;:17;:::i;:::-;2603:25;-1:-1:-1;;;;2645:8:6;;2671:6;2645:8;2671:6;2663:14;;;;;;-1:-1:-1;2694:11:6;2663:14;2703:1;2694:11;:8;:11;:::i;:::-;2687:18;;2724:4;2715:13;;;;;;;;-1:-1:-1;2738:12:6;;-1:-1:-1;;;;;2738:12:6;2559:200;2908:1;-1:-1:-1;;;;;;;2849:10:6;;2865:27;2898:11;;-1:-1:-1;2898:11:6;2849:10;2898:11;2923:15;;;;;;-1:-1:-1;;;;2951:8:6;;2973:6;2951:8;2973:6;2965:14;;;;;2993:1;2985:9;;-1:-1:-1;2985:9:6;3007:6;2985:9;3007:13;;;;;;-1:-1:-1;3034:15:6;:5;3007:13;3034:15;:9;:15;:::i;:::-;3026:23;1480:1592;-1:-1:-1;;;;;;;;;1480:1592:6:o;3487:652::-;3587:4;3640:10;3653:29;3663:5;3670;3677:4;3653:9;:29::i;:::-;3640:42;-1:-1:-1;3693:10:6;3689:112;;3793:1;3786:8;;;;;3689:112;3980:1;1006:9;-1:-1:-1;;3934:9:6;;3949:17;3972:9;3991:16;;-1:-1:-1;;3987:109:6;;;-1:-1:-1;;4074:15:6;;;;;;3987:109;4102:13;;3487:652;-1:-1:-1;;;;3487:652:6:o;2159:459:18:-;2217:7;2458:6;2454:45;;-1:-1:-1;2487:1:18;2480:8;;2454:45;2521:5;;;2525:1;2521;:5;:1;2544:5;;;;;:10;2536:56;;;;-1:-1:-1;;;2536:56:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2610:1;-1:-1:-1;2159:459:18;;;;;:::o;834:176::-;892:7;923:5;;;946:6;;;;938:46;;;;;-1:-1:-1;;;938:46:18;;;;;;;;;;;;;;;;;;;;;;;;;;",
  "source": "pragma solidity ^0.5.0;\n\nimport \"../math/BigDiv.sol\";\n\n/**\n * @title Used for testing only.\n */\ncontract BigDivMock {\n  function bigDiv2x1(\n    uint _numA,\n    uint _numB,\n    uint _den\n  ) public pure returns (uint) {\n    return BigDiv.bigDiv2x1(_numA, _numB, _den);\n  }\n\n  function bigDiv2x1RoundUp(\n    uint _numA,\n    uint _numB,\n    uint _den\n  ) public pure returns (uint) {\n    return BigDiv.bigDiv2x1RoundUp(_numA, _numB, _den);\n  }\n\n  function bigDiv2x2(\n    uint _numA,\n    uint _numB,\n    uint _denA,\n    uint _denB\n  ) public pure returns (uint) {\n    return BigDiv.bigDiv2x2(_numA, _numB, _denA, _denB);\n  }\n}\n",
  "sourcePath": "/home/circleci/repo/contracts/test-artifacts/BigDivMock.sol",
  "ast": {
    "absolutePath": "/home/circleci/repo/contracts/test-artifacts/BigDivMock.sol",
    "exportedSymbols": {
      "BigDivMock": [
        5251
      ]
    },
    "id": 5252,
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 5189,
        "literals": [
          "solidity",
          "^",
          "0.5",
          ".0"
        ],
        "nodeType": "PragmaDirective",
        "src": "0:23:9"
      },
      {
        "absolutePath": "/home/circleci/repo/contracts/math/BigDiv.sol",
        "file": "../math/BigDiv.sol",
        "id": 5190,
        "nodeType": "ImportDirective",
        "scope": 5252,
        "sourceUnit": 4983,
        "src": "25:28:9",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "baseContracts": [],
        "contractDependencies": [],
        "contractKind": "contract",
        "documentation": "@title Used for testing only.",
        "fullyImplemented": true,
        "id": 5251,
        "linearizedBaseContracts": [
          5251
        ],
        "name": "BigDivMock",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "body": {
              "id": 5208,
              "nodeType": "Block",
              "src": "217:54:9",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 5203,
                        "name": "_numA",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5192,
                        "src": "247:5:9",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5204,
                        "name": "_numB",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5194,
                        "src": "254:5:9",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5205,
                        "name": "_den",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5196,
                        "src": "261:4:9",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 5201,
                        "name": "BigDiv",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4982,
                        "src": "230:6:9",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_BigDiv_$4982_$",
                          "typeString": "type(library BigDiv)"
                        }
                      },
                      "id": 5202,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "bigDiv2x1",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 4688,
                      "src": "230:16:9",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                        "typeString": "function (uint256,uint256,uint256) pure returns (uint256)"
                      }
                    },
                    "id": 5206,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "230:36:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 5200,
                  "id": 5207,
                  "nodeType": "Return",
                  "src": "223:43:9"
                }
              ]
            },
            "documentation": null,
            "id": 5209,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "bigDiv2x1",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 5197,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5192,
                  "name": "_numA",
                  "nodeType": "VariableDeclaration",
                  "scope": 5209,
                  "src": "144:10:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5191,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "144:4:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5194,
                  "name": "_numB",
                  "nodeType": "VariableDeclaration",
                  "scope": 5209,
                  "src": "160:10:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5193,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "160:4:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5196,
                  "name": "_den",
                  "nodeType": "VariableDeclaration",
                  "scope": 5209,
                  "src": "176:9:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5195,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "176:4:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "138:51:9"
            },
            "returnParameters": {
              "id": 5200,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5199,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 5209,
                  "src": "211:4:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5198,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "211:4:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "210:6:9"
            },
            "scope": 5251,
            "src": "120:151:9",
            "stateMutability": "pure",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 5227,
              "nodeType": "Block",
              "src": "379:61:9",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 5222,
                        "name": "_numA",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5211,
                        "src": "416:5:9",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5223,
                        "name": "_numB",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5213,
                        "src": "423:5:9",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5224,
                        "name": "_den",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5215,
                        "src": "430:4:9",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 5220,
                        "name": "BigDiv",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4982,
                        "src": "392:6:9",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_BigDiv_$4982_$",
                          "typeString": "type(library BigDiv)"
                        }
                      },
                      "id": 5221,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "bigDiv2x1RoundUp",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 4744,
                      "src": "392:23:9",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                        "typeString": "function (uint256,uint256,uint256) pure returns (uint256)"
                      }
                    },
                    "id": 5225,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "392:43:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 5219,
                  "id": 5226,
                  "nodeType": "Return",
                  "src": "385:50:9"
                }
              ]
            },
            "documentation": null,
            "id": 5228,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "bigDiv2x1RoundUp",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 5216,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5211,
                  "name": "_numA",
                  "nodeType": "VariableDeclaration",
                  "scope": 5228,
                  "src": "306:10:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5210,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "306:4:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5213,
                  "name": "_numB",
                  "nodeType": "VariableDeclaration",
                  "scope": 5228,
                  "src": "322:10:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5212,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "322:4:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5215,
                  "name": "_den",
                  "nodeType": "VariableDeclaration",
                  "scope": 5228,
                  "src": "338:9:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5214,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "338:4:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "300:51:9"
            },
            "returnParameters": {
              "id": 5219,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5218,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 5228,
                  "src": "373:4:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5217,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "373:4:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "372:6:9"
            },
            "scope": 5251,
            "src": "275:165:9",
            "stateMutability": "pure",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 5249,
              "nodeType": "Block",
              "src": "558:62:9",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 5243,
                        "name": "_numA",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5230,
                        "src": "588:5:9",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5244,
                        "name": "_numB",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5232,
                        "src": "595:5:9",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5245,
                        "name": "_denA",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5234,
                        "src": "602:5:9",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5246,
                        "name": "_denB",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5236,
                        "src": "609:5:9",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 5241,
                        "name": "BigDiv",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4982,
                        "src": "571:6:9",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_BigDiv_$4982_$",
                          "typeString": "type(library BigDiv)"
                        }
                      },
                      "id": 5242,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "bigDiv2x2",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 4981,
                      "src": "571:16:9",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                        "typeString": "function (uint256,uint256,uint256,uint256) pure returns (uint256)"
                      }
                    },
                    "id": 5247,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "571:44:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 5240,
                  "id": 5248,
                  "nodeType": "Return",
                  "src": "564:51:9"
                }
              ]
            },
            "documentation": null,
            "id": 5250,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "bigDiv2x2",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 5237,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5230,
                  "name": "_numA",
                  "nodeType": "VariableDeclaration",
                  "scope": 5250,
                  "src": "468:10:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5229,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "468:4:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5232,
                  "name": "_numB",
                  "nodeType": "VariableDeclaration",
                  "scope": 5250,
                  "src": "484:10:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5231,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "484:4:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5234,
                  "name": "_denA",
                  "nodeType": "VariableDeclaration",
                  "scope": 5250,
                  "src": "500:10:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5233,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "500:4:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5236,
                  "name": "_denB",
                  "nodeType": "VariableDeclaration",
                  "scope": 5250,
                  "src": "516:10:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5235,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "516:4:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "462:68:9"
            },
            "returnParameters": {
              "id": 5240,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5239,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 5250,
                  "src": "552:4:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5238,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "552:4:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "551:6:9"
            },
            "scope": 5251,
            "src": "444:176:9",
            "stateMutability": "pure",
            "superFunction": null,
            "visibility": "public"
          }
        ],
        "scope": 5252,
        "src": "96:526:9"
      }
    ],
    "src": "0:623:9"
  },
  "legacyAST": {
    "absolutePath": "/home/circleci/repo/contracts/test-artifacts/BigDivMock.sol",
    "exportedSymbols": {
      "BigDivMock": [
        5251
      ]
    },
    "id": 5252,
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 5189,
        "literals": [
          "solidity",
          "^",
          "0.5",
          ".0"
        ],
        "nodeType": "PragmaDirective",
        "src": "0:23:9"
      },
      {
        "absolutePath": "/home/circleci/repo/contracts/math/BigDiv.sol",
        "file": "../math/BigDiv.sol",
        "id": 5190,
        "nodeType": "ImportDirective",
        "scope": 5252,
        "sourceUnit": 4983,
        "src": "25:28:9",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "baseContracts": [],
        "contractDependencies": [],
        "contractKind": "contract",
        "documentation": "@title Used for testing only.",
        "fullyImplemented": true,
        "id": 5251,
        "linearizedBaseContracts": [
          5251
        ],
        "name": "BigDivMock",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "body": {
              "id": 5208,
              "nodeType": "Block",
              "src": "217:54:9",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 5203,
                        "name": "_numA",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5192,
                        "src": "247:5:9",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5204,
                        "name": "_numB",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5194,
                        "src": "254:5:9",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5205,
                        "name": "_den",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5196,
                        "src": "261:4:9",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 5201,
                        "name": "BigDiv",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4982,
                        "src": "230:6:9",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_BigDiv_$4982_$",
                          "typeString": "type(library BigDiv)"
                        }
                      },
                      "id": 5202,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "bigDiv2x1",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 4688,
                      "src": "230:16:9",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                        "typeString": "function (uint256,uint256,uint256) pure returns (uint256)"
                      }
                    },
                    "id": 5206,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "230:36:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 5200,
                  "id": 5207,
                  "nodeType": "Return",
                  "src": "223:43:9"
                }
              ]
            },
            "documentation": null,
            "id": 5209,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "bigDiv2x1",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 5197,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5192,
                  "name": "_numA",
                  "nodeType": "VariableDeclaration",
                  "scope": 5209,
                  "src": "144:10:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5191,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "144:4:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5194,
                  "name": "_numB",
                  "nodeType": "VariableDeclaration",
                  "scope": 5209,
                  "src": "160:10:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5193,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "160:4:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5196,
                  "name": "_den",
                  "nodeType": "VariableDeclaration",
                  "scope": 5209,
                  "src": "176:9:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5195,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "176:4:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "138:51:9"
            },
            "returnParameters": {
              "id": 5200,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5199,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 5209,
                  "src": "211:4:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5198,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "211:4:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "210:6:9"
            },
            "scope": 5251,
            "src": "120:151:9",
            "stateMutability": "pure",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 5227,
              "nodeType": "Block",
              "src": "379:61:9",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 5222,
                        "name": "_numA",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5211,
                        "src": "416:5:9",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5223,
                        "name": "_numB",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5213,
                        "src": "423:5:9",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5224,
                        "name": "_den",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5215,
                        "src": "430:4:9",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 5220,
                        "name": "BigDiv",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4982,
                        "src": "392:6:9",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_BigDiv_$4982_$",
                          "typeString": "type(library BigDiv)"
                        }
                      },
                      "id": 5221,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "bigDiv2x1RoundUp",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 4744,
                      "src": "392:23:9",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                        "typeString": "function (uint256,uint256,uint256) pure returns (uint256)"
                      }
                    },
                    "id": 5225,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "392:43:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 5219,
                  "id": 5226,
                  "nodeType": "Return",
                  "src": "385:50:9"
                }
              ]
            },
            "documentation": null,
            "id": 5228,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "bigDiv2x1RoundUp",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 5216,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5211,
                  "name": "_numA",
                  "nodeType": "VariableDeclaration",
                  "scope": 5228,
                  "src": "306:10:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5210,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "306:4:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5213,
                  "name": "_numB",
                  "nodeType": "VariableDeclaration",
                  "scope": 5228,
                  "src": "322:10:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5212,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "322:4:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5215,
                  "name": "_den",
                  "nodeType": "VariableDeclaration",
                  "scope": 5228,
                  "src": "338:9:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5214,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "338:4:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "300:51:9"
            },
            "returnParameters": {
              "id": 5219,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5218,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 5228,
                  "src": "373:4:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5217,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "373:4:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "372:6:9"
            },
            "scope": 5251,
            "src": "275:165:9",
            "stateMutability": "pure",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 5249,
              "nodeType": "Block",
              "src": "558:62:9",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 5243,
                        "name": "_numA",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5230,
                        "src": "588:5:9",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5244,
                        "name": "_numB",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5232,
                        "src": "595:5:9",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5245,
                        "name": "_denA",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5234,
                        "src": "602:5:9",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 5246,
                        "name": "_denB",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5236,
                        "src": "609:5:9",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 5241,
                        "name": "BigDiv",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4982,
                        "src": "571:6:9",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_BigDiv_$4982_$",
                          "typeString": "type(library BigDiv)"
                        }
                      },
                      "id": 5242,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "bigDiv2x2",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 4981,
                      "src": "571:16:9",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                        "typeString": "function (uint256,uint256,uint256,uint256) pure returns (uint256)"
                      }
                    },
                    "id": 5247,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "571:44:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 5240,
                  "id": 5248,
                  "nodeType": "Return",
                  "src": "564:51:9"
                }
              ]
            },
            "documentation": null,
            "id": 5250,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "bigDiv2x2",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 5237,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5230,
                  "name": "_numA",
                  "nodeType": "VariableDeclaration",
                  "scope": 5250,
                  "src": "468:10:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5229,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "468:4:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5232,
                  "name": "_numB",
                  "nodeType": "VariableDeclaration",
                  "scope": 5250,
                  "src": "484:10:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5231,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "484:4:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5234,
                  "name": "_denA",
                  "nodeType": "VariableDeclaration",
                  "scope": 5250,
                  "src": "500:10:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5233,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "500:4:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5236,
                  "name": "_denB",
                  "nodeType": "VariableDeclaration",
                  "scope": 5250,
                  "src": "516:10:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5235,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "516:4:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "462:68:9"
            },
            "returnParameters": {
              "id": 5240,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5239,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 5250,
                  "src": "552:4:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5238,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "552:4:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "551:6:9"
            },
            "scope": 5251,
            "src": "444:176:9",
            "stateMutability": "pure",
            "superFunction": null,
            "visibility": "public"
          }
        ],
        "scope": 5252,
        "src": "96:526:9"
      }
    ],
    "src": "0:623:9"
  },
  "compiler": {
    "name": "solc",
    "version": "0.5.17+commit.d19bba13.Emscripten.clang"
  },
  "networks": {},
  "schemaVersion": "3.3.0",
  "updatedAt": "2020-12-11T05:03:09.350Z",
  "devdoc": {
    "methods": {},
    "title": "Used for testing only."
  },
  "userdoc": {
    "methods": {}
  }
}