{
  "contractName": "DayCountConventions",
  "abi": [],
  "metadata": "{\"compiler\":{\"version\":\"0.6.11+commit.5ef660b1\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"title\":\"DayCountConventions\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Implements various ISDA day count conventions as specified by ACTUS\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"@atpar/actus-solidity/contracts/Core/Conventions/DayCountConventions.sol\":\"DayCountConventions\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@atpar/actus-solidity/contracts/Core/ACTUSTypes.sol\":{\"keccak256\":\"0x4374a4c79ef02bb008994431870badedd532d09639fef8d7378039faee88d4dd\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://c0d32929c237f8d04ff4117611292f874bb1dd785b8ec94c04389d608c11481c\",\"dweb:/ipfs/QmVu3awVGWDvqMCjPhmzcCQCRg4VNr5XxcDRWDECTr17TV\"]},\"@atpar/actus-solidity/contracts/Core/Conventions/DayCountConventions.sol\":{\"keccak256\":\"0x7147f1662bbd8abd04dffe454db3743828bae4476621ff158c94dd967b8573e1\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://d3be9ed484ad75d87b485d7c779d72b980c711735ed7e2ebc9622949a51857a0\",\"dweb:/ipfs/QmVdyMD4PW8wMdhbxoQBqAVNNN7fRwvpTVpCWKBLbLoqmh\"]},\"@atpar/actus-solidity/contracts/Core/SignedMath.sol\":{\"keccak256\":\"0x179745be164f4540d848a50eeb8aea4ec3a0ddabc50f4c122c41ec0463e849c7\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://e1088b178902de60c611c2dffd2c8943cc7b68988c9083936b760864775db7da\",\"dweb:/ipfs/QmV9XYTU6a8nPzoJv9FjRV4Z2rfbymGGARmzka57ydD1FG\"]},\"@atpar/actus-solidity/contracts/external/BokkyPooBah/BokkyPooBahsDateTimeLibrary.sol\":{\"keccak256\":\"0x679533db9ba3257086015c0435c7d0de7a0a2f352a9de725db294e3f42c17391\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1c586a5d8d9a654840c3655ccd4e47458d1e781c7542ec6fd2c29638b0dee57d\",\"dweb:/ipfs/QmeoQpnTMU4pa4iwKJcKmbNm7P54UCxux2G9rJyTCyq8GZ\"]},\"openzeppelin-solidity/contracts/math/SafeMath.sol\":{\"keccak256\":\"0xaa0e11a791bc975d581a4f5b7a8d9c16a880a354c89312318ae072ae3e740409\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://982d8b344f76193834260436d74c81e5a8f9e89106bb4cd72bbaabda4f3f59c2\",\"dweb:/ipfs/QmSrvP5TkQRhKDVCTpsV3uaKLBhkt7PjUY89vdtM9o5ybK\"]},\"openzeppelin-solidity/contracts/math/SignedSafeMath.sol\":{\"keccak256\":\"0xb2db870ccd849f107e3196d346fc4983eb9a041d117b9ff3a53950df606658b7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0add6dbdceb130d5cd140b8106e7884606dce98e817b3547e0967b76921bd473\",\"dweb:/ipfs/QmRUhmQKxoVFhHaQKHPNUYeSty1rw9TDcDPB5PdDUkqvbg\"]}},\"version\":1}",
  "bytecode": "0x6080604052348015600f57600080fd5b50603f80601d6000396000f3fe6080604052600080fdfea2646970667358221220f5a54c2cbaa403192bdb1e33d621f444553748fb82799bf67358c0b1c3b06f2664736f6c634300060b0033",
  "deployedBytecode": "0x6080604052600080fdfea2646970667358221220f5a54c2cbaa403192bdb1e33d621f444553748fb82799bf67358c0b1c3b06f2664736f6c634300060b0033",
  "immutableReferences": {},
  "sourceMap": "438:5100:77:-:0;;;;;;;;;;;;;;;;;;;",
  "deployedSourceMap": "438:5100:77:-:0;;;;;",
  "source": "// \"SPDX-License-Identifier: Apache-2.0\"\npragma solidity ^0.6.11;\n\nimport \"openzeppelin-solidity/contracts/math/SafeMath.sol\";\nimport \"openzeppelin-solidity/contracts/math/SignedSafeMath.sol\";\nimport \"../../external/BokkyPooBah/BokkyPooBahsDateTimeLibrary.sol\";\n\nimport \"../ACTUSTypes.sol\";\nimport \"../SignedMath.sol\";\n\n\n/**\n * @title DayCountConventions\n * @notice Implements various ISDA day count conventions as specified by ACTUS\n */\ncontract DayCountConventions {\n\n    using SafeMath for uint;\n    using SignedSafeMath for int;\n    using SignedMath for int;\n\n    /**\n     * Returns the fraction of the year between two timestamps.\n     */\n    function yearFraction(\n        uint256 startTimestamp,\n        uint256 endTimestamp,\n        DayCountConvention ipdc,\n        uint256 maturityDate\n    )\n        internal\n        pure\n        returns (int256)\n    {\n        require(endTimestamp >= startTimestamp, \"Core.yearFraction: START_NOT_BEFORE_END\");\n        if (ipdc == DayCountConvention.AA) {\n            return actualActual(startTimestamp, endTimestamp);\n        } else if (ipdc == DayCountConvention.A360) {\n            return actualThreeSixty(startTimestamp, endTimestamp);\n        } else if (ipdc == DayCountConvention.A365) {\n            return actualThreeSixtyFive(startTimestamp, endTimestamp);\n        } else if (ipdc == DayCountConvention._30E360) {\n            return thirtyEThreeSixty(startTimestamp, endTimestamp);\n        } else if (ipdc == DayCountConvention._30E360ISDA) {\n            return thirtyEThreeSixtyISDA(startTimestamp, endTimestamp, maturityDate);\n        } else if (ipdc == DayCountConvention._28E336) {\n            // not implemented yet\n            revert(\"DayCountConvention.yearFraction: ATTRIBUTE_NOT_SUPPORTED.\");\n        } else {\n            revert(\"DayCountConvention.yearFraction: ATTRIBUTE_NOT_FOUND.\");\n        }\n    }\n\n    /**\n     * ISDA A/A day count convention\n     */\n    function actualActual(uint256 startTime, uint256 endTime)\n        internal\n        pure\n        returns (int256)\n    {\n        uint256 d1Year = BokkyPooBahsDateTimeLibrary.getYear(startTime);\n        uint256 d2Year = BokkyPooBahsDateTimeLibrary.getYear(endTime);\n\n        int256 firstBasis = (BokkyPooBahsDateTimeLibrary.isLeapYear(startTime)) ? 366 : 365;\n\n        if (d1Year == d2Year) {\n            return int256(BokkyPooBahsDateTimeLibrary.diffDays(startTime, endTime)).floatDiv(firstBasis);\n        }\n\n        int256 secondBasis = (BokkyPooBahsDateTimeLibrary.isLeapYear(endTime)) ? 366 : 365;\n\n        int256 firstFraction = int256(BokkyPooBahsDateTimeLibrary.diffDays(\n            startTime,\n            BokkyPooBahsDateTimeLibrary.timestampFromDate(d1Year.add(1), 1, 1)\n        )).floatDiv(firstBasis);\n        int256 secondFraction = int256(BokkyPooBahsDateTimeLibrary.diffDays(\n            BokkyPooBahsDateTimeLibrary.timestampFromDate(d2Year, 1, 1),\n            endTime\n        )).floatDiv(secondBasis);\n\n        return firstFraction.add(secondFraction).add(int256(d2Year.sub(d1Year).sub(1)));\n    }\n\n    /**\n     * ISDA A/360 day count convention\n     */\n    function actualThreeSixty(uint256 startTime, uint256 endTime)\n        internal\n        pure\n        returns (int256)\n    {\n        return (int256((endTime.sub(startTime)).div(86400)).floatDiv(360));\n    }\n\n    /**\n     * ISDA A/365-Fixed day count convention\n     */\n    function actualThreeSixtyFive(uint256 startTime, uint256 endTime)\n        internal\n        pure\n        returns (int256)\n    {\n        return (int256((endTime.sub(startTime)).div(86400)).floatDiv(365));\n    }\n\n    /**\n     * ISDA 30E/360 day count convention\n     */\n    function thirtyEThreeSixty(uint256 startTime, uint256 endTime)\n        internal\n        pure\n        returns (int256)\n    {\n        uint256 d1Day;\n        uint256 d1Month;\n        uint256 d1Year;\n\n        uint256 d2Day;\n        uint256 d2Month;\n        uint256 d2Year;\n\n        (d1Year, d1Month, d1Day) = BokkyPooBahsDateTimeLibrary.timestampToDate(startTime);\n        (d2Year, d2Month, d2Day) = BokkyPooBahsDateTimeLibrary.timestampToDate(endTime);\n\n        if (d1Day == 31) {\n            d1Day = 30;\n        }\n\n        if (d2Day == 31) {\n            d2Day = 30;\n        }\n\n        int256 delD = int256(d2Day).sub(int256(d1Day));\n        int256 delM = int256(d2Month).sub(int256(d1Month));\n        int256 delY = int256(d2Year).sub(int256(d1Year));\n\n        return ((delY.mul(360).add(delM.mul(30)).add(delD)).floatDiv(360));\n    }\n\n    /**\n     * ISDA 30E/360-ISDA day count convention\n     */\n    function thirtyEThreeSixtyISDA(uint256 startTime, uint256 endTime, uint256 maturityDate)\n        internal\n        pure\n        returns (int256)\n    {\n        uint256 d1Day;\n        uint256 d1Month;\n        uint256 d1Year;\n\n        uint256 d2Day;\n        uint256 d2Month;\n        uint256 d2Year;\n\n        (d1Year, d1Month, d1Day) = BokkyPooBahsDateTimeLibrary.timestampToDate(startTime);\n        (d2Year, d2Month, d2Day) = BokkyPooBahsDateTimeLibrary.timestampToDate(endTime);\n\n        if (d1Day == BokkyPooBahsDateTimeLibrary.getDaysInMonth(startTime)) {\n            d1Day = 30;\n        }\n\n        if (!(endTime == maturityDate && d2Month == 2) && d2Day == BokkyPooBahsDateTimeLibrary.getDaysInMonth(endTime)) {\n            d2Day = 30;\n        }\n\n        int256 delD = int256(d2Day).sub(int256(d1Day));\n        int256 delM = int256(d2Month).sub(int256(d1Month));\n        int256 delY = int256(d2Year).sub(int256(d1Year));\n\n        return ((delY.mul(360).add(delM.mul(30)).add(delD)).floatDiv(360));\n    }\n}",
  "sourcePath": "@atpar/actus-solidity/contracts/Core/Conventions/DayCountConventions.sol",
  "ast": {
    "absolutePath": "@atpar/actus-solidity/contracts/Core/Conventions/DayCountConventions.sol",
    "exportedSymbols": {
      "DayCountConventions": [
        23895
      ]
    },
    "id": 23896,
    "license": "Apache-2.0",
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 23342,
        "literals": [
          "solidity",
          "^",
          "0.6",
          ".11"
        ],
        "nodeType": "PragmaDirective",
        "src": "41:24:77"
      },
      {
        "absolutePath": "openzeppelin-solidity/contracts/math/SafeMath.sol",
        "file": "openzeppelin-solidity/contracts/math/SafeMath.sol",
        "id": 23343,
        "nodeType": "ImportDirective",
        "scope": 23896,
        "sourceUnit": 38682,
        "src": "67:59:77",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "openzeppelin-solidity/contracts/math/SignedSafeMath.sol",
        "file": "openzeppelin-solidity/contracts/math/SignedSafeMath.sol",
        "id": 23344,
        "nodeType": "ImportDirective",
        "scope": 23896,
        "sourceUnit": 38861,
        "src": "127:65:77",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "@atpar/actus-solidity/contracts/external/BokkyPooBah/BokkyPooBahsDateTimeLibrary.sol",
        "file": "../../external/BokkyPooBah/BokkyPooBahsDateTimeLibrary.sol",
        "id": 23345,
        "nodeType": "ImportDirective",
        "scope": 23896,
        "sourceUnit": 37178,
        "src": "193:68:77",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "@atpar/actus-solidity/contracts/Core/ACTUSTypes.sol",
        "file": "../ACTUSTypes.sol",
        "id": 23346,
        "nodeType": "ImportDirective",
        "scope": 23896,
        "sourceUnit": 23007,
        "src": "263:27:77",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "@atpar/actus-solidity/contracts/Core/SignedMath.sol",
        "file": "../SignedMath.sol",
        "id": 23347,
        "nodeType": "ImportDirective",
        "scope": 23896,
        "sourceUnit": 24231,
        "src": "291:27:77",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "abstract": false,
        "baseContracts": [],
        "contractDependencies": [],
        "contractKind": "contract",
        "documentation": {
          "id": 23348,
          "nodeType": "StructuredDocumentation",
          "src": "321:116:77",
          "text": " @title DayCountConventions\n @notice Implements various ISDA day count conventions as specified by ACTUS"
        },
        "fullyImplemented": true,
        "id": 23895,
        "linearizedBaseContracts": [
          23895
        ],
        "name": "DayCountConventions",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "id": 23351,
            "libraryName": {
              "contractScope": null,
              "id": 23349,
              "name": "SafeMath",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 38681,
              "src": "480:8:77",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_SafeMath_$38681",
                "typeString": "library SafeMath"
              }
            },
            "nodeType": "UsingForDirective",
            "src": "474:24:77",
            "typeName": {
              "id": 23350,
              "name": "uint",
              "nodeType": "ElementaryTypeName",
              "src": "493:4:77",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            }
          },
          {
            "id": 23354,
            "libraryName": {
              "contractScope": null,
              "id": 23352,
              "name": "SignedSafeMath",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 38860,
              "src": "509:14:77",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_SignedSafeMath_$38860",
                "typeString": "library SignedSafeMath"
              }
            },
            "nodeType": "UsingForDirective",
            "src": "503:29:77",
            "typeName": {
              "id": 23353,
              "name": "int",
              "nodeType": "ElementaryTypeName",
              "src": "528:3:77",
              "typeDescriptions": {
                "typeIdentifier": "t_int256",
                "typeString": "int256"
              }
            }
          },
          {
            "id": 23357,
            "libraryName": {
              "contractScope": null,
              "id": 23355,
              "name": "SignedMath",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 24230,
              "src": "543:10:77",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_SignedMath_$24230",
                "typeString": "library SignedMath"
              }
            },
            "nodeType": "UsingForDirective",
            "src": "537:25:77",
            "typeName": {
              "id": 23356,
              "name": "int",
              "nodeType": "ElementaryTypeName",
              "src": "558:3:77",
              "typeDescriptions": {
                "typeIdentifier": "t_int256",
                "typeString": "int256"
              }
            }
          },
          {
            "body": {
              "id": 23449,
              "nodeType": "Block",
              "src": "860:1002:77",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 23374,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 23372,
                          "name": "endTimestamp",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 23362,
                          "src": "878:12:77",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">=",
                        "rightExpression": {
                          "argumentTypes": null,
                          "id": 23373,
                          "name": "startTimestamp",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 23360,
                          "src": "894:14:77",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "878:30:77",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "436f72652e796561724672616374696f6e3a2053544152545f4e4f545f4245464f52455f454e44",
                        "id": 23375,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "910:41:77",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_8afb240a9b221f6f381442c516ad8ebc630a7757616f8078f5177823e6ec0254",
                          "typeString": "literal_string \"Core.yearFraction: START_NOT_BEFORE_END\""
                        },
                        "value": "Core.yearFraction: START_NOT_BEFORE_END"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_8afb240a9b221f6f381442c516ad8ebc630a7757616f8078f5177823e6ec0254",
                          "typeString": "literal_string \"Core.yearFraction: START_NOT_BEFORE_END\""
                        }
                      ],
                      "id": 23371,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        -18,
                        -18
                      ],
                      "referencedDeclaration": -18,
                      "src": "870:7:77",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 23376,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "870:82:77",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 23377,
                  "nodeType": "ExpressionStatement",
                  "src": "870:82:77"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_enum$_DayCountConvention_$22577",
                      "typeString": "enum DayCountConvention"
                    },
                    "id": 23381,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 23378,
                      "name": "ipdc",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 23364,
                      "src": "966:4:77",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_DayCountConvention_$22577",
                        "typeString": "enum DayCountConvention"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 23379,
                        "name": "DayCountConvention",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 22577,
                        "src": "974:18:77",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_enum$_DayCountConvention_$22577_$",
                          "typeString": "type(enum DayCountConvention)"
                        }
                      },
                      "id": 23380,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "memberName": "AA",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "974:21:77",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_DayCountConvention_$22577",
                        "typeString": "enum DayCountConvention"
                      }
                    },
                    "src": "966:29:77",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "condition": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_enum$_DayCountConvention_$22577",
                        "typeString": "enum DayCountConvention"
                      },
                      "id": 23391,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "id": 23388,
                        "name": "ipdc",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 23364,
                        "src": "1081:4:77",
                        "typeDescriptions": {
                          "typeIdentifier": "t_enum$_DayCountConvention_$22577",
                          "typeString": "enum DayCountConvention"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "==",
                      "rightExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 23389,
                          "name": "DayCountConvention",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 22577,
                          "src": "1089:18:77",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_enum$_DayCountConvention_$22577_$",
                            "typeString": "type(enum DayCountConvention)"
                          }
                        },
                        "id": 23390,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "memberName": "A360",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "1089:23:77",
                        "typeDescriptions": {
                          "typeIdentifier": "t_enum$_DayCountConvention_$22577",
                          "typeString": "enum DayCountConvention"
                        }
                      },
                      "src": "1081:31:77",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "falseBody": {
                      "condition": {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_enum$_DayCountConvention_$22577",
                          "typeString": "enum DayCountConvention"
                        },
                        "id": 23401,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 23398,
                          "name": "ipdc",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 23364,
                          "src": "1202:4:77",
                          "typeDescriptions": {
                            "typeIdentifier": "t_enum$_DayCountConvention_$22577",
                            "typeString": "enum DayCountConvention"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 23399,
                            "name": "DayCountConvention",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 22577,
                            "src": "1210:18:77",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_enum$_DayCountConvention_$22577_$",
                              "typeString": "type(enum DayCountConvention)"
                            }
                          },
                          "id": 23400,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberName": "A365",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "1210:23:77",
                          "typeDescriptions": {
                            "typeIdentifier": "t_enum$_DayCountConvention_$22577",
                            "typeString": "enum DayCountConvention"
                          }
                        },
                        "src": "1202:31:77",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "falseBody": {
                        "condition": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_enum$_DayCountConvention_$22577",
                            "typeString": "enum DayCountConvention"
                          },
                          "id": 23411,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 23408,
                            "name": "ipdc",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 23364,
                            "src": "1327:4:77",
                            "typeDescriptions": {
                              "typeIdentifier": "t_enum$_DayCountConvention_$22577",
                              "typeString": "enum DayCountConvention"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 23409,
                              "name": "DayCountConvention",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 22577,
                              "src": "1335:18:77",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_enum$_DayCountConvention_$22577_$",
                                "typeString": "type(enum DayCountConvention)"
                              }
                            },
                            "id": 23410,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "memberName": "_30E360",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "1335:26:77",
                            "typeDescriptions": {
                              "typeIdentifier": "t_enum$_DayCountConvention_$22577",
                              "typeString": "enum DayCountConvention"
                            }
                          },
                          "src": "1327:34:77",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "falseBody": {
                          "condition": {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_enum$_DayCountConvention_$22577",
                              "typeString": "enum DayCountConvention"
                            },
                            "id": 23421,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "id": 23418,
                              "name": "ipdc",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 23364,
                              "src": "1452:4:77",
                              "typeDescriptions": {
                                "typeIdentifier": "t_enum$_DayCountConvention_$22577",
                                "typeString": "enum DayCountConvention"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "==",
                            "rightExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 23419,
                                "name": "DayCountConvention",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 22577,
                                "src": "1460:18:77",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_enum$_DayCountConvention_$22577_$",
                                  "typeString": "type(enum DayCountConvention)"
                                }
                              },
                              "id": 23420,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "memberName": "_30E360ISDA",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": null,
                              "src": "1460:30:77",
                              "typeDescriptions": {
                                "typeIdentifier": "t_enum$_DayCountConvention_$22577",
                                "typeString": "enum DayCountConvention"
                              }
                            },
                            "src": "1452:38:77",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "falseBody": {
                            "condition": {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_enum$_DayCountConvention_$22577",
                                "typeString": "enum DayCountConvention"
                              },
                              "id": 23432,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "argumentTypes": null,
                                "id": 23429,
                                "name": "ipdc",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 23364,
                                "src": "1599:4:77",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_enum$_DayCountConvention_$22577",
                                  "typeString": "enum DayCountConvention"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "==",
                              "rightExpression": {
                                "argumentTypes": null,
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 23430,
                                  "name": "DayCountConvention",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 22577,
                                  "src": "1607:18:77",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_enum$_DayCountConvention_$22577_$",
                                    "typeString": "type(enum DayCountConvention)"
                                  }
                                },
                                "id": 23431,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "memberName": "_28E336",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": null,
                                "src": "1607:26:77",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_enum$_DayCountConvention_$22577",
                                  "typeString": "enum DayCountConvention"
                                }
                              },
                              "src": "1599:34:77",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            "falseBody": {
                              "id": 23442,
                              "nodeType": "Block",
                              "src": "1768:88:77",
                              "statements": [
                                {
                                  "expression": {
                                    "argumentTypes": null,
                                    "arguments": [
                                      {
                                        "argumentTypes": null,
                                        "hexValue": "446179436f756e74436f6e76656e74696f6e2e796561724672616374696f6e3a204154545249425554455f4e4f545f464f554e442e",
                                        "id": 23439,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "string",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "1789:55:77",
                                        "subdenomination": null,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_stringliteral_2e3e1cb1042a83e8e69085499c722b4f8b8ba7f78422d6434aa94fa9aa4b9bd7",
                                          "typeString": "literal_string \"DayCountConvention.yearFraction: ATTRIBUTE_NOT_FOUND.\""
                                        },
                                        "value": "DayCountConvention.yearFraction: ATTRIBUTE_NOT_FOUND."
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_stringliteral_2e3e1cb1042a83e8e69085499c722b4f8b8ba7f78422d6434aa94fa9aa4b9bd7",
                                          "typeString": "literal_string \"DayCountConvention.yearFraction: ATTRIBUTE_NOT_FOUND.\""
                                        }
                                      ],
                                      "id": 23438,
                                      "name": "revert",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [
                                        -19,
                                        -19
                                      ],
                                      "referencedDeclaration": -19,
                                      "src": "1782:6:77",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$",
                                        "typeString": "function (string memory) pure"
                                      }
                                    },
                                    "id": 23440,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "functionCall",
                                    "lValueRequested": false,
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "1782:63:77",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_tuple$__$",
                                      "typeString": "tuple()"
                                    }
                                  },
                                  "id": 23441,
                                  "nodeType": "ExpressionStatement",
                                  "src": "1782:63:77"
                                }
                              ]
                            },
                            "id": 23443,
                            "nodeType": "IfStatement",
                            "src": "1595:261:77",
                            "trueBody": {
                              "id": 23437,
                              "nodeType": "Block",
                              "src": "1635:127:77",
                              "statements": [
                                {
                                  "expression": {
                                    "argumentTypes": null,
                                    "arguments": [
                                      {
                                        "argumentTypes": null,
                                        "hexValue": "446179436f756e74436f6e76656e74696f6e2e796561724672616374696f6e3a204154545249425554455f4e4f545f535550504f525445442e",
                                        "id": 23434,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "string",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "1691:59:77",
                                        "subdenomination": null,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_stringliteral_78a43ad3a3a784f419abd5e26bf72f4c9562c2f547569a02b5ed109e21a7294e",
                                          "typeString": "literal_string \"DayCountConvention.yearFraction: ATTRIBUTE_NOT_SUPPORTED.\""
                                        },
                                        "value": "DayCountConvention.yearFraction: ATTRIBUTE_NOT_SUPPORTED."
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_stringliteral_78a43ad3a3a784f419abd5e26bf72f4c9562c2f547569a02b5ed109e21a7294e",
                                          "typeString": "literal_string \"DayCountConvention.yearFraction: ATTRIBUTE_NOT_SUPPORTED.\""
                                        }
                                      ],
                                      "id": 23433,
                                      "name": "revert",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [
                                        -19,
                                        -19
                                      ],
                                      "referencedDeclaration": -19,
                                      "src": "1684:6:77",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$",
                                        "typeString": "function (string memory) pure"
                                      }
                                    },
                                    "id": 23435,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "functionCall",
                                    "lValueRequested": false,
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "1684:67:77",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_tuple$__$",
                                      "typeString": "tuple()"
                                    }
                                  },
                                  "id": 23436,
                                  "nodeType": "ExpressionStatement",
                                  "src": "1684:67:77"
                                }
                              ]
                            }
                          },
                          "id": 23444,
                          "nodeType": "IfStatement",
                          "src": "1448:408:77",
                          "trueBody": {
                            "id": 23428,
                            "nodeType": "Block",
                            "src": "1492:97:77",
                            "statements": [
                              {
                                "expression": {
                                  "argumentTypes": null,
                                  "arguments": [
                                    {
                                      "argumentTypes": null,
                                      "id": 23423,
                                      "name": "startTimestamp",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 23360,
                                      "src": "1535:14:77",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    {
                                      "argumentTypes": null,
                                      "id": 23424,
                                      "name": "endTimestamp",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 23362,
                                      "src": "1551:12:77",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    {
                                      "argumentTypes": null,
                                      "id": 23425,
                                      "name": "maturityDate",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 23366,
                                      "src": "1565:12:77",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      },
                                      {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      },
                                      {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    ],
                                    "id": 23422,
                                    "name": "thirtyEThreeSixtyISDA",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 23894,
                                    "src": "1513:21:77",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_int256_$",
                                      "typeString": "function (uint256,uint256,uint256) pure returns (int256)"
                                    }
                                  },
                                  "id": 23426,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "functionCall",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "1513:65:77",
                                  "tryCall": false,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_int256",
                                    "typeString": "int256"
                                  }
                                },
                                "functionReturnParameters": 23370,
                                "id": 23427,
                                "nodeType": "Return",
                                "src": "1506:72:77"
                              }
                            ]
                          }
                        },
                        "id": 23445,
                        "nodeType": "IfStatement",
                        "src": "1323:533:77",
                        "trueBody": {
                          "id": 23417,
                          "nodeType": "Block",
                          "src": "1363:79:77",
                          "statements": [
                            {
                              "expression": {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "id": 23413,
                                    "name": "startTimestamp",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 23360,
                                    "src": "1402:14:77",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  {
                                    "argumentTypes": null,
                                    "id": 23414,
                                    "name": "endTimestamp",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 23362,
                                    "src": "1418:12:77",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    },
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  ],
                                  "id": 23412,
                                  "name": "thirtyEThreeSixty",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 23751,
                                  "src": "1384:17:77",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_int256_$",
                                    "typeString": "function (uint256,uint256) pure returns (int256)"
                                  }
                                },
                                "id": 23415,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "1384:47:77",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_int256",
                                  "typeString": "int256"
                                }
                              },
                              "functionReturnParameters": 23370,
                              "id": 23416,
                              "nodeType": "Return",
                              "src": "1377:54:77"
                            }
                          ]
                        }
                      },
                      "id": 23446,
                      "nodeType": "IfStatement",
                      "src": "1198:658:77",
                      "trueBody": {
                        "id": 23407,
                        "nodeType": "Block",
                        "src": "1235:82:77",
                        "statements": [
                          {
                            "expression": {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "id": 23403,
                                  "name": "startTimestamp",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 23360,
                                  "src": "1277:14:77",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                {
                                  "argumentTypes": null,
                                  "id": 23404,
                                  "name": "endTimestamp",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 23362,
                                  "src": "1293:12:77",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                ],
                                "id": 23402,
                                "name": "actualThreeSixtyFive",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 23626,
                                "src": "1256:20:77",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_int256_$",
                                  "typeString": "function (uint256,uint256) pure returns (int256)"
                                }
                              },
                              "id": 23405,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "1256:50:77",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_int256",
                                "typeString": "int256"
                              }
                            },
                            "functionReturnParameters": 23370,
                            "id": 23406,
                            "nodeType": "Return",
                            "src": "1249:57:77"
                          }
                        ]
                      }
                    },
                    "id": 23447,
                    "nodeType": "IfStatement",
                    "src": "1077:779:77",
                    "trueBody": {
                      "id": 23397,
                      "nodeType": "Block",
                      "src": "1114:78:77",
                      "statements": [
                        {
                          "expression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 23393,
                                "name": "startTimestamp",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 23360,
                                "src": "1152:14:77",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "id": 23394,
                                "name": "endTimestamp",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 23362,
                                "src": "1168:12:77",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "id": 23392,
                              "name": "actualThreeSixty",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 23599,
                              "src": "1135:16:77",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_int256_$",
                                "typeString": "function (uint256,uint256) pure returns (int256)"
                              }
                            },
                            "id": 23395,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "1135:46:77",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_int256",
                              "typeString": "int256"
                            }
                          },
                          "functionReturnParameters": 23370,
                          "id": 23396,
                          "nodeType": "Return",
                          "src": "1128:53:77"
                        }
                      ]
                    }
                  },
                  "id": 23448,
                  "nodeType": "IfStatement",
                  "src": "962:894:77",
                  "trueBody": {
                    "id": 23387,
                    "nodeType": "Block",
                    "src": "997:74:77",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 23383,
                              "name": "startTimestamp",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 23360,
                              "src": "1031:14:77",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 23384,
                              "name": "endTimestamp",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 23362,
                              "src": "1047:12:77",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "id": 23382,
                            "name": "actualActual",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 23572,
                            "src": "1018:12:77",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_int256_$",
                              "typeString": "function (uint256,uint256) pure returns (int256)"
                            }
                          },
                          "id": 23385,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "1018:42:77",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          }
                        },
                        "functionReturnParameters": 23370,
                        "id": 23386,
                        "nodeType": "Return",
                        "src": "1011:49:77"
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": {
              "id": 23358,
              "nodeType": "StructuredDocumentation",
              "src": "568:75:77",
              "text": " Returns the fraction of the year between two timestamps."
            },
            "id": 23450,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "yearFraction",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 23367,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23360,
                  "mutability": "mutable",
                  "name": "startTimestamp",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 23450,
                  "src": "679:22:77",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 23359,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "679:7:77",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 23362,
                  "mutability": "mutable",
                  "name": "endTimestamp",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 23450,
                  "src": "711:20:77",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 23361,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "711:7:77",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 23364,
                  "mutability": "mutable",
                  "name": "ipdc",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 23450,
                  "src": "741:23:77",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_enum$_DayCountConvention_$22577",
                    "typeString": "enum DayCountConvention"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 23363,
                    "name": "DayCountConvention",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22577,
                    "src": "741:18:77",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_DayCountConvention_$22577",
                      "typeString": "enum DayCountConvention"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 23366,
                  "mutability": "mutable",
                  "name": "maturityDate",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 23450,
                  "src": "774:20:77",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 23365,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "774:7:77",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "669:131:77"
            },
            "returnParameters": {
              "id": 23370,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23369,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 23450,
                  "src": "848:6:77",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_int256",
                    "typeString": "int256"
                  },
                  "typeName": {
                    "id": 23368,
                    "name": "int256",
                    "nodeType": "ElementaryTypeName",
                    "src": "848:6:77",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int256",
                      "typeString": "int256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "847:8:77"
            },
            "scope": 23895,
            "src": "648:1214:77",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 23571,
              "nodeType": "Block",
              "src": "2038:993:77",
              "statements": [
                {
                  "assignments": [
                    23461
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 23461,
                      "mutability": "mutable",
                      "name": "d1Year",
                      "nodeType": "VariableDeclaration",
                      "overrides": null,
                      "scope": 23571,
                      "src": "2048:14:77",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 23460,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "2048:7:77",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 23466,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 23464,
                        "name": "startTime",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 23453,
                        "src": "2101:9:77",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 23462,
                        "name": "BokkyPooBahsDateTimeLibrary",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 37177,
                        "src": "2065:27:77",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_BokkyPooBahsDateTimeLibrary_$37177_$",
                          "typeString": "type(library BokkyPooBahsDateTimeLibrary)"
                        }
                      },
                      "id": 23463,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "getYear",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 36424,
                      "src": "2065:35:77",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$",
                        "typeString": "function (uint256) pure returns (uint256)"
                      }
                    },
                    "id": 23465,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2065:46:77",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "2048:63:77"
                },
                {
                  "assignments": [
                    23468
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 23468,
                      "mutability": "mutable",
                      "name": "d2Year",
                      "nodeType": "VariableDeclaration",
                      "overrides": null,
                      "scope": 23571,
                      "src": "2121:14:77",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 23467,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "2121:7:77",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 23473,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 23471,
                        "name": "endTime",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 23455,
                        "src": "2174:7:77",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 23469,
                        "name": "BokkyPooBahsDateTimeLibrary",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 37177,
                        "src": "2138:27:77",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_BokkyPooBahsDateTimeLibrary_$37177_$",
                          "typeString": "type(library BokkyPooBahsDateTimeLibrary)"
                        }
                      },
                      "id": 23470,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "getYear",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 36424,
                      "src": "2138:35:77",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$",
                        "typeString": "function (uint256) pure returns (uint256)"
                      }
                    },
                    "id": 23472,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2138:44:77",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "2121:61:77"
                },
                {
                  "assignments": [
                    23475
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 23475,
                      "mutability": "mutable",
                      "name": "firstBasis",
                      "nodeType": "VariableDeclaration",
                      "overrides": null,
                      "scope": 23571,
                      "src": "2193:17:77",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int256",
                        "typeString": "int256"
                      },
                      "typeName": {
                        "id": 23474,
                        "name": "int256",
                        "nodeType": "ElementaryTypeName",
                        "src": "2193:6:77",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 23484,
                  "initialValue": {
                    "argumentTypes": null,
                    "condition": {
                      "argumentTypes": null,
                      "components": [
                        {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 23478,
                              "name": "startTime",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 23453,
                              "src": "2253:9:77",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "id": 23476,
                              "name": "BokkyPooBahsDateTimeLibrary",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 37177,
                              "src": "2214:27:77",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_contract$_BokkyPooBahsDateTimeLibrary_$37177_$",
                                "typeString": "type(library BokkyPooBahsDateTimeLibrary)"
                              }
                            },
                            "id": 23477,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "isLeapYear",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 36231,
                            "src": "2214:38:77",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_bool_$",
                              "typeString": "function (uint256) pure returns (bool)"
                            }
                          },
                          "id": 23479,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "2214:49:77",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        }
                      ],
                      "id": 23480,
                      "isConstant": false,
                      "isInlineArray": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "TupleExpression",
                      "src": "2213:51:77",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "falseExpression": {
                      "argumentTypes": null,
                      "hexValue": "333635",
                      "id": 23482,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "2273:3:77",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_365_by_1",
                        "typeString": "int_const 365"
                      },
                      "value": "365"
                    },
                    "id": 23483,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "Conditional",
                    "src": "2213:63:77",
                    "trueExpression": {
                      "argumentTypes": null,
                      "hexValue": "333636",
                      "id": 23481,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "2267:3:77",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_366_by_1",
                        "typeString": "int_const 366"
                      },
                      "value": "366"
                    },
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint16",
                      "typeString": "uint16"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "2193:83:77"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 23487,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 23485,
                      "name": "d1Year",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 23461,
                      "src": "2291:6:77",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "argumentTypes": null,
                      "id": 23486,
                      "name": "d2Year",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 23468,
                      "src": "2301:6:77",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "2291:16:77",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 23501,
                  "nodeType": "IfStatement",
                  "src": "2287:139:77",
                  "trueBody": {
                    "id": 23500,
                    "nodeType": "Block",
                    "src": "2309:117:77",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 23497,
                              "name": "firstBasis",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 23475,
                              "src": "2404:10:77",
                              "typeDescriptions": {
                                "typeIdentifier": "t_int256",
                                "typeString": "int256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_int256",
                                "typeString": "int256"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "arguments": [
                                    {
                                      "argumentTypes": null,
                                      "id": 23492,
                                      "name": "startTime",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 23453,
                                      "src": "2374:9:77",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    {
                                      "argumentTypes": null,
                                      "id": 23493,
                                      "name": "endTime",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 23455,
                                      "src": "2385:7:77",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      },
                                      {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": null,
                                      "id": 23490,
                                      "name": "BokkyPooBahsDateTimeLibrary",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 37177,
                                      "src": "2337:27:77",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_type$_t_contract$_BokkyPooBahsDateTimeLibrary_$37177_$",
                                        "typeString": "type(library BokkyPooBahsDateTimeLibrary)"
                                      }
                                    },
                                    "id": 23491,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberName": "diffDays",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 37104,
                                    "src": "2337:36:77",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                                      "typeString": "function (uint256,uint256) pure returns (uint256)"
                                    }
                                  },
                                  "id": 23494,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "functionCall",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "2337:56:77",
                                  "tryCall": false,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                ],
                                "id": 23489,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "ElementaryTypeNameExpression",
                                "src": "2330:6:77",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_int256_$",
                                  "typeString": "type(int256)"
                                },
                                "typeName": {
                                  "id": 23488,
                                  "name": "int256",
                                  "nodeType": "ElementaryTypeName",
                                  "src": "2330:6:77",
                                  "typeDescriptions": {
                                    "typeIdentifier": null,
                                    "typeString": null
                                  }
                                }
                              },
                              "id": 23495,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "2330:64:77",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_int256",
                                "typeString": "int256"
                              }
                            },
                            "id": 23496,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "floatDiv",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 24193,
                            "src": "2330:73:77",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_int256_$bound_to$_t_int256_$",
                              "typeString": "function (int256,int256) pure returns (int256)"
                            }
                          },
                          "id": 23498,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "2330:85:77",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          }
                        },
                        "functionReturnParameters": 23459,
                        "id": 23499,
                        "nodeType": "Return",
                        "src": "2323:92:77"
                      }
                    ]
                  }
                },
                {
                  "assignments": [
                    23503
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 23503,
                      "mutability": "mutable",
                      "name": "secondBasis",
                      "nodeType": "VariableDeclaration",
                      "overrides": null,
                      "scope": 23571,
                      "src": "2436:18:77",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int256",
                        "typeString": "int256"
                      },
                      "typeName": {
                        "id": 23502,
                        "name": "int256",
                        "nodeType": "ElementaryTypeName",
                        "src": "2436:6:77",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 23512,
                  "initialValue": {
                    "argumentTypes": null,
                    "condition": {
                      "argumentTypes": null,
                      "components": [
                        {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 23506,
                              "name": "endTime",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 23455,
                              "src": "2497:7:77",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "id": 23504,
                              "name": "BokkyPooBahsDateTimeLibrary",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 37177,
                              "src": "2458:27:77",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_contract$_BokkyPooBahsDateTimeLibrary_$37177_$",
                                "typeString": "type(library BokkyPooBahsDateTimeLibrary)"
                              }
                            },
                            "id": 23505,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "isLeapYear",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 36231,
                            "src": "2458:38:77",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_bool_$",
                              "typeString": "function (uint256) pure returns (bool)"
                            }
                          },
                          "id": 23507,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "2458:47:77",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        }
                      ],
                      "id": 23508,
                      "isConstant": false,
                      "isInlineArray": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "TupleExpression",
                      "src": "2457:49:77",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "falseExpression": {
                      "argumentTypes": null,
                      "hexValue": "333635",
                      "id": 23510,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "2515:3:77",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_365_by_1",
                        "typeString": "int_const 365"
                      },
                      "value": "365"
                    },
                    "id": 23511,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "Conditional",
                    "src": "2457:61:77",
                    "trueExpression": {
                      "argumentTypes": null,
                      "hexValue": "333636",
                      "id": 23509,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "2509:3:77",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_366_by_1",
                        "typeString": "int_const 366"
                      },
                      "value": "366"
                    },
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint16",
                      "typeString": "uint16"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "2436:82:77"
                },
                {
                  "assignments": [
                    23514
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 23514,
                      "mutability": "mutable",
                      "name": "firstFraction",
                      "nodeType": "VariableDeclaration",
                      "overrides": null,
                      "scope": 23571,
                      "src": "2529:20:77",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int256",
                        "typeString": "int256"
                      },
                      "typeName": {
                        "id": 23513,
                        "name": "int256",
                        "nodeType": "ElementaryTypeName",
                        "src": "2529:6:77",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 23534,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 23532,
                        "name": "firstBasis",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 23475,
                        "src": "2719:10:77",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 23519,
                                "name": "startTime",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 23453,
                                "src": "2609:9:77",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "arguments": [
                                      {
                                        "argumentTypes": null,
                                        "hexValue": "31",
                                        "id": 23524,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "number",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "2689:1:77",
                                        "subdenomination": null,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_rational_1_by_1",
                                          "typeString": "int_const 1"
                                        },
                                        "value": "1"
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_rational_1_by_1",
                                          "typeString": "int_const 1"
                                        }
                                      ],
                                      "expression": {
                                        "argumentTypes": null,
                                        "id": 23522,
                                        "name": "d1Year",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 23461,
                                        "src": "2678:6:77",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      },
                                      "id": 23523,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "memberName": "add",
                                      "nodeType": "MemberAccess",
                                      "referencedDeclaration": 38514,
                                      "src": "2678:10:77",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                                        "typeString": "function (uint256,uint256) pure returns (uint256)"
                                      }
                                    },
                                    "id": 23525,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "functionCall",
                                    "lValueRequested": false,
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "2678:13:77",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  {
                                    "argumentTypes": null,
                                    "hexValue": "31",
                                    "id": 23526,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "number",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "2693:1:77",
                                    "subdenomination": null,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_rational_1_by_1",
                                      "typeString": "int_const 1"
                                    },
                                    "value": "1"
                                  },
                                  {
                                    "argumentTypes": null,
                                    "hexValue": "31",
                                    "id": 23527,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "number",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "2696:1:77",
                                    "subdenomination": null,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_rational_1_by_1",
                                      "typeString": "int_const 1"
                                    },
                                    "value": "1"
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    },
                                    {
                                      "typeIdentifier": "t_rational_1_by_1",
                                      "typeString": "int_const 1"
                                    },
                                    {
                                      "typeIdentifier": "t_rational_1_by_1",
                                      "typeString": "int_const 1"
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 23520,
                                    "name": "BokkyPooBahsDateTimeLibrary",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 37177,
                                    "src": "2632:27:77",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_contract$_BokkyPooBahsDateTimeLibrary_$37177_$",
                                      "typeString": "type(library BokkyPooBahsDateTimeLibrary)"
                                    }
                                  },
                                  "id": 23521,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "timestampFromDate",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 36002,
                                  "src": "2632:45:77",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                                    "typeString": "function (uint256,uint256,uint256) pure returns (uint256)"
                                  }
                                },
                                "id": 23528,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "2632:66:77",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "expression": {
                                "argumentTypes": null,
                                "id": 23517,
                                "name": "BokkyPooBahsDateTimeLibrary",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 37177,
                                "src": "2559:27:77",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_contract$_BokkyPooBahsDateTimeLibrary_$37177_$",
                                  "typeString": "type(library BokkyPooBahsDateTimeLibrary)"
                                }
                              },
                              "id": 23518,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "diffDays",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 37104,
                              "src": "2559:36:77",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                                "typeString": "function (uint256,uint256) pure returns (uint256)"
                              }
                            },
                            "id": 23529,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "2559:149:77",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "id": 23516,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "2552:6:77",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_int256_$",
                            "typeString": "type(int256)"
                          },
                          "typeName": {
                            "id": 23515,
                            "name": "int256",
                            "nodeType": "ElementaryTypeName",
                            "src": "2552:6:77",
                            "typeDescriptions": {
                              "typeIdentifier": null,
                              "typeString": null
                            }
                          }
                        },
                        "id": 23530,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "2552:157:77",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        }
                      },
                      "id": 23531,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "floatDiv",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 24193,
                      "src": "2552:166:77",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_int256_$bound_to$_t_int256_$",
                        "typeString": "function (int256,int256) pure returns (int256)"
                      }
                    },
                    "id": 23533,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2552:178:77",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_int256",
                      "typeString": "int256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "2529:201:77"
                },
                {
                  "assignments": [
                    23536
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 23536,
                      "mutability": "mutable",
                      "name": "secondFraction",
                      "nodeType": "VariableDeclaration",
                      "overrides": null,
                      "scope": 23571,
                      "src": "2740:21:77",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int256",
                        "typeString": "int256"
                      },
                      "typeName": {
                        "id": 23535,
                        "name": "int256",
                        "nodeType": "ElementaryTypeName",
                        "src": "2740:6:77",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 23553,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 23551,
                        "name": "secondBasis",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 23503,
                        "src": "2922:11:77",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "id": 23543,
                                    "name": "d2Year",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 23468,
                                    "src": "2867:6:77",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  {
                                    "argumentTypes": null,
                                    "hexValue": "31",
                                    "id": 23544,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "number",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "2875:1:77",
                                    "subdenomination": null,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_rational_1_by_1",
                                      "typeString": "int_const 1"
                                    },
                                    "value": "1"
                                  },
                                  {
                                    "argumentTypes": null,
                                    "hexValue": "31",
                                    "id": 23545,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "number",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "2878:1:77",
                                    "subdenomination": null,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_rational_1_by_1",
                                      "typeString": "int_const 1"
                                    },
                                    "value": "1"
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    },
                                    {
                                      "typeIdentifier": "t_rational_1_by_1",
                                      "typeString": "int_const 1"
                                    },
                                    {
                                      "typeIdentifier": "t_rational_1_by_1",
                                      "typeString": "int_const 1"
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 23541,
                                    "name": "BokkyPooBahsDateTimeLibrary",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 37177,
                                    "src": "2821:27:77",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_contract$_BokkyPooBahsDateTimeLibrary_$37177_$",
                                      "typeString": "type(library BokkyPooBahsDateTimeLibrary)"
                                    }
                                  },
                                  "id": 23542,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "timestampFromDate",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 36002,
                                  "src": "2821:45:77",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                                    "typeString": "function (uint256,uint256,uint256) pure returns (uint256)"
                                  }
                                },
                                "id": 23546,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "2821:59:77",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "id": 23547,
                                "name": "endTime",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 23455,
                                "src": "2894:7:77",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "expression": {
                                "argumentTypes": null,
                                "id": 23539,
                                "name": "BokkyPooBahsDateTimeLibrary",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 37177,
                                "src": "2771:27:77",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_contract$_BokkyPooBahsDateTimeLibrary_$37177_$",
                                  "typeString": "type(library BokkyPooBahsDateTimeLibrary)"
                                }
                              },
                              "id": 23540,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "diffDays",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 37104,
                              "src": "2771:36:77",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                                "typeString": "function (uint256,uint256) pure returns (uint256)"
                              }
                            },
                            "id": 23548,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "2771:140:77",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "id": 23538,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "2764:6:77",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_int256_$",
                            "typeString": "type(int256)"
                          },
                          "typeName": {
                            "id": 23537,
                            "name": "int256",
                            "nodeType": "ElementaryTypeName",
                            "src": "2764:6:77",
                            "typeDescriptions": {
                              "typeIdentifier": null,
                              "typeString": null
                            }
                          }
                        },
                        "id": 23549,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "2764:148:77",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        }
                      },
                      "id": 23550,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "floatDiv",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 24193,
                      "src": "2764:157:77",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_int256_$bound_to$_t_int256_$",
                        "typeString": "function (int256,int256) pure returns (int256)"
                      }
                    },
                    "id": 23552,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2764:170:77",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_int256",
                      "typeString": "int256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "2740:194:77"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "hexValue": "31",
                                "id": 23566,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "3020:1:77",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_1_by_1",
                                  "typeString": "int_const 1"
                                },
                                "value": "1"
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_rational_1_by_1",
                                  "typeString": "int_const 1"
                                }
                              ],
                              "expression": {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "id": 23563,
                                    "name": "d1Year",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 23461,
                                    "src": "3008:6:77",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 23561,
                                    "name": "d2Year",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 23468,
                                    "src": "2997:6:77",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "id": 23562,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "sub",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 38531,
                                  "src": "2997:10:77",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                                    "typeString": "function (uint256,uint256) pure returns (uint256)"
                                  }
                                },
                                "id": 23564,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "2997:18:77",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 23565,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "sub",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 38531,
                              "src": "2997:22:77",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                                "typeString": "function (uint256,uint256) pure returns (uint256)"
                              }
                            },
                            "id": 23567,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "2997:25:77",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "id": 23560,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "2990:6:77",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_int256_$",
                            "typeString": "type(int256)"
                          },
                          "typeName": {
                            "id": 23559,
                            "name": "int256",
                            "nodeType": "ElementaryTypeName",
                            "src": "2990:6:77",
                            "typeDescriptions": {
                              "typeIdentifier": null,
                              "typeString": null
                            }
                          }
                        },
                        "id": 23568,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "2990:33:77",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 23556,
                            "name": "secondFraction",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 23536,
                            "src": "2970:14:77",
                            "typeDescriptions": {
                              "typeIdentifier": "t_int256",
                              "typeString": "int256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_int256",
                              "typeString": "int256"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 23554,
                            "name": "firstFraction",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 23514,
                            "src": "2952:13:77",
                            "typeDescriptions": {
                              "typeIdentifier": "t_int256",
                              "typeString": "int256"
                            }
                          },
                          "id": 23555,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "add",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 38859,
                          "src": "2952:17:77",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_int256_$bound_to$_t_int256_$",
                            "typeString": "function (int256,int256) pure returns (int256)"
                          }
                        },
                        "id": 23557,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "2952:33:77",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        }
                      },
                      "id": 23558,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "add",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 38859,
                      "src": "2952:37:77",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_int256_$bound_to$_t_int256_$",
                        "typeString": "function (int256,int256) pure returns (int256)"
                      }
                    },
                    "id": 23569,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2952:72:77",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_int256",
                      "typeString": "int256"
                    }
                  },
                  "functionReturnParameters": 23459,
                  "id": 23570,
                  "nodeType": "Return",
                  "src": "2945:79:77"
                }
              ]
            },
            "documentation": {
              "id": 23451,
              "nodeType": "StructuredDocumentation",
              "src": "1868:48:77",
              "text": " ISDA A/A day count convention"
            },
            "id": 23572,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "actualActual",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 23456,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23453,
                  "mutability": "mutable",
                  "name": "startTime",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 23572,
                  "src": "1943:17:77",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 23452,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1943:7:77",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 23455,
                  "mutability": "mutable",
                  "name": "endTime",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 23572,
                  "src": "1962:15:77",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 23454,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1962:7:77",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1942:36:77"
            },
            "returnParameters": {
              "id": 23459,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23458,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 23572,
                  "src": "2026:6:77",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_int256",
                    "typeString": "int256"
                  },
                  "typeName": {
                    "id": 23457,
                    "name": "int256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2026:6:77",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int256",
                      "typeString": "int256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2025:8:77"
            },
            "scope": 23895,
            "src": "1921:1110:77",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 23598,
              "nodeType": "Block",
              "src": "3213:83:77",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "components": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "hexValue": "333630",
                            "id": 23594,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "3284:3:77",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_360_by_1",
                              "typeString": "int_const 360"
                            },
                            "value": "360"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_rational_360_by_1",
                              "typeString": "int_const 360"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "hexValue": "3836343030",
                                    "id": 23590,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "number",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "3267:5:77",
                                    "subdenomination": null,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_rational_86400_by_1",
                                      "typeString": "int_const 86400"
                                    },
                                    "value": "86400"
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_rational_86400_by_1",
                                      "typeString": "int_const 86400"
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": null,
                                    "components": [
                                      {
                                        "argumentTypes": null,
                                        "arguments": [
                                          {
                                            "argumentTypes": null,
                                            "id": 23586,
                                            "name": "startTime",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 23575,
                                            "src": "3251:9:77",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_uint256",
                                              "typeString": "uint256"
                                            }
                                          }
                                        ],
                                        "expression": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_uint256",
                                              "typeString": "uint256"
                                            }
                                          ],
                                          "expression": {
                                            "argumentTypes": null,
                                            "id": 23584,
                                            "name": "endTime",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 23577,
                                            "src": "3239:7:77",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_uint256",
                                              "typeString": "uint256"
                                            }
                                          },
                                          "id": 23585,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "memberName": "sub",
                                          "nodeType": "MemberAccess",
                                          "referencedDeclaration": 38531,
                                          "src": "3239:11:77",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                                            "typeString": "function (uint256,uint256) pure returns (uint256)"
                                          }
                                        },
                                        "id": 23587,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "3239:22:77",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      }
                                    ],
                                    "id": 23588,
                                    "isConstant": false,
                                    "isInlineArray": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "nodeType": "TupleExpression",
                                    "src": "3238:24:77",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "id": 23589,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "div",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 38611,
                                  "src": "3238:28:77",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                                    "typeString": "function (uint256,uint256) pure returns (uint256)"
                                  }
                                },
                                "id": 23591,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "3238:35:77",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "id": 23583,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "3231:6:77",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_int256_$",
                                "typeString": "type(int256)"
                              },
                              "typeName": {
                                "id": 23582,
                                "name": "int256",
                                "nodeType": "ElementaryTypeName",
                                "src": "3231:6:77",
                                "typeDescriptions": {
                                  "typeIdentifier": null,
                                  "typeString": null
                                }
                              }
                            },
                            "id": 23592,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "3231:43:77",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_int256",
                              "typeString": "int256"
                            }
                          },
                          "id": 23593,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "floatDiv",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 24193,
                          "src": "3231:52:77",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_int256_$bound_to$_t_int256_$",
                            "typeString": "function (int256,int256) pure returns (int256)"
                          }
                        },
                        "id": 23595,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "3231:57:77",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        }
                      }
                    ],
                    "id": 23596,
                    "isConstant": false,
                    "isInlineArray": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "TupleExpression",
                    "src": "3230:59:77",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int256",
                      "typeString": "int256"
                    }
                  },
                  "functionReturnParameters": 23581,
                  "id": 23597,
                  "nodeType": "Return",
                  "src": "3223:66:77"
                }
              ]
            },
            "documentation": {
              "id": 23573,
              "nodeType": "StructuredDocumentation",
              "src": "3037:50:77",
              "text": " ISDA A/360 day count convention"
            },
            "id": 23599,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "actualThreeSixty",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 23578,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23575,
                  "mutability": "mutable",
                  "name": "startTime",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 23599,
                  "src": "3118:17:77",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 23574,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3118:7:77",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 23577,
                  "mutability": "mutable",
                  "name": "endTime",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 23599,
                  "src": "3137:15:77",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 23576,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3137:7:77",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3117:36:77"
            },
            "returnParameters": {
              "id": 23581,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23580,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 23599,
                  "src": "3201:6:77",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_int256",
                    "typeString": "int256"
                  },
                  "typeName": {
                    "id": 23579,
                    "name": "int256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3201:6:77",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int256",
                      "typeString": "int256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3200:8:77"
            },
            "scope": 23895,
            "src": "3092:204:77",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 23625,
              "nodeType": "Block",
              "src": "3488:83:77",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "components": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "hexValue": "333635",
                            "id": 23621,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "3559:3:77",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_365_by_1",
                              "typeString": "int_const 365"
                            },
                            "value": "365"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_rational_365_by_1",
                              "typeString": "int_const 365"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "hexValue": "3836343030",
                                    "id": 23617,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "number",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "3542:5:77",
                                    "subdenomination": null,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_rational_86400_by_1",
                                      "typeString": "int_const 86400"
                                    },
                                    "value": "86400"
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_rational_86400_by_1",
                                      "typeString": "int_const 86400"
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": null,
                                    "components": [
                                      {
                                        "argumentTypes": null,
                                        "arguments": [
                                          {
                                            "argumentTypes": null,
                                            "id": 23613,
                                            "name": "startTime",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 23602,
                                            "src": "3526:9:77",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_uint256",
                                              "typeString": "uint256"
                                            }
                                          }
                                        ],
                                        "expression": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_uint256",
                                              "typeString": "uint256"
                                            }
                                          ],
                                          "expression": {
                                            "argumentTypes": null,
                                            "id": 23611,
                                            "name": "endTime",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 23604,
                                            "src": "3514:7:77",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_uint256",
                                              "typeString": "uint256"
                                            }
                                          },
                                          "id": 23612,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "memberName": "sub",
                                          "nodeType": "MemberAccess",
                                          "referencedDeclaration": 38531,
                                          "src": "3514:11:77",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                                            "typeString": "function (uint256,uint256) pure returns (uint256)"
                                          }
                                        },
                                        "id": 23614,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "3514:22:77",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      }
                                    ],
                                    "id": 23615,
                                    "isConstant": false,
                                    "isInlineArray": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "nodeType": "TupleExpression",
                                    "src": "3513:24:77",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "id": 23616,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "div",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 38611,
                                  "src": "3513:28:77",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                                    "typeString": "function (uint256,uint256) pure returns (uint256)"
                                  }
                                },
                                "id": 23618,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "3513:35:77",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "id": 23610,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "3506:6:77",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_int256_$",
                                "typeString": "type(int256)"
                              },
                              "typeName": {
                                "id": 23609,
                                "name": "int256",
                                "nodeType": "ElementaryTypeName",
                                "src": "3506:6:77",
                                "typeDescriptions": {
                                  "typeIdentifier": null,
                                  "typeString": null
                                }
                              }
                            },
                            "id": 23619,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "3506:43:77",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_int256",
                              "typeString": "int256"
                            }
                          },
                          "id": 23620,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "floatDiv",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 24193,
                          "src": "3506:52:77",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_int256_$bound_to$_t_int256_$",
                            "typeString": "function (int256,int256) pure returns (int256)"
                          }
                        },
                        "id": 23622,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "3506:57:77",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        }
                      }
                    ],
                    "id": 23623,
                    "isConstant": false,
                    "isInlineArray": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "TupleExpression",
                    "src": "3505:59:77",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int256",
                      "typeString": "int256"
                    }
                  },
                  "functionReturnParameters": 23608,
                  "id": 23624,
                  "nodeType": "Return",
                  "src": "3498:66:77"
                }
              ]
            },
            "documentation": {
              "id": 23600,
              "nodeType": "StructuredDocumentation",
              "src": "3302:56:77",
              "text": " ISDA A/365-Fixed day count convention"
            },
            "id": 23626,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "actualThreeSixtyFive",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 23605,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23602,
                  "mutability": "mutable",
                  "name": "startTime",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 23626,
                  "src": "3393:17:77",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 23601,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3393:7:77",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 23604,
                  "mutability": "mutable",
                  "name": "endTime",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 23626,
                  "src": "3412:15:77",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 23603,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3412:7:77",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3392:36:77"
            },
            "returnParameters": {
              "id": 23608,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23607,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 23626,
                  "src": "3476:6:77",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_int256",
                    "typeString": "int256"
                  },
                  "typeName": {
                    "id": 23606,
                    "name": "int256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3476:6:77",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int256",
                      "typeString": "int256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3475:8:77"
            },
            "scope": 23895,
            "src": "3363:208:77",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 23750,
              "nodeType": "Block",
              "src": "3756:709:77",
              "statements": [
                {
                  "assignments": [
                    23637
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 23637,
                      "mutability": "mutable",
                      "name": "d1Day",
                      "nodeType": "VariableDeclaration",
                      "overrides": null,
                      "scope": 23750,
                      "src": "3766:13:77",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 23636,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "3766:7:77",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 23638,
                  "initialValue": null,
                  "nodeType": "VariableDeclarationStatement",
                  "src": "3766:13:77"
                },
                {
                  "assignments": [
                    23640
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 23640,
                      "mutability": "mutable",
                      "name": "d1Month",
                      "nodeType": "VariableDeclaration",
                      "overrides": null,
                      "scope": 23750,
                      "src": "3789:15:77",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 23639,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "3789:7:77",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 23641,
                  "initialValue": null,
                  "nodeType": "VariableDeclarationStatement",
                  "src": "3789:15:77"
                },
                {
                  "assignments": [
                    23643
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 23643,
                      "mutability": "mutable",
                      "name": "d1Year",
                      "nodeType": "VariableDeclaration",
                      "overrides": null,
                      "scope": 23750,
                      "src": "3814:14:77",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 23642,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "3814:7:77",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 23644,
                  "initialValue": null,
                  "nodeType": "VariableDeclarationStatement",
                  "src": "3814:14:77"
                },
                {
                  "assignments": [
                    23646
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 23646,
                      "mutability": "mutable",
                      "name": "d2Day",
                      "nodeType": "VariableDeclaration",
                      "overrides": null,
                      "scope": 23750,
                      "src": "3839:13:77",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 23645,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "3839:7:77",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 23647,
                  "initialValue": null,
                  "nodeType": "VariableDeclarationStatement",
                  "src": "3839:13:77"
                },
                {
                  "assignments": [
                    23649
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 23649,
                      "mutability": "mutable",
                      "name": "d2Month",
                      "nodeType": "VariableDeclaration",
                      "overrides": null,
                      "scope": 23750,
                      "src": "3862:15:77",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 23648,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "3862:7:77",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 23650,
                  "initialValue": null,
                  "nodeType": "VariableDeclarationStatement",
                  "src": "3862:15:77"
                },
                {
                  "assignments": [
                    23652
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 23652,
                      "mutability": "mutable",
                      "name": "d2Year",
                      "nodeType": "VariableDeclaration",
                      "overrides": null,
                      "scope": 23750,
                      "src": "3887:14:77",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 23651,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "3887:7:77",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 23653,
                  "initialValue": null,
                  "nodeType": "VariableDeclarationStatement",
                  "src": "3887:14:77"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 23662,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "components": [
                        {
                          "argumentTypes": null,
                          "id": 23654,
                          "name": "d1Year",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 23643,
                          "src": "3913:6:77",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 23655,
                          "name": "d1Month",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 23640,
                          "src": "3921:7:77",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 23656,
                          "name": "d1Day",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 23637,
                          "src": "3930:5:77",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "id": 23657,
                      "isConstant": false,
                      "isInlineArray": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "TupleExpression",
                      "src": "3912:24:77",
                      "typeDescriptions": {
                        "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$",
                        "typeString": "tuple(uint256,uint256,uint256)"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 23660,
                          "name": "startTime",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 23629,
                          "src": "3983:9:77",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "id": 23658,
                          "name": "BokkyPooBahsDateTimeLibrary",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 37177,
                          "src": "3939:27:77",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_contract$_BokkyPooBahsDateTimeLibrary_$37177_$",
                            "typeString": "type(library BokkyPooBahsDateTimeLibrary)"
                          }
                        },
                        "id": 23659,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "timestampToDate",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 36063,
                        "src": "3939:43:77",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$_t_uint256_$_t_uint256_$",
                          "typeString": "function (uint256) pure returns (uint256,uint256,uint256)"
                        }
                      },
                      "id": 23661,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "3939:54:77",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$",
                        "typeString": "tuple(uint256,uint256,uint256)"
                      }
                    },
                    "src": "3912:81:77",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 23663,
                  "nodeType": "ExpressionStatement",
                  "src": "3912:81:77"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 23672,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "components": [
                        {
                          "argumentTypes": null,
                          "id": 23664,
                          "name": "d2Year",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 23652,
                          "src": "4004:6:77",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 23665,
                          "name": "d2Month",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 23649,
                          "src": "4012:7:77",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 23666,
                          "name": "d2Day",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 23646,
                          "src": "4021:5:77",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "id": 23667,
                      "isConstant": false,
                      "isInlineArray": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "TupleExpression",
                      "src": "4003:24:77",
                      "typeDescriptions": {
                        "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$",
                        "typeString": "tuple(uint256,uint256,uint256)"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 23670,
                          "name": "endTime",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 23631,
                          "src": "4074:7:77",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "id": 23668,
                          "name": "BokkyPooBahsDateTimeLibrary",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 37177,
                          "src": "4030:27:77",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_contract$_BokkyPooBahsDateTimeLibrary_$37177_$",
                            "typeString": "type(library BokkyPooBahsDateTimeLibrary)"
                          }
                        },
                        "id": 23669,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "timestampToDate",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 36063,
                        "src": "4030:43:77",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$_t_uint256_$_t_uint256_$",
                          "typeString": "function (uint256) pure returns (uint256,uint256,uint256)"
                        }
                      },
                      "id": 23671,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "4030:52:77",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$",
                        "typeString": "tuple(uint256,uint256,uint256)"
                      }
                    },
                    "src": "4003:79:77",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 23673,
                  "nodeType": "ExpressionStatement",
                  "src": "4003:79:77"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 23676,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 23674,
                      "name": "d1Day",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 23637,
                      "src": "4097:5:77",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "argumentTypes": null,
                      "hexValue": "3331",
                      "id": 23675,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "4106:2:77",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_31_by_1",
                        "typeString": "int_const 31"
                      },
                      "value": "31"
                    },
                    "src": "4097:11:77",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 23682,
                  "nodeType": "IfStatement",
                  "src": "4093:52:77",
                  "trueBody": {
                    "id": 23681,
                    "nodeType": "Block",
                    "src": "4110:35:77",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 23679,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 23677,
                            "name": "d1Day",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 23637,
                            "src": "4124:5:77",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "hexValue": "3330",
                            "id": 23678,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "4132:2:77",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_30_by_1",
                              "typeString": "int_const 30"
                            },
                            "value": "30"
                          },
                          "src": "4124:10:77",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 23680,
                        "nodeType": "ExpressionStatement",
                        "src": "4124:10:77"
                      }
                    ]
                  }
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 23685,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 23683,
                      "name": "d2Day",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 23646,
                      "src": "4159:5:77",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "argumentTypes": null,
                      "hexValue": "3331",
                      "id": 23684,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "4168:2:77",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_31_by_1",
                        "typeString": "int_const 31"
                      },
                      "value": "31"
                    },
                    "src": "4159:11:77",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 23691,
                  "nodeType": "IfStatement",
                  "src": "4155:52:77",
                  "trueBody": {
                    "id": 23690,
                    "nodeType": "Block",
                    "src": "4172:35:77",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 23688,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 23686,
                            "name": "d2Day",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 23646,
                            "src": "4186:5:77",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "hexValue": "3330",
                            "id": 23687,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "4194:2:77",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_30_by_1",
                              "typeString": "int_const 30"
                            },
                            "value": "30"
                          },
                          "src": "4186:10:77",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 23689,
                        "nodeType": "ExpressionStatement",
                        "src": "4186:10:77"
                      }
                    ]
                  }
                },
                {
                  "assignments": [
                    23693
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 23693,
                      "mutability": "mutable",
                      "name": "delD",
                      "nodeType": "VariableDeclaration",
                      "overrides": null,
                      "scope": 23750,
                      "src": "4217:11:77",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int256",
                        "typeString": "int256"
                      },
                      "typeName": {
                        "id": 23692,
                        "name": "int256",
                        "nodeType": "ElementaryTypeName",
                        "src": "4217:6:77",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 23704,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 23701,
                            "name": "d1Day",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 23637,
                            "src": "4256:5:77",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "id": 23700,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "4249:6:77",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_int256_$",
                            "typeString": "type(int256)"
                          },
                          "typeName": {
                            "id": 23699,
                            "name": "int256",
                            "nodeType": "ElementaryTypeName",
                            "src": "4249:6:77",
                            "typeDescriptions": {
                              "typeIdentifier": null,
                              "typeString": null
                            }
                          }
                        },
                        "id": 23702,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "4249:13:77",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 23696,
                            "name": "d2Day",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 23646,
                            "src": "4238:5:77",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "id": 23695,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "4231:6:77",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_int256_$",
                            "typeString": "type(int256)"
                          },
                          "typeName": {
                            "id": 23694,
                            "name": "int256",
                            "nodeType": "ElementaryTypeName",
                            "src": "4231:6:77",
                            "typeDescriptions": {
                              "typeIdentifier": null,
                              "typeString": null
                            }
                          }
                        },
                        "id": 23697,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "4231:13:77",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        }
                      },
                      "id": 23698,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "sub",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 38819,
                      "src": "4231:17:77",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_int256_$bound_to$_t_int256_$",
                        "typeString": "function (int256,int256) pure returns (int256)"
                      }
                    },
                    "id": 23703,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4231:32:77",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_int256",
                      "typeString": "int256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "4217:46:77"
                },
                {
                  "assignments": [
                    23706
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 23706,
                      "mutability": "mutable",
                      "name": "delM",
                      "nodeType": "VariableDeclaration",
                      "overrides": null,
                      "scope": 23750,
                      "src": "4273:11:77",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int256",
                        "typeString": "int256"
                      },
                      "typeName": {
                        "id": 23705,
                        "name": "int256",
                        "nodeType": "ElementaryTypeName",
                        "src": "4273:6:77",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 23717,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 23714,
                            "name": "d1Month",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 23640,
                            "src": "4314:7:77",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "id": 23713,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "4307:6:77",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_int256_$",
                            "typeString": "type(int256)"
                          },
                          "typeName": {
                            "id": 23712,
                            "name": "int256",
                            "nodeType": "ElementaryTypeName",
                            "src": "4307:6:77",
                            "typeDescriptions": {
                              "typeIdentifier": null,
                              "typeString": null
                            }
                          }
                        },
                        "id": 23715,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "4307:15:77",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 23709,
                            "name": "d2Month",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 23649,
                            "src": "4294:7:77",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "id": 23708,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "4287:6:77",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_int256_$",
                            "typeString": "type(int256)"
                          },
                          "typeName": {
                            "id": 23707,
                            "name": "int256",
                            "nodeType": "ElementaryTypeName",
                            "src": "4287:6:77",
                            "typeDescriptions": {
                              "typeIdentifier": null,
                              "typeString": null
                            }
                          }
                        },
                        "id": 23710,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "4287:15:77",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        }
                      },
                      "id": 23711,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "sub",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 38819,
                      "src": "4287:19:77",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_int256_$bound_to$_t_int256_$",
                        "typeString": "function (int256,int256) pure returns (int256)"
                      }
                    },
                    "id": 23716,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4287:36:77",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_int256",
                      "typeString": "int256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "4273:50:77"
                },
                {
                  "assignments": [
                    23719
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 23719,
                      "mutability": "mutable",
                      "name": "delY",
                      "nodeType": "VariableDeclaration",
                      "overrides": null,
                      "scope": 23750,
                      "src": "4333:11:77",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int256",
                        "typeString": "int256"
                      },
                      "typeName": {
                        "id": 23718,
                        "name": "int256",
                        "nodeType": "ElementaryTypeName",
                        "src": "4333:6:77",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 23730,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 23727,
                            "name": "d1Year",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 23643,
                            "src": "4373:6:77",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "id": 23726,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "4366:6:77",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_int256_$",
                            "typeString": "type(int256)"
                          },
                          "typeName": {
                            "id": 23725,
                            "name": "int256",
                            "nodeType": "ElementaryTypeName",
                            "src": "4366:6:77",
                            "typeDescriptions": {
                              "typeIdentifier": null,
                              "typeString": null
                            }
                          }
                        },
                        "id": 23728,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "4366:14:77",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 23722,
                            "name": "d2Year",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 23652,
                            "src": "4354:6:77",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "id": 23721,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "4347:6:77",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_int256_$",
                            "typeString": "type(int256)"
                          },
                          "typeName": {
                            "id": 23720,
                            "name": "int256",
                            "nodeType": "ElementaryTypeName",
                            "src": "4347:6:77",
                            "typeDescriptions": {
                              "typeIdentifier": null,
                              "typeString": null
                            }
                          }
                        },
                        "id": 23723,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "4347:14:77",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        }
                      },
                      "id": 23724,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "sub",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 38819,
                      "src": "4347:18:77",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_int256_$bound_to$_t_int256_$",
                        "typeString": "function (int256,int256) pure returns (int256)"
                      }
                    },
                    "id": 23729,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4347:34:77",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_int256",
                      "typeString": "int256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "4333:48:77"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "components": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "hexValue": "333630",
                            "id": 23746,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "4453:3:77",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_360_by_1",
                              "typeString": "int_const 360"
                            },
                            "value": "360"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_rational_360_by_1",
                              "typeString": "int_const 360"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "components": [
                              {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "id": 23742,
                                    "name": "delD",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 23693,
                                    "src": "4437:4:77",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_int256",
                                      "typeString": "int256"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_int256",
                                      "typeString": "int256"
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": null,
                                    "arguments": [
                                      {
                                        "argumentTypes": null,
                                        "arguments": [
                                          {
                                            "argumentTypes": null,
                                            "hexValue": "3330",
                                            "id": 23738,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "number",
                                            "lValueRequested": false,
                                            "nodeType": "Literal",
                                            "src": "4428:2:77",
                                            "subdenomination": null,
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_rational_30_by_1",
                                              "typeString": "int_const 30"
                                            },
                                            "value": "30"
                                          }
                                        ],
                                        "expression": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_rational_30_by_1",
                                              "typeString": "int_const 30"
                                            }
                                          ],
                                          "expression": {
                                            "argumentTypes": null,
                                            "id": 23736,
                                            "name": "delM",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 23706,
                                            "src": "4419:4:77",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_int256",
                                              "typeString": "int256"
                                            }
                                          },
                                          "id": 23737,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "memberName": "mul",
                                          "nodeType": "MemberAccess",
                                          "referencedDeclaration": 38739,
                                          "src": "4419:8:77",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_int256_$bound_to$_t_int256_$",
                                            "typeString": "function (int256,int256) pure returns (int256)"
                                          }
                                        },
                                        "id": 23739,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "4419:12:77",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_int256",
                                          "typeString": "int256"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_int256",
                                          "typeString": "int256"
                                        }
                                      ],
                                      "expression": {
                                        "argumentTypes": null,
                                        "arguments": [
                                          {
                                            "argumentTypes": null,
                                            "hexValue": "333630",
                                            "id": 23733,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "number",
                                            "lValueRequested": false,
                                            "nodeType": "Literal",
                                            "src": "4410:3:77",
                                            "subdenomination": null,
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_rational_360_by_1",
                                              "typeString": "int_const 360"
                                            },
                                            "value": "360"
                                          }
                                        ],
                                        "expression": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_rational_360_by_1",
                                              "typeString": "int_const 360"
                                            }
                                          ],
                                          "expression": {
                                            "argumentTypes": null,
                                            "id": 23731,
                                            "name": "delY",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 23719,
                                            "src": "4401:4:77",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_int256",
                                              "typeString": "int256"
                                            }
                                          },
                                          "id": 23732,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "memberName": "mul",
                                          "nodeType": "MemberAccess",
                                          "referencedDeclaration": 38739,
                                          "src": "4401:8:77",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_int256_$bound_to$_t_int256_$",
                                            "typeString": "function (int256,int256) pure returns (int256)"
                                          }
                                        },
                                        "id": 23734,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "4401:13:77",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_int256",
                                          "typeString": "int256"
                                        }
                                      },
                                      "id": 23735,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "memberName": "add",
                                      "nodeType": "MemberAccess",
                                      "referencedDeclaration": 38859,
                                      "src": "4401:17:77",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_int256_$bound_to$_t_int256_$",
                                        "typeString": "function (int256,int256) pure returns (int256)"
                                      }
                                    },
                                    "id": 23740,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "functionCall",
                                    "lValueRequested": false,
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "4401:31:77",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_int256",
                                      "typeString": "int256"
                                    }
                                  },
                                  "id": 23741,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "add",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 38859,
                                  "src": "4401:35:77",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_int256_$bound_to$_t_int256_$",
                                    "typeString": "function (int256,int256) pure returns (int256)"
                                  }
                                },
                                "id": 23743,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "4401:41:77",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_int256",
                                  "typeString": "int256"
                                }
                              }
                            ],
                            "id": 23744,
                            "isConstant": false,
                            "isInlineArray": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "TupleExpression",
                            "src": "4400:43:77",
                            "typeDescriptions": {
                              "typeIdentifier": "t_int256",
                              "typeString": "int256"
                            }
                          },
                          "id": 23745,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "floatDiv",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 24193,
                          "src": "4400:52:77",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_int256_$bound_to$_t_int256_$",
                            "typeString": "function (int256,int256) pure returns (int256)"
                          }
                        },
                        "id": 23747,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "4400:57:77",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        }
                      }
                    ],
                    "id": 23748,
                    "isConstant": false,
                    "isInlineArray": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "TupleExpression",
                    "src": "4399:59:77",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int256",
                      "typeString": "int256"
                    }
                  },
                  "functionReturnParameters": 23635,
                  "id": 23749,
                  "nodeType": "Return",
                  "src": "4392:66:77"
                }
              ]
            },
            "documentation": {
              "id": 23627,
              "nodeType": "StructuredDocumentation",
              "src": "3577:52:77",
              "text": " ISDA 30E/360 day count convention"
            },
            "id": 23751,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "thirtyEThreeSixty",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 23632,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23629,
                  "mutability": "mutable",
                  "name": "startTime",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 23751,
                  "src": "3661:17:77",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 23628,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3661:7:77",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 23631,
                  "mutability": "mutable",
                  "name": "endTime",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 23751,
                  "src": "3680:15:77",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 23630,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3680:7:77",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3660:36:77"
            },
            "returnParameters": {
              "id": 23635,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23634,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 23751,
                  "src": "3744:6:77",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_int256",
                    "typeString": "int256"
                  },
                  "typeName": {
                    "id": 23633,
                    "name": "int256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3744:6:77",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int256",
                      "typeString": "int256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3743:8:77"
            },
            "scope": 23895,
            "src": "3634:831:77",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 23893,
              "nodeType": "Block",
              "src": "4681:855:77",
              "statements": [
                {
                  "assignments": [
                    23764
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 23764,
                      "mutability": "mutable",
                      "name": "d1Day",
                      "nodeType": "VariableDeclaration",
                      "overrides": null,
                      "scope": 23893,
                      "src": "4691:13:77",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 23763,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "4691:7:77",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 23765,
                  "initialValue": null,
                  "nodeType": "VariableDeclarationStatement",
                  "src": "4691:13:77"
                },
                {
                  "assignments": [
                    23767
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 23767,
                      "mutability": "mutable",
                      "name": "d1Month",
                      "nodeType": "VariableDeclaration",
                      "overrides": null,
                      "scope": 23893,
                      "src": "4714:15:77",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 23766,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "4714:7:77",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 23768,
                  "initialValue": null,
                  "nodeType": "VariableDeclarationStatement",
                  "src": "4714:15:77"
                },
                {
                  "assignments": [
                    23770
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 23770,
                      "mutability": "mutable",
                      "name": "d1Year",
                      "nodeType": "VariableDeclaration",
                      "overrides": null,
                      "scope": 23893,
                      "src": "4739:14:77",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 23769,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "4739:7:77",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 23771,
                  "initialValue": null,
                  "nodeType": "VariableDeclarationStatement",
                  "src": "4739:14:77"
                },
                {
                  "assignments": [
                    23773
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 23773,
                      "mutability": "mutable",
                      "name": "d2Day",
                      "nodeType": "VariableDeclaration",
                      "overrides": null,
                      "scope": 23893,
                      "src": "4764:13:77",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 23772,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "4764:7:77",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 23774,
                  "initialValue": null,
                  "nodeType": "VariableDeclarationStatement",
                  "src": "4764:13:77"
                },
                {
                  "assignments": [
                    23776
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 23776,
                      "mutability": "mutable",
                      "name": "d2Month",
                      "nodeType": "VariableDeclaration",
                      "overrides": null,
                      "scope": 23893,
                      "src": "4787:15:77",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 23775,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "4787:7:77",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 23777,
                  "initialValue": null,
                  "nodeType": "VariableDeclarationStatement",
                  "src": "4787:15:77"
                },
                {
                  "assignments": [
                    23779
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 23779,
                      "mutability": "mutable",
                      "name": "d2Year",
                      "nodeType": "VariableDeclaration",
                      "overrides": null,
                      "scope": 23893,
                      "src": "4812:14:77",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 23778,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "4812:7:77",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 23780,
                  "initialValue": null,
                  "nodeType": "VariableDeclarationStatement",
                  "src": "4812:14:77"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 23789,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "components": [
                        {
                          "argumentTypes": null,
                          "id": 23781,
                          "name": "d1Year",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 23770,
                          "src": "4838:6:77",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 23782,
                          "name": "d1Month",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 23767,
                          "src": "4846:7:77",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 23783,
                          "name": "d1Day",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 23764,
                          "src": "4855:5:77",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "id": 23784,
                      "isConstant": false,
                      "isInlineArray": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "TupleExpression",
                      "src": "4837:24:77",
                      "typeDescriptions": {
                        "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$",
                        "typeString": "tuple(uint256,uint256,uint256)"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 23787,
                          "name": "startTime",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 23754,
                          "src": "4908:9:77",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "id": 23785,
                          "name": "BokkyPooBahsDateTimeLibrary",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 37177,
                          "src": "4864:27:77",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_contract$_BokkyPooBahsDateTimeLibrary_$37177_$",
                            "typeString": "type(library BokkyPooBahsDateTimeLibrary)"
                          }
                        },
                        "id": 23786,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "timestampToDate",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 36063,
                        "src": "4864:43:77",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$_t_uint256_$_t_uint256_$",
                          "typeString": "function (uint256) pure returns (uint256,uint256,uint256)"
                        }
                      },
                      "id": 23788,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "4864:54:77",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$",
                        "typeString": "tuple(uint256,uint256,uint256)"
                      }
                    },
                    "src": "4837:81:77",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 23790,
                  "nodeType": "ExpressionStatement",
                  "src": "4837:81:77"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 23799,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "components": [
                        {
                          "argumentTypes": null,
                          "id": 23791,
                          "name": "d2Year",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 23779,
                          "src": "4929:6:77",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 23792,
                          "name": "d2Month",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 23776,
                          "src": "4937:7:77",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 23793,
                          "name": "d2Day",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 23773,
                          "src": "4946:5:77",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "id": 23794,
                      "isConstant": false,
                      "isInlineArray": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "TupleExpression",
                      "src": "4928:24:77",
                      "typeDescriptions": {
                        "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$",
                        "typeString": "tuple(uint256,uint256,uint256)"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 23797,
                          "name": "endTime",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 23756,
                          "src": "4999:7:77",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "id": 23795,
                          "name": "BokkyPooBahsDateTimeLibrary",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 37177,
                          "src": "4955:27:77",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_contract$_BokkyPooBahsDateTimeLibrary_$37177_$",
                            "typeString": "type(library BokkyPooBahsDateTimeLibrary)"
                          }
                        },
                        "id": 23796,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "timestampToDate",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 36063,
                        "src": "4955:43:77",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$_t_uint256_$_t_uint256_$",
                          "typeString": "function (uint256) pure returns (uint256,uint256,uint256)"
                        }
                      },
                      "id": 23798,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "4955:52:77",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$",
                        "typeString": "tuple(uint256,uint256,uint256)"
                      }
                    },
                    "src": "4928:79:77",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 23800,
                  "nodeType": "ExpressionStatement",
                  "src": "4928:79:77"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 23806,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 23801,
                      "name": "d1Day",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 23764,
                      "src": "5022:5:77",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 23804,
                          "name": "startTime",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 23754,
                          "src": "5074:9:77",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "id": 23802,
                          "name": "BokkyPooBahsDateTimeLibrary",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 37177,
                          "src": "5031:27:77",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_contract$_BokkyPooBahsDateTimeLibrary_$37177_$",
                            "typeString": "type(library BokkyPooBahsDateTimeLibrary)"
                          }
                        },
                        "id": 23803,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "getDaysInMonth",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 36320,
                        "src": "5031:42:77",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$",
                          "typeString": "function (uint256) pure returns (uint256)"
                        }
                      },
                      "id": 23805,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "5031:53:77",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "5022:62:77",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 23812,
                  "nodeType": "IfStatement",
                  "src": "5018:103:77",
                  "trueBody": {
                    "id": 23811,
                    "nodeType": "Block",
                    "src": "5086:35:77",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 23809,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 23807,
                            "name": "d1Day",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 23764,
                            "src": "5100:5:77",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "hexValue": "3330",
                            "id": 23808,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "5108:2:77",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_30_by_1",
                              "typeString": "int_const 30"
                            },
                            "value": "30"
                          },
                          "src": "5100:10:77",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 23810,
                        "nodeType": "ExpressionStatement",
                        "src": "5100:10:77"
                      }
                    ]
                  }
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    },
                    "id": 23828,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 23821,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "!",
                      "prefix": true,
                      "src": "5135:42:77",
                      "subExpression": {
                        "argumentTypes": null,
                        "components": [
                          {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            },
                            "id": 23819,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "id": 23815,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "argumentTypes": null,
                                "id": 23813,
                                "name": "endTime",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 23756,
                                "src": "5137:7:77",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "==",
                              "rightExpression": {
                                "argumentTypes": null,
                                "id": 23814,
                                "name": "maturityDate",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 23758,
                                "src": "5148:12:77",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "src": "5137:23:77",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "&&",
                            "rightExpression": {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "id": 23818,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "argumentTypes": null,
                                "id": 23816,
                                "name": "d2Month",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 23776,
                                "src": "5164:7:77",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "==",
                              "rightExpression": {
                                "argumentTypes": null,
                                "hexValue": "32",
                                "id": 23817,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "5175:1:77",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_2_by_1",
                                  "typeString": "int_const 2"
                                },
                                "value": "2"
                              },
                              "src": "5164:12:77",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            "src": "5137:39:77",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          }
                        ],
                        "id": 23820,
                        "isConstant": false,
                        "isInlineArray": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "TupleExpression",
                        "src": "5136:41:77",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "&&",
                    "rightExpression": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "id": 23827,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "id": 23822,
                        "name": "d2Day",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 23773,
                        "src": "5181:5:77",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "==",
                      "rightExpression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 23825,
                            "name": "endTime",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 23756,
                            "src": "5233:7:77",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 23823,
                            "name": "BokkyPooBahsDateTimeLibrary",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 37177,
                            "src": "5190:27:77",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_contract$_BokkyPooBahsDateTimeLibrary_$37177_$",
                              "typeString": "type(library BokkyPooBahsDateTimeLibrary)"
                            }
                          },
                          "id": 23824,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "getDaysInMonth",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 36320,
                          "src": "5190:42:77",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$",
                            "typeString": "function (uint256) pure returns (uint256)"
                          }
                        },
                        "id": 23826,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "5190:51:77",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "src": "5181:60:77",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "5135:106:77",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 23834,
                  "nodeType": "IfStatement",
                  "src": "5131:147:77",
                  "trueBody": {
                    "id": 23833,
                    "nodeType": "Block",
                    "src": "5243:35:77",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 23831,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 23829,
                            "name": "d2Day",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 23773,
                            "src": "5257:5:77",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "hexValue": "3330",
                            "id": 23830,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "5265:2:77",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_30_by_1",
                              "typeString": "int_const 30"
                            },
                            "value": "30"
                          },
                          "src": "5257:10:77",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 23832,
                        "nodeType": "ExpressionStatement",
                        "src": "5257:10:77"
                      }
                    ]
                  }
                },
                {
                  "assignments": [
                    23836
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 23836,
                      "mutability": "mutable",
                      "name": "delD",
                      "nodeType": "VariableDeclaration",
                      "overrides": null,
                      "scope": 23893,
                      "src": "5288:11:77",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int256",
                        "typeString": "int256"
                      },
                      "typeName": {
                        "id": 23835,
                        "name": "int256",
                        "nodeType": "ElementaryTypeName",
                        "src": "5288:6:77",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 23847,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 23844,
                            "name": "d1Day",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 23764,
                            "src": "5327:5:77",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "id": 23843,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "5320:6:77",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_int256_$",
                            "typeString": "type(int256)"
                          },
                          "typeName": {
                            "id": 23842,
                            "name": "int256",
                            "nodeType": "ElementaryTypeName",
                            "src": "5320:6:77",
                            "typeDescriptions": {
                              "typeIdentifier": null,
                              "typeString": null
                            }
                          }
                        },
                        "id": 23845,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "5320:13:77",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 23839,
                            "name": "d2Day",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 23773,
                            "src": "5309:5:77",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "id": 23838,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "5302:6:77",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_int256_$",
                            "typeString": "type(int256)"
                          },
                          "typeName": {
                            "id": 23837,
                            "name": "int256",
                            "nodeType": "ElementaryTypeName",
                            "src": "5302:6:77",
                            "typeDescriptions": {
                              "typeIdentifier": null,
                              "typeString": null
                            }
                          }
                        },
                        "id": 23840,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "5302:13:77",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        }
                      },
                      "id": 23841,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "sub",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 38819,
                      "src": "5302:17:77",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_int256_$bound_to$_t_int256_$",
                        "typeString": "function (int256,int256) pure returns (int256)"
                      }
                    },
                    "id": 23846,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5302:32:77",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_int256",
                      "typeString": "int256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "5288:46:77"
                },
                {
                  "assignments": [
                    23849
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 23849,
                      "mutability": "mutable",
                      "name": "delM",
                      "nodeType": "VariableDeclaration",
                      "overrides": null,
                      "scope": 23893,
                      "src": "5344:11:77",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int256",
                        "typeString": "int256"
                      },
                      "typeName": {
                        "id": 23848,
                        "name": "int256",
                        "nodeType": "ElementaryTypeName",
                        "src": "5344:6:77",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 23860,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 23857,
                            "name": "d1Month",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 23767,
                            "src": "5385:7:77",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "id": 23856,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "5378:6:77",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_int256_$",
                            "typeString": "type(int256)"
                          },
                          "typeName": {
                            "id": 23855,
                            "name": "int256",
                            "nodeType": "ElementaryTypeName",
                            "src": "5378:6:77",
                            "typeDescriptions": {
                              "typeIdentifier": null,
                              "typeString": null
                            }
                          }
                        },
                        "id": 23858,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "5378:15:77",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 23852,
                            "name": "d2Month",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 23776,
                            "src": "5365:7:77",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "id": 23851,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "5358:6:77",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_int256_$",
                            "typeString": "type(int256)"
                          },
                          "typeName": {
                            "id": 23850,
                            "name": "int256",
                            "nodeType": "ElementaryTypeName",
                            "src": "5358:6:77",
                            "typeDescriptions": {
                              "typeIdentifier": null,
                              "typeString": null
                            }
                          }
                        },
                        "id": 23853,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "5358:15:77",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        }
                      },
                      "id": 23854,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "sub",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 38819,
                      "src": "5358:19:77",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_int256_$bound_to$_t_int256_$",
                        "typeString": "function (int256,int256) pure returns (int256)"
                      }
                    },
                    "id": 23859,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5358:36:77",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_int256",
                      "typeString": "int256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "5344:50:77"
                },
                {
                  "assignments": [
                    23862
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 23862,
                      "mutability": "mutable",
                      "name": "delY",
                      "nodeType": "VariableDeclaration",
                      "overrides": null,
                      "scope": 23893,
                      "src": "5404:11:77",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int256",
                        "typeString": "int256"
                      },
                      "typeName": {
                        "id": 23861,
                        "name": "int256",
                        "nodeType": "ElementaryTypeName",
                        "src": "5404:6:77",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 23873,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 23870,
                            "name": "d1Year",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 23770,
                            "src": "5444:6:77",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "id": 23869,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "5437:6:77",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_int256_$",
                            "typeString": "type(int256)"
                          },
                          "typeName": {
                            "id": 23868,
                            "name": "int256",
                            "nodeType": "ElementaryTypeName",
                            "src": "5437:6:77",
                            "typeDescriptions": {
                              "typeIdentifier": null,
                              "typeString": null
                            }
                          }
                        },
                        "id": 23871,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "5437:14:77",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 23865,
                            "name": "d2Year",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 23779,
                            "src": "5425:6:77",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "id": 23864,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "5418:6:77",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_int256_$",
                            "typeString": "type(int256)"
                          },
                          "typeName": {
                            "id": 23863,
                            "name": "int256",
                            "nodeType": "ElementaryTypeName",
                            "src": "5418:6:77",
                            "typeDescriptions": {
                              "typeIdentifier": null,
                              "typeString": null
                            }
                          }
                        },
                        "id": 23866,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "5418:14:77",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        }
                      },
                      "id": 23867,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "sub",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 38819,
                      "src": "5418:18:77",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_int256_$bound_to$_t_int256_$",
                        "typeString": "function (int256,int256) pure returns (int256)"
                      }
                    },
                    "id": 23872,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5418:34:77",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_int256",
                      "typeString": "int256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "5404:48:77"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "components": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "hexValue": "333630",
                            "id": 23889,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "5524:3:77",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_360_by_1",
                              "typeString": "int_const 360"
                            },
                            "value": "360"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_rational_360_by_1",
                              "typeString": "int_const 360"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "components": [
                              {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "id": 23885,
                                    "name": "delD",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 23836,
                                    "src": "5508:4:77",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_int256",
                                      "typeString": "int256"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_int256",
                                      "typeString": "int256"
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": null,
                                    "arguments": [
                                      {
                                        "argumentTypes": null,
                                        "arguments": [
                                          {
                                            "argumentTypes": null,
                                            "hexValue": "3330",
                                            "id": 23881,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "number",
                                            "lValueRequested": false,
                                            "nodeType": "Literal",
                                            "src": "5499:2:77",
                                            "subdenomination": null,
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_rational_30_by_1",
                                              "typeString": "int_const 30"
                                            },
                                            "value": "30"
                                          }
                                        ],
                                        "expression": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_rational_30_by_1",
                                              "typeString": "int_const 30"
                                            }
                                          ],
                                          "expression": {
                                            "argumentTypes": null,
                                            "id": 23879,
                                            "name": "delM",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 23849,
                                            "src": "5490:4:77",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_int256",
                                              "typeString": "int256"
                                            }
                                          },
                                          "id": 23880,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "memberName": "mul",
                                          "nodeType": "MemberAccess",
                                          "referencedDeclaration": 38739,
                                          "src": "5490:8:77",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_int256_$bound_to$_t_int256_$",
                                            "typeString": "function (int256,int256) pure returns (int256)"
                                          }
                                        },
                                        "id": 23882,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "5490:12:77",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_int256",
                                          "typeString": "int256"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_int256",
                                          "typeString": "int256"
                                        }
                                      ],
                                      "expression": {
                                        "argumentTypes": null,
                                        "arguments": [
                                          {
                                            "argumentTypes": null,
                                            "hexValue": "333630",
                                            "id": 23876,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "number",
                                            "lValueRequested": false,
                                            "nodeType": "Literal",
                                            "src": "5481:3:77",
                                            "subdenomination": null,
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_rational_360_by_1",
                                              "typeString": "int_const 360"
                                            },
                                            "value": "360"
                                          }
                                        ],
                                        "expression": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_rational_360_by_1",
                                              "typeString": "int_const 360"
                                            }
                                          ],
                                          "expression": {
                                            "argumentTypes": null,
                                            "id": 23874,
                                            "name": "delY",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 23862,
                                            "src": "5472:4:77",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_int256",
                                              "typeString": "int256"
                                            }
                                          },
                                          "id": 23875,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "memberName": "mul",
                                          "nodeType": "MemberAccess",
                                          "referencedDeclaration": 38739,
                                          "src": "5472:8:77",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_int256_$bound_to$_t_int256_$",
                                            "typeString": "function (int256,int256) pure returns (int256)"
                                          }
                                        },
                                        "id": 23877,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "5472:13:77",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_int256",
                                          "typeString": "int256"
                                        }
                                      },
                                      "id": 23878,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "memberName": "add",
                                      "nodeType": "MemberAccess",
                                      "referencedDeclaration": 38859,
                                      "src": "5472:17:77",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_int256_$bound_to$_t_int256_$",
                                        "typeString": "function (int256,int256) pure returns (int256)"
                                      }
                                    },
                                    "id": 23883,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "functionCall",
                                    "lValueRequested": false,
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "5472:31:77",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_int256",
                                      "typeString": "int256"
                                    }
                                  },
                                  "id": 23884,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "add",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 38859,
                                  "src": "5472:35:77",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_int256_$bound_to$_t_int256_$",
                                    "typeString": "function (int256,int256) pure returns (int256)"
                                  }
                                },
                                "id": 23886,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "5472:41:77",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_int256",
                                  "typeString": "int256"
                                }
                              }
                            ],
                            "id": 23887,
                            "isConstant": false,
                            "isInlineArray": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "TupleExpression",
                            "src": "5471:43:77",
                            "typeDescriptions": {
                              "typeIdentifier": "t_int256",
                              "typeString": "int256"
                            }
                          },
                          "id": 23888,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "floatDiv",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 24193,
                          "src": "5471:52:77",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_int256_$bound_to$_t_int256_$",
                            "typeString": "function (int256,int256) pure returns (int256)"
                          }
                        },
                        "id": 23890,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "5471:57:77",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        }
                      }
                    ],
                    "id": 23891,
                    "isConstant": false,
                    "isInlineArray": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "TupleExpression",
                    "src": "5470:59:77",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int256",
                      "typeString": "int256"
                    }
                  },
                  "functionReturnParameters": 23762,
                  "id": 23892,
                  "nodeType": "Return",
                  "src": "5463:66:77"
                }
              ]
            },
            "documentation": {
              "id": 23752,
              "nodeType": "StructuredDocumentation",
              "src": "4471:57:77",
              "text": " ISDA 30E/360-ISDA day count convention"
            },
            "id": 23894,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "thirtyEThreeSixtyISDA",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 23759,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23754,
                  "mutability": "mutable",
                  "name": "startTime",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 23894,
                  "src": "4564:17:77",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 23753,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "4564:7:77",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 23756,
                  "mutability": "mutable",
                  "name": "endTime",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 23894,
                  "src": "4583:15:77",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 23755,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "4583:7:77",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 23758,
                  "mutability": "mutable",
                  "name": "maturityDate",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 23894,
                  "src": "4600:20:77",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 23757,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "4600:7:77",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4563:58:77"
            },
            "returnParameters": {
              "id": 23762,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23761,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 23894,
                  "src": "4669:6:77",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_int256",
                    "typeString": "int256"
                  },
                  "typeName": {
                    "id": 23760,
                    "name": "int256",
                    "nodeType": "ElementaryTypeName",
                    "src": "4669:6:77",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int256",
                      "typeString": "int256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4668:8:77"
            },
            "scope": 23895,
            "src": "4533:1003:77",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          }
        ],
        "scope": 23896,
        "src": "438:5100:77"
      }
    ],
    "src": "41:5497:77"
  },
  "legacyAST": {
    "absolutePath": "@atpar/actus-solidity/contracts/Core/Conventions/DayCountConventions.sol",
    "exportedSymbols": {
      "DayCountConventions": [
        23895
      ]
    },
    "id": 23896,
    "license": "Apache-2.0",
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 23342,
        "literals": [
          "solidity",
          "^",
          "0.6",
          ".11"
        ],
        "nodeType": "PragmaDirective",
        "src": "41:24:77"
      },
      {
        "absolutePath": "openzeppelin-solidity/contracts/math/SafeMath.sol",
        "file": "openzeppelin-solidity/contracts/math/SafeMath.sol",
        "id": 23343,
        "nodeType": "ImportDirective",
        "scope": 23896,
        "sourceUnit": 38682,
        "src": "67:59:77",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "openzeppelin-solidity/contracts/math/SignedSafeMath.sol",
        "file": "openzeppelin-solidity/contracts/math/SignedSafeMath.sol",
        "id": 23344,
        "nodeType": "ImportDirective",
        "scope": 23896,
        "sourceUnit": 38861,
        "src": "127:65:77",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "@atpar/actus-solidity/contracts/external/BokkyPooBah/BokkyPooBahsDateTimeLibrary.sol",
        "file": "../../external/BokkyPooBah/BokkyPooBahsDateTimeLibrary.sol",
        "id": 23345,
        "nodeType": "ImportDirective",
        "scope": 23896,
        "sourceUnit": 37178,
        "src": "193:68:77",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "@atpar/actus-solidity/contracts/Core/ACTUSTypes.sol",
        "file": "../ACTUSTypes.sol",
        "id": 23346,
        "nodeType": "ImportDirective",
        "scope": 23896,
        "sourceUnit": 23007,
        "src": "263:27:77",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "@atpar/actus-solidity/contracts/Core/SignedMath.sol",
        "file": "../SignedMath.sol",
        "id": 23347,
        "nodeType": "ImportDirective",
        "scope": 23896,
        "sourceUnit": 24231,
        "src": "291:27:77",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "abstract": false,
        "baseContracts": [],
        "contractDependencies": [],
        "contractKind": "contract",
        "documentation": {
          "id": 23348,
          "nodeType": "StructuredDocumentation",
          "src": "321:116:77",
          "text": " @title DayCountConventions\n @notice Implements various ISDA day count conventions as specified by ACTUS"
        },
        "fullyImplemented": true,
        "id": 23895,
        "linearizedBaseContracts": [
          23895
        ],
        "name": "DayCountConventions",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "id": 23351,
            "libraryName": {
              "contractScope": null,
              "id": 23349,
              "name": "SafeMath",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 38681,
              "src": "480:8:77",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_SafeMath_$38681",
                "typeString": "library SafeMath"
              }
            },
            "nodeType": "UsingForDirective",
            "src": "474:24:77",
            "typeName": {
              "id": 23350,
              "name": "uint",
              "nodeType": "ElementaryTypeName",
              "src": "493:4:77",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            }
          },
          {
            "id": 23354,
            "libraryName": {
              "contractScope": null,
              "id": 23352,
              "name": "SignedSafeMath",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 38860,
              "src": "509:14:77",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_SignedSafeMath_$38860",
                "typeString": "library SignedSafeMath"
              }
            },
            "nodeType": "UsingForDirective",
            "src": "503:29:77",
            "typeName": {
              "id": 23353,
              "name": "int",
              "nodeType": "ElementaryTypeName",
              "src": "528:3:77",
              "typeDescriptions": {
                "typeIdentifier": "t_int256",
                "typeString": "int256"
              }
            }
          },
          {
            "id": 23357,
            "libraryName": {
              "contractScope": null,
              "id": 23355,
              "name": "SignedMath",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 24230,
              "src": "543:10:77",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_SignedMath_$24230",
                "typeString": "library SignedMath"
              }
            },
            "nodeType": "UsingForDirective",
            "src": "537:25:77",
            "typeName": {
              "id": 23356,
              "name": "int",
              "nodeType": "ElementaryTypeName",
              "src": "558:3:77",
              "typeDescriptions": {
                "typeIdentifier": "t_int256",
                "typeString": "int256"
              }
            }
          },
          {
            "body": {
              "id": 23449,
              "nodeType": "Block",
              "src": "860:1002:77",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 23374,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 23372,
                          "name": "endTimestamp",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 23362,
                          "src": "878:12:77",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">=",
                        "rightExpression": {
                          "argumentTypes": null,
                          "id": 23373,
                          "name": "startTimestamp",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 23360,
                          "src": "894:14:77",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "878:30:77",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "436f72652e796561724672616374696f6e3a2053544152545f4e4f545f4245464f52455f454e44",
                        "id": 23375,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "910:41:77",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_8afb240a9b221f6f381442c516ad8ebc630a7757616f8078f5177823e6ec0254",
                          "typeString": "literal_string \"Core.yearFraction: START_NOT_BEFORE_END\""
                        },
                        "value": "Core.yearFraction: START_NOT_BEFORE_END"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_8afb240a9b221f6f381442c516ad8ebc630a7757616f8078f5177823e6ec0254",
                          "typeString": "literal_string \"Core.yearFraction: START_NOT_BEFORE_END\""
                        }
                      ],
                      "id": 23371,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        -18,
                        -18
                      ],
                      "referencedDeclaration": -18,
                      "src": "870:7:77",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 23376,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "870:82:77",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 23377,
                  "nodeType": "ExpressionStatement",
                  "src": "870:82:77"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_enum$_DayCountConvention_$22577",
                      "typeString": "enum DayCountConvention"
                    },
                    "id": 23381,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 23378,
                      "name": "ipdc",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 23364,
                      "src": "966:4:77",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_DayCountConvention_$22577",
                        "typeString": "enum DayCountConvention"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 23379,
                        "name": "DayCountConvention",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 22577,
                        "src": "974:18:77",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_enum$_DayCountConvention_$22577_$",
                          "typeString": "type(enum DayCountConvention)"
                        }
                      },
                      "id": 23380,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "memberName": "AA",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "974:21:77",
                      "typeDescriptions": {
                        "typeIdentifier": "t_enum$_DayCountConvention_$22577",
                        "typeString": "enum DayCountConvention"
                      }
                    },
                    "src": "966:29:77",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "condition": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_enum$_DayCountConvention_$22577",
                        "typeString": "enum DayCountConvention"
                      },
                      "id": 23391,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "id": 23388,
                        "name": "ipdc",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 23364,
                        "src": "1081:4:77",
                        "typeDescriptions": {
                          "typeIdentifier": "t_enum$_DayCountConvention_$22577",
                          "typeString": "enum DayCountConvention"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "==",
                      "rightExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 23389,
                          "name": "DayCountConvention",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 22577,
                          "src": "1089:18:77",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_enum$_DayCountConvention_$22577_$",
                            "typeString": "type(enum DayCountConvention)"
                          }
                        },
                        "id": 23390,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "memberName": "A360",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "1089:23:77",
                        "typeDescriptions": {
                          "typeIdentifier": "t_enum$_DayCountConvention_$22577",
                          "typeString": "enum DayCountConvention"
                        }
                      },
                      "src": "1081:31:77",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "falseBody": {
                      "condition": {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_enum$_DayCountConvention_$22577",
                          "typeString": "enum DayCountConvention"
                        },
                        "id": 23401,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 23398,
                          "name": "ipdc",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 23364,
                          "src": "1202:4:77",
                          "typeDescriptions": {
                            "typeIdentifier": "t_enum$_DayCountConvention_$22577",
                            "typeString": "enum DayCountConvention"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 23399,
                            "name": "DayCountConvention",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 22577,
                            "src": "1210:18:77",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_enum$_DayCountConvention_$22577_$",
                              "typeString": "type(enum DayCountConvention)"
                            }
                          },
                          "id": 23400,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "memberName": "A365",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "1210:23:77",
                          "typeDescriptions": {
                            "typeIdentifier": "t_enum$_DayCountConvention_$22577",
                            "typeString": "enum DayCountConvention"
                          }
                        },
                        "src": "1202:31:77",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "falseBody": {
                        "condition": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_enum$_DayCountConvention_$22577",
                            "typeString": "enum DayCountConvention"
                          },
                          "id": 23411,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 23408,
                            "name": "ipdc",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 23364,
                            "src": "1327:4:77",
                            "typeDescriptions": {
                              "typeIdentifier": "t_enum$_DayCountConvention_$22577",
                              "typeString": "enum DayCountConvention"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 23409,
                              "name": "DayCountConvention",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 22577,
                              "src": "1335:18:77",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_enum$_DayCountConvention_$22577_$",
                                "typeString": "type(enum DayCountConvention)"
                              }
                            },
                            "id": 23410,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "memberName": "_30E360",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "1335:26:77",
                            "typeDescriptions": {
                              "typeIdentifier": "t_enum$_DayCountConvention_$22577",
                              "typeString": "enum DayCountConvention"
                            }
                          },
                          "src": "1327:34:77",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "falseBody": {
                          "condition": {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_enum$_DayCountConvention_$22577",
                              "typeString": "enum DayCountConvention"
                            },
                            "id": 23421,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "id": 23418,
                              "name": "ipdc",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 23364,
                              "src": "1452:4:77",
                              "typeDescriptions": {
                                "typeIdentifier": "t_enum$_DayCountConvention_$22577",
                                "typeString": "enum DayCountConvention"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "==",
                            "rightExpression": {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 23419,
                                "name": "DayCountConvention",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 22577,
                                "src": "1460:18:77",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_enum$_DayCountConvention_$22577_$",
                                  "typeString": "type(enum DayCountConvention)"
                                }
                              },
                              "id": 23420,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "memberName": "_30E360ISDA",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": null,
                              "src": "1460:30:77",
                              "typeDescriptions": {
                                "typeIdentifier": "t_enum$_DayCountConvention_$22577",
                                "typeString": "enum DayCountConvention"
                              }
                            },
                            "src": "1452:38:77",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "falseBody": {
                            "condition": {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_enum$_DayCountConvention_$22577",
                                "typeString": "enum DayCountConvention"
                              },
                              "id": 23432,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "argumentTypes": null,
                                "id": 23429,
                                "name": "ipdc",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 23364,
                                "src": "1599:4:77",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_enum$_DayCountConvention_$22577",
                                  "typeString": "enum DayCountConvention"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "==",
                              "rightExpression": {
                                "argumentTypes": null,
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 23430,
                                  "name": "DayCountConvention",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 22577,
                                  "src": "1607:18:77",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_enum$_DayCountConvention_$22577_$",
                                    "typeString": "type(enum DayCountConvention)"
                                  }
                                },
                                "id": 23431,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "memberName": "_28E336",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": null,
                                "src": "1607:26:77",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_enum$_DayCountConvention_$22577",
                                  "typeString": "enum DayCountConvention"
                                }
                              },
                              "src": "1599:34:77",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            "falseBody": {
                              "id": 23442,
                              "nodeType": "Block",
                              "src": "1768:88:77",
                              "statements": [
                                {
                                  "expression": {
                                    "argumentTypes": null,
                                    "arguments": [
                                      {
                                        "argumentTypes": null,
                                        "hexValue": "446179436f756e74436f6e76656e74696f6e2e796561724672616374696f6e3a204154545249425554455f4e4f545f464f554e442e",
                                        "id": 23439,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "string",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "1789:55:77",
                                        "subdenomination": null,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_stringliteral_2e3e1cb1042a83e8e69085499c722b4f8b8ba7f78422d6434aa94fa9aa4b9bd7",
                                          "typeString": "literal_string \"DayCountConvention.yearFraction: ATTRIBUTE_NOT_FOUND.\""
                                        },
                                        "value": "DayCountConvention.yearFraction: ATTRIBUTE_NOT_FOUND."
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_stringliteral_2e3e1cb1042a83e8e69085499c722b4f8b8ba7f78422d6434aa94fa9aa4b9bd7",
                                          "typeString": "literal_string \"DayCountConvention.yearFraction: ATTRIBUTE_NOT_FOUND.\""
                                        }
                                      ],
                                      "id": 23438,
                                      "name": "revert",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [
                                        -19,
                                        -19
                                      ],
                                      "referencedDeclaration": -19,
                                      "src": "1782:6:77",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$",
                                        "typeString": "function (string memory) pure"
                                      }
                                    },
                                    "id": 23440,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "functionCall",
                                    "lValueRequested": false,
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "1782:63:77",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_tuple$__$",
                                      "typeString": "tuple()"
                                    }
                                  },
                                  "id": 23441,
                                  "nodeType": "ExpressionStatement",
                                  "src": "1782:63:77"
                                }
                              ]
                            },
                            "id": 23443,
                            "nodeType": "IfStatement",
                            "src": "1595:261:77",
                            "trueBody": {
                              "id": 23437,
                              "nodeType": "Block",
                              "src": "1635:127:77",
                              "statements": [
                                {
                                  "expression": {
                                    "argumentTypes": null,
                                    "arguments": [
                                      {
                                        "argumentTypes": null,
                                        "hexValue": "446179436f756e74436f6e76656e74696f6e2e796561724672616374696f6e3a204154545249425554455f4e4f545f535550504f525445442e",
                                        "id": 23434,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "string",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "1691:59:77",
                                        "subdenomination": null,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_stringliteral_78a43ad3a3a784f419abd5e26bf72f4c9562c2f547569a02b5ed109e21a7294e",
                                          "typeString": "literal_string \"DayCountConvention.yearFraction: ATTRIBUTE_NOT_SUPPORTED.\""
                                        },
                                        "value": "DayCountConvention.yearFraction: ATTRIBUTE_NOT_SUPPORTED."
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_stringliteral_78a43ad3a3a784f419abd5e26bf72f4c9562c2f547569a02b5ed109e21a7294e",
                                          "typeString": "literal_string \"DayCountConvention.yearFraction: ATTRIBUTE_NOT_SUPPORTED.\""
                                        }
                                      ],
                                      "id": 23433,
                                      "name": "revert",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [
                                        -19,
                                        -19
                                      ],
                                      "referencedDeclaration": -19,
                                      "src": "1684:6:77",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$",
                                        "typeString": "function (string memory) pure"
                                      }
                                    },
                                    "id": 23435,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "functionCall",
                                    "lValueRequested": false,
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "1684:67:77",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_tuple$__$",
                                      "typeString": "tuple()"
                                    }
                                  },
                                  "id": 23436,
                                  "nodeType": "ExpressionStatement",
                                  "src": "1684:67:77"
                                }
                              ]
                            }
                          },
                          "id": 23444,
                          "nodeType": "IfStatement",
                          "src": "1448:408:77",
                          "trueBody": {
                            "id": 23428,
                            "nodeType": "Block",
                            "src": "1492:97:77",
                            "statements": [
                              {
                                "expression": {
                                  "argumentTypes": null,
                                  "arguments": [
                                    {
                                      "argumentTypes": null,
                                      "id": 23423,
                                      "name": "startTimestamp",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 23360,
                                      "src": "1535:14:77",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    {
                                      "argumentTypes": null,
                                      "id": 23424,
                                      "name": "endTimestamp",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 23362,
                                      "src": "1551:12:77",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    {
                                      "argumentTypes": null,
                                      "id": 23425,
                                      "name": "maturityDate",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 23366,
                                      "src": "1565:12:77",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      },
                                      {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      },
                                      {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    ],
                                    "id": 23422,
                                    "name": "thirtyEThreeSixtyISDA",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 23894,
                                    "src": "1513:21:77",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_int256_$",
                                      "typeString": "function (uint256,uint256,uint256) pure returns (int256)"
                                    }
                                  },
                                  "id": 23426,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "functionCall",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "1513:65:77",
                                  "tryCall": false,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_int256",
                                    "typeString": "int256"
                                  }
                                },
                                "functionReturnParameters": 23370,
                                "id": 23427,
                                "nodeType": "Return",
                                "src": "1506:72:77"
                              }
                            ]
                          }
                        },
                        "id": 23445,
                        "nodeType": "IfStatement",
                        "src": "1323:533:77",
                        "trueBody": {
                          "id": 23417,
                          "nodeType": "Block",
                          "src": "1363:79:77",
                          "statements": [
                            {
                              "expression": {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "id": 23413,
                                    "name": "startTimestamp",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 23360,
                                    "src": "1402:14:77",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  {
                                    "argumentTypes": null,
                                    "id": 23414,
                                    "name": "endTimestamp",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 23362,
                                    "src": "1418:12:77",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    },
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  ],
                                  "id": 23412,
                                  "name": "thirtyEThreeSixty",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 23751,
                                  "src": "1384:17:77",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_int256_$",
                                    "typeString": "function (uint256,uint256) pure returns (int256)"
                                  }
                                },
                                "id": 23415,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "1384:47:77",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_int256",
                                  "typeString": "int256"
                                }
                              },
                              "functionReturnParameters": 23370,
                              "id": 23416,
                              "nodeType": "Return",
                              "src": "1377:54:77"
                            }
                          ]
                        }
                      },
                      "id": 23446,
                      "nodeType": "IfStatement",
                      "src": "1198:658:77",
                      "trueBody": {
                        "id": 23407,
                        "nodeType": "Block",
                        "src": "1235:82:77",
                        "statements": [
                          {
                            "expression": {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "id": 23403,
                                  "name": "startTimestamp",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 23360,
                                  "src": "1277:14:77",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                {
                                  "argumentTypes": null,
                                  "id": 23404,
                                  "name": "endTimestamp",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 23362,
                                  "src": "1293:12:77",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                ],
                                "id": 23402,
                                "name": "actualThreeSixtyFive",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 23626,
                                "src": "1256:20:77",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_int256_$",
                                  "typeString": "function (uint256,uint256) pure returns (int256)"
                                }
                              },
                              "id": 23405,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "1256:50:77",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_int256",
                                "typeString": "int256"
                              }
                            },
                            "functionReturnParameters": 23370,
                            "id": 23406,
                            "nodeType": "Return",
                            "src": "1249:57:77"
                          }
                        ]
                      }
                    },
                    "id": 23447,
                    "nodeType": "IfStatement",
                    "src": "1077:779:77",
                    "trueBody": {
                      "id": 23397,
                      "nodeType": "Block",
                      "src": "1114:78:77",
                      "statements": [
                        {
                          "expression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 23393,
                                "name": "startTimestamp",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 23360,
                                "src": "1152:14:77",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "id": 23394,
                                "name": "endTimestamp",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 23362,
                                "src": "1168:12:77",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "id": 23392,
                              "name": "actualThreeSixty",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 23599,
                              "src": "1135:16:77",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_int256_$",
                                "typeString": "function (uint256,uint256) pure returns (int256)"
                              }
                            },
                            "id": 23395,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "1135:46:77",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_int256",
                              "typeString": "int256"
                            }
                          },
                          "functionReturnParameters": 23370,
                          "id": 23396,
                          "nodeType": "Return",
                          "src": "1128:53:77"
                        }
                      ]
                    }
                  },
                  "id": 23448,
                  "nodeType": "IfStatement",
                  "src": "962:894:77",
                  "trueBody": {
                    "id": 23387,
                    "nodeType": "Block",
                    "src": "997:74:77",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 23383,
                              "name": "startTimestamp",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 23360,
                              "src": "1031:14:77",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 23384,
                              "name": "endTimestamp",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 23362,
                              "src": "1047:12:77",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "id": 23382,
                            "name": "actualActual",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 23572,
                            "src": "1018:12:77",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_int256_$",
                              "typeString": "function (uint256,uint256) pure returns (int256)"
                            }
                          },
                          "id": 23385,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "1018:42:77",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          }
                        },
                        "functionReturnParameters": 23370,
                        "id": 23386,
                        "nodeType": "Return",
                        "src": "1011:49:77"
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": {
              "id": 23358,
              "nodeType": "StructuredDocumentation",
              "src": "568:75:77",
              "text": " Returns the fraction of the year between two timestamps."
            },
            "id": 23450,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "yearFraction",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 23367,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23360,
                  "mutability": "mutable",
                  "name": "startTimestamp",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 23450,
                  "src": "679:22:77",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 23359,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "679:7:77",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 23362,
                  "mutability": "mutable",
                  "name": "endTimestamp",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 23450,
                  "src": "711:20:77",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 23361,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "711:7:77",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 23364,
                  "mutability": "mutable",
                  "name": "ipdc",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 23450,
                  "src": "741:23:77",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_enum$_DayCountConvention_$22577",
                    "typeString": "enum DayCountConvention"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 23363,
                    "name": "DayCountConvention",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 22577,
                    "src": "741:18:77",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_DayCountConvention_$22577",
                      "typeString": "enum DayCountConvention"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 23366,
                  "mutability": "mutable",
                  "name": "maturityDate",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 23450,
                  "src": "774:20:77",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 23365,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "774:7:77",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "669:131:77"
            },
            "returnParameters": {
              "id": 23370,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23369,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 23450,
                  "src": "848:6:77",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_int256",
                    "typeString": "int256"
                  },
                  "typeName": {
                    "id": 23368,
                    "name": "int256",
                    "nodeType": "ElementaryTypeName",
                    "src": "848:6:77",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int256",
                      "typeString": "int256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "847:8:77"
            },
            "scope": 23895,
            "src": "648:1214:77",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 23571,
              "nodeType": "Block",
              "src": "2038:993:77",
              "statements": [
                {
                  "assignments": [
                    23461
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 23461,
                      "mutability": "mutable",
                      "name": "d1Year",
                      "nodeType": "VariableDeclaration",
                      "overrides": null,
                      "scope": 23571,
                      "src": "2048:14:77",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 23460,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "2048:7:77",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 23466,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 23464,
                        "name": "startTime",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 23453,
                        "src": "2101:9:77",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 23462,
                        "name": "BokkyPooBahsDateTimeLibrary",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 37177,
                        "src": "2065:27:77",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_BokkyPooBahsDateTimeLibrary_$37177_$",
                          "typeString": "type(library BokkyPooBahsDateTimeLibrary)"
                        }
                      },
                      "id": 23463,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "getYear",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 36424,
                      "src": "2065:35:77",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$",
                        "typeString": "function (uint256) pure returns (uint256)"
                      }
                    },
                    "id": 23465,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2065:46:77",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "2048:63:77"
                },
                {
                  "assignments": [
                    23468
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 23468,
                      "mutability": "mutable",
                      "name": "d2Year",
                      "nodeType": "VariableDeclaration",
                      "overrides": null,
                      "scope": 23571,
                      "src": "2121:14:77",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 23467,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "2121:7:77",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 23473,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 23471,
                        "name": "endTime",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 23455,
                        "src": "2174:7:77",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 23469,
                        "name": "BokkyPooBahsDateTimeLibrary",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 37177,
                        "src": "2138:27:77",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_BokkyPooBahsDateTimeLibrary_$37177_$",
                          "typeString": "type(library BokkyPooBahsDateTimeLibrary)"
                        }
                      },
                      "id": 23470,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "getYear",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 36424,
                      "src": "2138:35:77",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$",
                        "typeString": "function (uint256) pure returns (uint256)"
                      }
                    },
                    "id": 23472,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2138:44:77",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "2121:61:77"
                },
                {
                  "assignments": [
                    23475
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 23475,
                      "mutability": "mutable",
                      "name": "firstBasis",
                      "nodeType": "VariableDeclaration",
                      "overrides": null,
                      "scope": 23571,
                      "src": "2193:17:77",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int256",
                        "typeString": "int256"
                      },
                      "typeName": {
                        "id": 23474,
                        "name": "int256",
                        "nodeType": "ElementaryTypeName",
                        "src": "2193:6:77",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 23484,
                  "initialValue": {
                    "argumentTypes": null,
                    "condition": {
                      "argumentTypes": null,
                      "components": [
                        {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 23478,
                              "name": "startTime",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 23453,
                              "src": "2253:9:77",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "id": 23476,
                              "name": "BokkyPooBahsDateTimeLibrary",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 37177,
                              "src": "2214:27:77",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_contract$_BokkyPooBahsDateTimeLibrary_$37177_$",
                                "typeString": "type(library BokkyPooBahsDateTimeLibrary)"
                              }
                            },
                            "id": 23477,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "isLeapYear",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 36231,
                            "src": "2214:38:77",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_bool_$",
                              "typeString": "function (uint256) pure returns (bool)"
                            }
                          },
                          "id": 23479,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "2214:49:77",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        }
                      ],
                      "id": 23480,
                      "isConstant": false,
                      "isInlineArray": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "TupleExpression",
                      "src": "2213:51:77",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "falseExpression": {
                      "argumentTypes": null,
                      "hexValue": "333635",
                      "id": 23482,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "2273:3:77",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_365_by_1",
                        "typeString": "int_const 365"
                      },
                      "value": "365"
                    },
                    "id": 23483,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "Conditional",
                    "src": "2213:63:77",
                    "trueExpression": {
                      "argumentTypes": null,
                      "hexValue": "333636",
                      "id": 23481,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "2267:3:77",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_366_by_1",
                        "typeString": "int_const 366"
                      },
                      "value": "366"
                    },
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint16",
                      "typeString": "uint16"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "2193:83:77"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 23487,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 23485,
                      "name": "d1Year",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 23461,
                      "src": "2291:6:77",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "argumentTypes": null,
                      "id": 23486,
                      "name": "d2Year",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 23468,
                      "src": "2301:6:77",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "2291:16:77",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 23501,
                  "nodeType": "IfStatement",
                  "src": "2287:139:77",
                  "trueBody": {
                    "id": 23500,
                    "nodeType": "Block",
                    "src": "2309:117:77",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 23497,
                              "name": "firstBasis",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 23475,
                              "src": "2404:10:77",
                              "typeDescriptions": {
                                "typeIdentifier": "t_int256",
                                "typeString": "int256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_int256",
                                "typeString": "int256"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "arguments": [
                                    {
                                      "argumentTypes": null,
                                      "id": 23492,
                                      "name": "startTime",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 23453,
                                      "src": "2374:9:77",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    {
                                      "argumentTypes": null,
                                      "id": 23493,
                                      "name": "endTime",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 23455,
                                      "src": "2385:7:77",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      },
                                      {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": null,
                                      "id": 23490,
                                      "name": "BokkyPooBahsDateTimeLibrary",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 37177,
                                      "src": "2337:27:77",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_type$_t_contract$_BokkyPooBahsDateTimeLibrary_$37177_$",
                                        "typeString": "type(library BokkyPooBahsDateTimeLibrary)"
                                      }
                                    },
                                    "id": 23491,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberName": "diffDays",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 37104,
                                    "src": "2337:36:77",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                                      "typeString": "function (uint256,uint256) pure returns (uint256)"
                                    }
                                  },
                                  "id": 23494,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "functionCall",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "2337:56:77",
                                  "tryCall": false,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                ],
                                "id": 23489,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "ElementaryTypeNameExpression",
                                "src": "2330:6:77",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_int256_$",
                                  "typeString": "type(int256)"
                                },
                                "typeName": {
                                  "id": 23488,
                                  "name": "int256",
                                  "nodeType": "ElementaryTypeName",
                                  "src": "2330:6:77",
                                  "typeDescriptions": {
                                    "typeIdentifier": null,
                                    "typeString": null
                                  }
                                }
                              },
                              "id": 23495,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "2330:64:77",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_int256",
                                "typeString": "int256"
                              }
                            },
                            "id": 23496,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "floatDiv",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 24193,
                            "src": "2330:73:77",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_int256_$bound_to$_t_int256_$",
                              "typeString": "function (int256,int256) pure returns (int256)"
                            }
                          },
                          "id": 23498,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "2330:85:77",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_int256",
                            "typeString": "int256"
                          }
                        },
                        "functionReturnParameters": 23459,
                        "id": 23499,
                        "nodeType": "Return",
                        "src": "2323:92:77"
                      }
                    ]
                  }
                },
                {
                  "assignments": [
                    23503
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 23503,
                      "mutability": "mutable",
                      "name": "secondBasis",
                      "nodeType": "VariableDeclaration",
                      "overrides": null,
                      "scope": 23571,
                      "src": "2436:18:77",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int256",
                        "typeString": "int256"
                      },
                      "typeName": {
                        "id": 23502,
                        "name": "int256",
                        "nodeType": "ElementaryTypeName",
                        "src": "2436:6:77",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 23512,
                  "initialValue": {
                    "argumentTypes": null,
                    "condition": {
                      "argumentTypes": null,
                      "components": [
                        {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 23506,
                              "name": "endTime",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 23455,
                              "src": "2497:7:77",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "id": 23504,
                              "name": "BokkyPooBahsDateTimeLibrary",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 37177,
                              "src": "2458:27:77",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_contract$_BokkyPooBahsDateTimeLibrary_$37177_$",
                                "typeString": "type(library BokkyPooBahsDateTimeLibrary)"
                              }
                            },
                            "id": 23505,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "isLeapYear",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 36231,
                            "src": "2458:38:77",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_bool_$",
                              "typeString": "function (uint256) pure returns (bool)"
                            }
                          },
                          "id": 23507,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "2458:47:77",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        }
                      ],
                      "id": 23508,
                      "isConstant": false,
                      "isInlineArray": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "TupleExpression",
                      "src": "2457:49:77",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "falseExpression": {
                      "argumentTypes": null,
                      "hexValue": "333635",
                      "id": 23510,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "2515:3:77",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_365_by_1",
                        "typeString": "int_const 365"
                      },
                      "value": "365"
                    },
                    "id": 23511,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "Conditional",
                    "src": "2457:61:77",
                    "trueExpression": {
                      "argumentTypes": null,
                      "hexValue": "333636",
                      "id": 23509,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "2509:3:77",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_366_by_1",
                        "typeString": "int_const 366"
                      },
                      "value": "366"
                    },
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint16",
                      "typeString": "uint16"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "2436:82:77"
                },
                {
                  "assignments": [
                    23514
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 23514,
                      "mutability": "mutable",
                      "name": "firstFraction",
                      "nodeType": "VariableDeclaration",
                      "overrides": null,
                      "scope": 23571,
                      "src": "2529:20:77",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int256",
                        "typeString": "int256"
                      },
                      "typeName": {
                        "id": 23513,
                        "name": "int256",
                        "nodeType": "ElementaryTypeName",
                        "src": "2529:6:77",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 23534,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 23532,
                        "name": "firstBasis",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 23475,
                        "src": "2719:10:77",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 23519,
                                "name": "startTime",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 23453,
                                "src": "2609:9:77",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "arguments": [
                                      {
                                        "argumentTypes": null,
                                        "hexValue": "31",
                                        "id": 23524,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "number",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "2689:1:77",
                                        "subdenomination": null,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_rational_1_by_1",
                                          "typeString": "int_const 1"
                                        },
                                        "value": "1"
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_rational_1_by_1",
                                          "typeString": "int_const 1"
                                        }
                                      ],
                                      "expression": {
                                        "argumentTypes": null,
                                        "id": 23522,
                                        "name": "d1Year",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 23461,
                                        "src": "2678:6:77",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      },
                                      "id": 23523,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "memberName": "add",
                                      "nodeType": "MemberAccess",
                                      "referencedDeclaration": 38514,
                                      "src": "2678:10:77",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                                        "typeString": "function (uint256,uint256) pure returns (uint256)"
                                      }
                                    },
                                    "id": 23525,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "functionCall",
                                    "lValueRequested": false,
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "2678:13:77",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  {
                                    "argumentTypes": null,
                                    "hexValue": "31",
                                    "id": 23526,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "number",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "2693:1:77",
                                    "subdenomination": null,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_rational_1_by_1",
                                      "typeString": "int_const 1"
                                    },
                                    "value": "1"
                                  },
                                  {
                                    "argumentTypes": null,
                                    "hexValue": "31",
                                    "id": 23527,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "number",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "2696:1:77",
                                    "subdenomination": null,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_rational_1_by_1",
                                      "typeString": "int_const 1"
                                    },
                                    "value": "1"
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    },
                                    {
                                      "typeIdentifier": "t_rational_1_by_1",
                                      "typeString": "int_const 1"
                                    },
                                    {
                                      "typeIdentifier": "t_rational_1_by_1",
                                      "typeString": "int_const 1"
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 23520,
                                    "name": "BokkyPooBahsDateTimeLibrary",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 37177,
                                    "src": "2632:27:77",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_contract$_BokkyPooBahsDateTimeLibrary_$37177_$",
                                      "typeString": "type(library BokkyPooBahsDateTimeLibrary)"
                                    }
                                  },
                                  "id": 23521,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "timestampFromDate",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 36002,
                                  "src": "2632:45:77",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                                    "typeString": "function (uint256,uint256,uint256) pure returns (uint256)"
                                  }
                                },
                                "id": 23528,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "2632:66:77",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "expression": {
                                "argumentTypes": null,
                                "id": 23517,
                                "name": "BokkyPooBahsDateTimeLibrary",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 37177,
                                "src": "2559:27:77",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_contract$_BokkyPooBahsDateTimeLibrary_$37177_$",
                                  "typeString": "type(library BokkyPooBahsDateTimeLibrary)"
                                }
                              },
                              "id": 23518,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "diffDays",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 37104,
                              "src": "2559:36:77",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                                "typeString": "function (uint256,uint256) pure returns (uint256)"
                              }
                            },
                            "id": 23529,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "2559:149:77",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "id": 23516,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "2552:6:77",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_int256_$",
                            "typeString": "type(int256)"
                          },
                          "typeName": {
                            "id": 23515,
                            "name": "int256",
                            "nodeType": "ElementaryTypeName",
                            "src": "2552:6:77",
                            "typeDescriptions": {
                              "typeIdentifier": null,
                              "typeString": null
                            }
                          }
                        },
                        "id": 23530,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "2552:157:77",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        }
                      },
                      "id": 23531,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "floatDiv",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 24193,
                      "src": "2552:166:77",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_int256_$bound_to$_t_int256_$",
                        "typeString": "function (int256,int256) pure returns (int256)"
                      }
                    },
                    "id": 23533,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2552:178:77",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_int256",
                      "typeString": "int256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "2529:201:77"
                },
                {
                  "assignments": [
                    23536
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 23536,
                      "mutability": "mutable",
                      "name": "secondFraction",
                      "nodeType": "VariableDeclaration",
                      "overrides": null,
                      "scope": 23571,
                      "src": "2740:21:77",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int256",
                        "typeString": "int256"
                      },
                      "typeName": {
                        "id": 23535,
                        "name": "int256",
                        "nodeType": "ElementaryTypeName",
                        "src": "2740:6:77",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 23553,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 23551,
                        "name": "secondBasis",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 23503,
                        "src": "2922:11:77",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "id": 23543,
                                    "name": "d2Year",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 23468,
                                    "src": "2867:6:77",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  {
                                    "argumentTypes": null,
                                    "hexValue": "31",
                                    "id": 23544,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "number",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "2875:1:77",
                                    "subdenomination": null,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_rational_1_by_1",
                                      "typeString": "int_const 1"
                                    },
                                    "value": "1"
                                  },
                                  {
                                    "argumentTypes": null,
                                    "hexValue": "31",
                                    "id": 23545,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "number",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "2878:1:77",
                                    "subdenomination": null,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_rational_1_by_1",
                                      "typeString": "int_const 1"
                                    },
                                    "value": "1"
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    },
                                    {
                                      "typeIdentifier": "t_rational_1_by_1",
                                      "typeString": "int_const 1"
                                    },
                                    {
                                      "typeIdentifier": "t_rational_1_by_1",
                                      "typeString": "int_const 1"
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 23541,
                                    "name": "BokkyPooBahsDateTimeLibrary",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 37177,
                                    "src": "2821:27:77",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_contract$_BokkyPooBahsDateTimeLibrary_$37177_$",
                                      "typeString": "type(library BokkyPooBahsDateTimeLibrary)"
                                    }
                                  },
                                  "id": 23542,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "timestampFromDate",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 36002,
                                  "src": "2821:45:77",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                                    "typeString": "function (uint256,uint256,uint256) pure returns (uint256)"
                                  }
                                },
                                "id": 23546,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "2821:59:77",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "id": 23547,
                                "name": "endTime",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 23455,
                                "src": "2894:7:77",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "expression": {
                                "argumentTypes": null,
                                "id": 23539,
                                "name": "BokkyPooBahsDateTimeLibrary",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 37177,
                                "src": "2771:27:77",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_contract$_BokkyPooBahsDateTimeLibrary_$37177_$",
                                  "typeString": "type(library BokkyPooBahsDateTimeLibrary)"
                                }
                              },
                              "id": 23540,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "diffDays",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 37104,
                              "src": "2771:36:77",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                                "typeString": "function (uint256,uint256) pure returns (uint256)"
                              }
                            },
                            "id": 23548,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "2771:140:77",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "id": 23538,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "2764:6:77",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_int256_$",
                            "typeString": "type(int256)"
                          },
                          "typeName": {
                            "id": 23537,
                            "name": "int256",
                            "nodeType": "ElementaryTypeName",
                            "src": "2764:6:77",
                            "typeDescriptions": {
                              "typeIdentifier": null,
                              "typeString": null
                            }
                          }
                        },
                        "id": 23549,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "2764:148:77",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        }
                      },
                      "id": 23550,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "floatDiv",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 24193,
                      "src": "2764:157:77",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_int256_$bound_to$_t_int256_$",
                        "typeString": "function (int256,int256) pure returns (int256)"
                      }
                    },
                    "id": 23552,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2764:170:77",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_int256",
                      "typeString": "int256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "2740:194:77"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "hexValue": "31",
                                "id": 23566,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "3020:1:77",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_1_by_1",
                                  "typeString": "int_const 1"
                                },
                                "value": "1"
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_rational_1_by_1",
                                  "typeString": "int_const 1"
                                }
                              ],
                              "expression": {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "id": 23563,
                                    "name": "d1Year",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 23461,
                                    "src": "3008:6:77",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 23561,
                                    "name": "d2Year",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 23468,
                                    "src": "2997:6:77",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "id": 23562,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "sub",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 38531,
                                  "src": "2997:10:77",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                                    "typeString": "function (uint256,uint256) pure returns (uint256)"
                                  }
                                },
                                "id": 23564,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "2997:18:77",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 23565,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "sub",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 38531,
                              "src": "2997:22:77",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                                "typeString": "function (uint256,uint256) pure returns (uint256)"
                              }
                            },
                            "id": 23567,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "2997:25:77",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "id": 23560,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "2990:6:77",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_int256_$",
                            "typeString": "type(int256)"
                          },
                          "typeName": {
                            "id": 23559,
                            "name": "int256",
                            "nodeType": "ElementaryTypeName",
                            "src": "2990:6:77",
                            "typeDescriptions": {
                              "typeIdentifier": null,
                              "typeString": null
                            }
                          }
                        },
                        "id": 23568,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "2990:33:77",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 23556,
                            "name": "secondFraction",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 23536,
                            "src": "2970:14:77",
                            "typeDescriptions": {
                              "typeIdentifier": "t_int256",
                              "typeString": "int256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_int256",
                              "typeString": "int256"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 23554,
                            "name": "firstFraction",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 23514,
                            "src": "2952:13:77",
                            "typeDescriptions": {
                              "typeIdentifier": "t_int256",
                              "typeString": "int256"
                            }
                          },
                          "id": 23555,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "add",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 38859,
                          "src": "2952:17:77",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_int256_$bound_to$_t_int256_$",
                            "typeString": "function (int256,int256) pure returns (int256)"
                          }
                        },
                        "id": 23557,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "2952:33:77",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        }
                      },
                      "id": 23558,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "add",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 38859,
                      "src": "2952:37:77",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_int256_$bound_to$_t_int256_$",
                        "typeString": "function (int256,int256) pure returns (int256)"
                      }
                    },
                    "id": 23569,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2952:72:77",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_int256",
                      "typeString": "int256"
                    }
                  },
                  "functionReturnParameters": 23459,
                  "id": 23570,
                  "nodeType": "Return",
                  "src": "2945:79:77"
                }
              ]
            },
            "documentation": {
              "id": 23451,
              "nodeType": "StructuredDocumentation",
              "src": "1868:48:77",
              "text": " ISDA A/A day count convention"
            },
            "id": 23572,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "actualActual",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 23456,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23453,
                  "mutability": "mutable",
                  "name": "startTime",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 23572,
                  "src": "1943:17:77",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 23452,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1943:7:77",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 23455,
                  "mutability": "mutable",
                  "name": "endTime",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 23572,
                  "src": "1962:15:77",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 23454,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1962:7:77",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1942:36:77"
            },
            "returnParameters": {
              "id": 23459,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23458,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 23572,
                  "src": "2026:6:77",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_int256",
                    "typeString": "int256"
                  },
                  "typeName": {
                    "id": 23457,
                    "name": "int256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2026:6:77",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int256",
                      "typeString": "int256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2025:8:77"
            },
            "scope": 23895,
            "src": "1921:1110:77",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 23598,
              "nodeType": "Block",
              "src": "3213:83:77",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "components": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "hexValue": "333630",
                            "id": 23594,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "3284:3:77",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_360_by_1",
                              "typeString": "int_const 360"
                            },
                            "value": "360"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_rational_360_by_1",
                              "typeString": "int_const 360"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "hexValue": "3836343030",
                                    "id": 23590,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "number",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "3267:5:77",
                                    "subdenomination": null,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_rational_86400_by_1",
                                      "typeString": "int_const 86400"
                                    },
                                    "value": "86400"
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_rational_86400_by_1",
                                      "typeString": "int_const 86400"
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": null,
                                    "components": [
                                      {
                                        "argumentTypes": null,
                                        "arguments": [
                                          {
                                            "argumentTypes": null,
                                            "id": 23586,
                                            "name": "startTime",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 23575,
                                            "src": "3251:9:77",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_uint256",
                                              "typeString": "uint256"
                                            }
                                          }
                                        ],
                                        "expression": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_uint256",
                                              "typeString": "uint256"
                                            }
                                          ],
                                          "expression": {
                                            "argumentTypes": null,
                                            "id": 23584,
                                            "name": "endTime",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 23577,
                                            "src": "3239:7:77",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_uint256",
                                              "typeString": "uint256"
                                            }
                                          },
                                          "id": 23585,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "memberName": "sub",
                                          "nodeType": "MemberAccess",
                                          "referencedDeclaration": 38531,
                                          "src": "3239:11:77",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                                            "typeString": "function (uint256,uint256) pure returns (uint256)"
                                          }
                                        },
                                        "id": 23587,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "3239:22:77",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      }
                                    ],
                                    "id": 23588,
                                    "isConstant": false,
                                    "isInlineArray": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "nodeType": "TupleExpression",
                                    "src": "3238:24:77",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "id": 23589,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "div",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 38611,
                                  "src": "3238:28:77",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                                    "typeString": "function (uint256,uint256) pure returns (uint256)"
                                  }
                                },
                                "id": 23591,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "3238:35:77",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "id": 23583,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "3231:6:77",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_int256_$",
                                "typeString": "type(int256)"
                              },
                              "typeName": {
                                "id": 23582,
                                "name": "int256",
                                "nodeType": "ElementaryTypeName",
                                "src": "3231:6:77",
                                "typeDescriptions": {
                                  "typeIdentifier": null,
                                  "typeString": null
                                }
                              }
                            },
                            "id": 23592,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "3231:43:77",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_int256",
                              "typeString": "int256"
                            }
                          },
                          "id": 23593,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "floatDiv",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 24193,
                          "src": "3231:52:77",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_int256_$bound_to$_t_int256_$",
                            "typeString": "function (int256,int256) pure returns (int256)"
                          }
                        },
                        "id": 23595,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "3231:57:77",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        }
                      }
                    ],
                    "id": 23596,
                    "isConstant": false,
                    "isInlineArray": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "TupleExpression",
                    "src": "3230:59:77",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int256",
                      "typeString": "int256"
                    }
                  },
                  "functionReturnParameters": 23581,
                  "id": 23597,
                  "nodeType": "Return",
                  "src": "3223:66:77"
                }
              ]
            },
            "documentation": {
              "id": 23573,
              "nodeType": "StructuredDocumentation",
              "src": "3037:50:77",
              "text": " ISDA A/360 day count convention"
            },
            "id": 23599,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "actualThreeSixty",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 23578,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23575,
                  "mutability": "mutable",
                  "name": "startTime",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 23599,
                  "src": "3118:17:77",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 23574,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3118:7:77",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 23577,
                  "mutability": "mutable",
                  "name": "endTime",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 23599,
                  "src": "3137:15:77",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 23576,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3137:7:77",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3117:36:77"
            },
            "returnParameters": {
              "id": 23581,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23580,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 23599,
                  "src": "3201:6:77",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_int256",
                    "typeString": "int256"
                  },
                  "typeName": {
                    "id": 23579,
                    "name": "int256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3201:6:77",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int256",
                      "typeString": "int256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3200:8:77"
            },
            "scope": 23895,
            "src": "3092:204:77",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 23625,
              "nodeType": "Block",
              "src": "3488:83:77",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "components": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "hexValue": "333635",
                            "id": 23621,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "3559:3:77",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_365_by_1",
                              "typeString": "int_const 365"
                            },
                            "value": "365"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_rational_365_by_1",
                              "typeString": "int_const 365"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "hexValue": "3836343030",
                                    "id": 23617,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "number",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "3542:5:77",
                                    "subdenomination": null,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_rational_86400_by_1",
                                      "typeString": "int_const 86400"
                                    },
                                    "value": "86400"
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_rational_86400_by_1",
                                      "typeString": "int_const 86400"
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": null,
                                    "components": [
                                      {
                                        "argumentTypes": null,
                                        "arguments": [
                                          {
                                            "argumentTypes": null,
                                            "id": 23613,
                                            "name": "startTime",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 23602,
                                            "src": "3526:9:77",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_uint256",
                                              "typeString": "uint256"
                                            }
                                          }
                                        ],
                                        "expression": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_uint256",
                                              "typeString": "uint256"
                                            }
                                          ],
                                          "expression": {
                                            "argumentTypes": null,
                                            "id": 23611,
                                            "name": "endTime",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 23604,
                                            "src": "3514:7:77",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_uint256",
                                              "typeString": "uint256"
                                            }
                                          },
                                          "id": 23612,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "memberName": "sub",
                                          "nodeType": "MemberAccess",
                                          "referencedDeclaration": 38531,
                                          "src": "3514:11:77",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                                            "typeString": "function (uint256,uint256) pure returns (uint256)"
                                          }
                                        },
                                        "id": 23614,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "3514:22:77",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      }
                                    ],
                                    "id": 23615,
                                    "isConstant": false,
                                    "isInlineArray": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "nodeType": "TupleExpression",
                                    "src": "3513:24:77",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "id": 23616,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "div",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 38611,
                                  "src": "3513:28:77",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
                                    "typeString": "function (uint256,uint256) pure returns (uint256)"
                                  }
                                },
                                "id": 23618,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "3513:35:77",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "id": 23610,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "3506:6:77",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_int256_$",
                                "typeString": "type(int256)"
                              },
                              "typeName": {
                                "id": 23609,
                                "name": "int256",
                                "nodeType": "ElementaryTypeName",
                                "src": "3506:6:77",
                                "typeDescriptions": {
                                  "typeIdentifier": null,
                                  "typeString": null
                                }
                              }
                            },
                            "id": 23619,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "3506:43:77",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_int256",
                              "typeString": "int256"
                            }
                          },
                          "id": 23620,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "floatDiv",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 24193,
                          "src": "3506:52:77",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_int256_$bound_to$_t_int256_$",
                            "typeString": "function (int256,int256) pure returns (int256)"
                          }
                        },
                        "id": 23622,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "3506:57:77",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        }
                      }
                    ],
                    "id": 23623,
                    "isConstant": false,
                    "isInlineArray": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "TupleExpression",
                    "src": "3505:59:77",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int256",
                      "typeString": "int256"
                    }
                  },
                  "functionReturnParameters": 23608,
                  "id": 23624,
                  "nodeType": "Return",
                  "src": "3498:66:77"
                }
              ]
            },
            "documentation": {
              "id": 23600,
              "nodeType": "StructuredDocumentation",
              "src": "3302:56:77",
              "text": " ISDA A/365-Fixed day count convention"
            },
            "id": 23626,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "actualThreeSixtyFive",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 23605,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23602,
                  "mutability": "mutable",
                  "name": "startTime",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 23626,
                  "src": "3393:17:77",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 23601,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3393:7:77",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 23604,
                  "mutability": "mutable",
                  "name": "endTime",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 23626,
                  "src": "3412:15:77",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 23603,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3412:7:77",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3392:36:77"
            },
            "returnParameters": {
              "id": 23608,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23607,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 23626,
                  "src": "3476:6:77",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_int256",
                    "typeString": "int256"
                  },
                  "typeName": {
                    "id": 23606,
                    "name": "int256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3476:6:77",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int256",
                      "typeString": "int256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3475:8:77"
            },
            "scope": 23895,
            "src": "3363:208:77",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 23750,
              "nodeType": "Block",
              "src": "3756:709:77",
              "statements": [
                {
                  "assignments": [
                    23637
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 23637,
                      "mutability": "mutable",
                      "name": "d1Day",
                      "nodeType": "VariableDeclaration",
                      "overrides": null,
                      "scope": 23750,
                      "src": "3766:13:77",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 23636,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "3766:7:77",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 23638,
                  "initialValue": null,
                  "nodeType": "VariableDeclarationStatement",
                  "src": "3766:13:77"
                },
                {
                  "assignments": [
                    23640
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 23640,
                      "mutability": "mutable",
                      "name": "d1Month",
                      "nodeType": "VariableDeclaration",
                      "overrides": null,
                      "scope": 23750,
                      "src": "3789:15:77",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 23639,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "3789:7:77",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 23641,
                  "initialValue": null,
                  "nodeType": "VariableDeclarationStatement",
                  "src": "3789:15:77"
                },
                {
                  "assignments": [
                    23643
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 23643,
                      "mutability": "mutable",
                      "name": "d1Year",
                      "nodeType": "VariableDeclaration",
                      "overrides": null,
                      "scope": 23750,
                      "src": "3814:14:77",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 23642,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "3814:7:77",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 23644,
                  "initialValue": null,
                  "nodeType": "VariableDeclarationStatement",
                  "src": "3814:14:77"
                },
                {
                  "assignments": [
                    23646
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 23646,
                      "mutability": "mutable",
                      "name": "d2Day",
                      "nodeType": "VariableDeclaration",
                      "overrides": null,
                      "scope": 23750,
                      "src": "3839:13:77",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 23645,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "3839:7:77",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 23647,
                  "initialValue": null,
                  "nodeType": "VariableDeclarationStatement",
                  "src": "3839:13:77"
                },
                {
                  "assignments": [
                    23649
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 23649,
                      "mutability": "mutable",
                      "name": "d2Month",
                      "nodeType": "VariableDeclaration",
                      "overrides": null,
                      "scope": 23750,
                      "src": "3862:15:77",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 23648,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "3862:7:77",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 23650,
                  "initialValue": null,
                  "nodeType": "VariableDeclarationStatement",
                  "src": "3862:15:77"
                },
                {
                  "assignments": [
                    23652
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 23652,
                      "mutability": "mutable",
                      "name": "d2Year",
                      "nodeType": "VariableDeclaration",
                      "overrides": null,
                      "scope": 23750,
                      "src": "3887:14:77",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 23651,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "3887:7:77",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 23653,
                  "initialValue": null,
                  "nodeType": "VariableDeclarationStatement",
                  "src": "3887:14:77"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 23662,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "components": [
                        {
                          "argumentTypes": null,
                          "id": 23654,
                          "name": "d1Year",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 23643,
                          "src": "3913:6:77",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 23655,
                          "name": "d1Month",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 23640,
                          "src": "3921:7:77",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 23656,
                          "name": "d1Day",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 23637,
                          "src": "3930:5:77",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "id": 23657,
                      "isConstant": false,
                      "isInlineArray": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "TupleExpression",
                      "src": "3912:24:77",
                      "typeDescriptions": {
                        "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$",
                        "typeString": "tuple(uint256,uint256,uint256)"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 23660,
                          "name": "startTime",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 23629,
                          "src": "3983:9:77",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "id": 23658,
                          "name": "BokkyPooBahsDateTimeLibrary",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 37177,
                          "src": "3939:27:77",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_contract$_BokkyPooBahsDateTimeLibrary_$37177_$",
                            "typeString": "type(library BokkyPooBahsDateTimeLibrary)"
                          }
                        },
                        "id": 23659,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "timestampToDate",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 36063,
                        "src": "3939:43:77",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$_t_uint256_$_t_uint256_$",
                          "typeString": "function (uint256) pure returns (uint256,uint256,uint256)"
                        }
                      },
                      "id": 23661,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "3939:54:77",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$",
                        "typeString": "tuple(uint256,uint256,uint256)"
                      }
                    },
                    "src": "3912:81:77",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 23663,
                  "nodeType": "ExpressionStatement",
                  "src": "3912:81:77"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 23672,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "components": [
                        {
                          "argumentTypes": null,
                          "id": 23664,
                          "name": "d2Year",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 23652,
                          "src": "4004:6:77",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 23665,
                          "name": "d2Month",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 23649,
                          "src": "4012:7:77",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 23666,
                          "name": "d2Day",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 23646,
                          "src": "4021:5:77",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "id": 23667,
                      "isConstant": false,
                      "isInlineArray": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "TupleExpression",
                      "src": "4003:24:77",
                      "typeDescriptions": {
                        "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$",
                        "typeString": "tuple(uint256,uint256,uint256)"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 23670,
                          "name": "endTime",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 23631,
                          "src": "4074:7:77",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "id": 23668,
                          "name": "BokkyPooBahsDateTimeLibrary",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 37177,
                          "src": "4030:27:77",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_contract$_BokkyPooBahsDateTimeLibrary_$37177_$",
                            "typeString": "type(library BokkyPooBahsDateTimeLibrary)"
                          }
                        },
                        "id": 23669,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "timestampToDate",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 36063,
                        "src": "4030:43:77",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$_t_uint256_$_t_uint256_$",
                          "typeString": "function (uint256) pure returns (uint256,uint256,uint256)"
                        }
                      },
                      "id": 23671,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "4030:52:77",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$",
                        "typeString": "tuple(uint256,uint256,uint256)"
                      }
                    },
                    "src": "4003:79:77",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 23673,
                  "nodeType": "ExpressionStatement",
                  "src": "4003:79:77"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 23676,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 23674,
                      "name": "d1Day",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 23637,
                      "src": "4097:5:77",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "argumentTypes": null,
                      "hexValue": "3331",
                      "id": 23675,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "4106:2:77",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_31_by_1",
                        "typeString": "int_const 31"
                      },
                      "value": "31"
                    },
                    "src": "4097:11:77",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 23682,
                  "nodeType": "IfStatement",
                  "src": "4093:52:77",
                  "trueBody": {
                    "id": 23681,
                    "nodeType": "Block",
                    "src": "4110:35:77",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 23679,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 23677,
                            "name": "d1Day",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 23637,
                            "src": "4124:5:77",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "hexValue": "3330",
                            "id": 23678,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "4132:2:77",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_30_by_1",
                              "typeString": "int_const 30"
                            },
                            "value": "30"
                          },
                          "src": "4124:10:77",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 23680,
                        "nodeType": "ExpressionStatement",
                        "src": "4124:10:77"
                      }
                    ]
                  }
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 23685,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 23683,
                      "name": "d2Day",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 23646,
                      "src": "4159:5:77",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "argumentTypes": null,
                      "hexValue": "3331",
                      "id": 23684,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "4168:2:77",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_31_by_1",
                        "typeString": "int_const 31"
                      },
                      "value": "31"
                    },
                    "src": "4159:11:77",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 23691,
                  "nodeType": "IfStatement",
                  "src": "4155:52:77",
                  "trueBody": {
                    "id": 23690,
                    "nodeType": "Block",
                    "src": "4172:35:77",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 23688,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 23686,
                            "name": "d2Day",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 23646,
                            "src": "4186:5:77",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "hexValue": "3330",
                            "id": 23687,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "4194:2:77",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_30_by_1",
                              "typeString": "int_const 30"
                            },
                            "value": "30"
                          },
                          "src": "4186:10:77",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 23689,
                        "nodeType": "ExpressionStatement",
                        "src": "4186:10:77"
                      }
                    ]
                  }
                },
                {
                  "assignments": [
                    23693
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 23693,
                      "mutability": "mutable",
                      "name": "delD",
                      "nodeType": "VariableDeclaration",
                      "overrides": null,
                      "scope": 23750,
                      "src": "4217:11:77",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int256",
                        "typeString": "int256"
                      },
                      "typeName": {
                        "id": 23692,
                        "name": "int256",
                        "nodeType": "ElementaryTypeName",
                        "src": "4217:6:77",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 23704,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 23701,
                            "name": "d1Day",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 23637,
                            "src": "4256:5:77",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "id": 23700,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "4249:6:77",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_int256_$",
                            "typeString": "type(int256)"
                          },
                          "typeName": {
                            "id": 23699,
                            "name": "int256",
                            "nodeType": "ElementaryTypeName",
                            "src": "4249:6:77",
                            "typeDescriptions": {
                              "typeIdentifier": null,
                              "typeString": null
                            }
                          }
                        },
                        "id": 23702,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "4249:13:77",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 23696,
                            "name": "d2Day",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 23646,
                            "src": "4238:5:77",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "id": 23695,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "4231:6:77",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_int256_$",
                            "typeString": "type(int256)"
                          },
                          "typeName": {
                            "id": 23694,
                            "name": "int256",
                            "nodeType": "ElementaryTypeName",
                            "src": "4231:6:77",
                            "typeDescriptions": {
                              "typeIdentifier": null,
                              "typeString": null
                            }
                          }
                        },
                        "id": 23697,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "4231:13:77",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        }
                      },
                      "id": 23698,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "sub",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 38819,
                      "src": "4231:17:77",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_int256_$bound_to$_t_int256_$",
                        "typeString": "function (int256,int256) pure returns (int256)"
                      }
                    },
                    "id": 23703,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4231:32:77",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_int256",
                      "typeString": "int256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "4217:46:77"
                },
                {
                  "assignments": [
                    23706
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 23706,
                      "mutability": "mutable",
                      "name": "delM",
                      "nodeType": "VariableDeclaration",
                      "overrides": null,
                      "scope": 23750,
                      "src": "4273:11:77",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int256",
                        "typeString": "int256"
                      },
                      "typeName": {
                        "id": 23705,
                        "name": "int256",
                        "nodeType": "ElementaryTypeName",
                        "src": "4273:6:77",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 23717,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 23714,
                            "name": "d1Month",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 23640,
                            "src": "4314:7:77",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "id": 23713,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "4307:6:77",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_int256_$",
                            "typeString": "type(int256)"
                          },
                          "typeName": {
                            "id": 23712,
                            "name": "int256",
                            "nodeType": "ElementaryTypeName",
                            "src": "4307:6:77",
                            "typeDescriptions": {
                              "typeIdentifier": null,
                              "typeString": null
                            }
                          }
                        },
                        "id": 23715,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "4307:15:77",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 23709,
                            "name": "d2Month",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 23649,
                            "src": "4294:7:77",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "id": 23708,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "4287:6:77",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_int256_$",
                            "typeString": "type(int256)"
                          },
                          "typeName": {
                            "id": 23707,
                            "name": "int256",
                            "nodeType": "ElementaryTypeName",
                            "src": "4287:6:77",
                            "typeDescriptions": {
                              "typeIdentifier": null,
                              "typeString": null
                            }
                          }
                        },
                        "id": 23710,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "4287:15:77",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        }
                      },
                      "id": 23711,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "sub",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 38819,
                      "src": "4287:19:77",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_int256_$bound_to$_t_int256_$",
                        "typeString": "function (int256,int256) pure returns (int256)"
                      }
                    },
                    "id": 23716,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4287:36:77",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_int256",
                      "typeString": "int256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "4273:50:77"
                },
                {
                  "assignments": [
                    23719
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 23719,
                      "mutability": "mutable",
                      "name": "delY",
                      "nodeType": "VariableDeclaration",
                      "overrides": null,
                      "scope": 23750,
                      "src": "4333:11:77",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int256",
                        "typeString": "int256"
                      },
                      "typeName": {
                        "id": 23718,
                        "name": "int256",
                        "nodeType": "ElementaryTypeName",
                        "src": "4333:6:77",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 23730,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 23727,
                            "name": "d1Year",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 23643,
                            "src": "4373:6:77",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "id": 23726,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "4366:6:77",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_int256_$",
                            "typeString": "type(int256)"
                          },
                          "typeName": {
                            "id": 23725,
                            "name": "int256",
                            "nodeType": "ElementaryTypeName",
                            "src": "4366:6:77",
                            "typeDescriptions": {
                              "typeIdentifier": null,
                              "typeString": null
                            }
                          }
                        },
                        "id": 23728,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "4366:14:77",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 23722,
                            "name": "d2Year",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 23652,
                            "src": "4354:6:77",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "id": 23721,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "4347:6:77",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_int256_$",
                            "typeString": "type(int256)"
                          },
                          "typeName": {
                            "id": 23720,
                            "name": "int256",
                            "nodeType": "ElementaryTypeName",
                            "src": "4347:6:77",
                            "typeDescriptions": {
                              "typeIdentifier": null,
                              "typeString": null
                            }
                          }
                        },
                        "id": 23723,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "4347:14:77",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        }
                      },
                      "id": 23724,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "sub",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 38819,
                      "src": "4347:18:77",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_int256_$bound_to$_t_int256_$",
                        "typeString": "function (int256,int256) pure returns (int256)"
                      }
                    },
                    "id": 23729,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4347:34:77",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_int256",
                      "typeString": "int256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "4333:48:77"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "components": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "hexValue": "333630",
                            "id": 23746,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "4453:3:77",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_360_by_1",
                              "typeString": "int_const 360"
                            },
                            "value": "360"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_rational_360_by_1",
                              "typeString": "int_const 360"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "components": [
                              {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "id": 23742,
                                    "name": "delD",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 23693,
                                    "src": "4437:4:77",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_int256",
                                      "typeString": "int256"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_int256",
                                      "typeString": "int256"
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": null,
                                    "arguments": [
                                      {
                                        "argumentTypes": null,
                                        "arguments": [
                                          {
                                            "argumentTypes": null,
                                            "hexValue": "3330",
                                            "id": 23738,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "number",
                                            "lValueRequested": false,
                                            "nodeType": "Literal",
                                            "src": "4428:2:77",
                                            "subdenomination": null,
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_rational_30_by_1",
                                              "typeString": "int_const 30"
                                            },
                                            "value": "30"
                                          }
                                        ],
                                        "expression": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_rational_30_by_1",
                                              "typeString": "int_const 30"
                                            }
                                          ],
                                          "expression": {
                                            "argumentTypes": null,
                                            "id": 23736,
                                            "name": "delM",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 23706,
                                            "src": "4419:4:77",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_int256",
                                              "typeString": "int256"
                                            }
                                          },
                                          "id": 23737,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "memberName": "mul",
                                          "nodeType": "MemberAccess",
                                          "referencedDeclaration": 38739,
                                          "src": "4419:8:77",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_int256_$bound_to$_t_int256_$",
                                            "typeString": "function (int256,int256) pure returns (int256)"
                                          }
                                        },
                                        "id": 23739,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "4419:12:77",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_int256",
                                          "typeString": "int256"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_int256",
                                          "typeString": "int256"
                                        }
                                      ],
                                      "expression": {
                                        "argumentTypes": null,
                                        "arguments": [
                                          {
                                            "argumentTypes": null,
                                            "hexValue": "333630",
                                            "id": 23733,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "number",
                                            "lValueRequested": false,
                                            "nodeType": "Literal",
                                            "src": "4410:3:77",
                                            "subdenomination": null,
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_rational_360_by_1",
                                              "typeString": "int_const 360"
                                            },
                                            "value": "360"
                                          }
                                        ],
                                        "expression": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_rational_360_by_1",
                                              "typeString": "int_const 360"
                                            }
                                          ],
                                          "expression": {
                                            "argumentTypes": null,
                                            "id": 23731,
                                            "name": "delY",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 23719,
                                            "src": "4401:4:77",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_int256",
                                              "typeString": "int256"
                                            }
                                          },
                                          "id": 23732,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "memberName": "mul",
                                          "nodeType": "MemberAccess",
                                          "referencedDeclaration": 38739,
                                          "src": "4401:8:77",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_int256_$bound_to$_t_int256_$",
                                            "typeString": "function (int256,int256) pure returns (int256)"
                                          }
                                        },
                                        "id": 23734,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "4401:13:77",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_int256",
                                          "typeString": "int256"
                                        }
                                      },
                                      "id": 23735,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "memberName": "add",
                                      "nodeType": "MemberAccess",
                                      "referencedDeclaration": 38859,
                                      "src": "4401:17:77",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_int256_$bound_to$_t_int256_$",
                                        "typeString": "function (int256,int256) pure returns (int256)"
                                      }
                                    },
                                    "id": 23740,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "functionCall",
                                    "lValueRequested": false,
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "4401:31:77",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_int256",
                                      "typeString": "int256"
                                    }
                                  },
                                  "id": 23741,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "add",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 38859,
                                  "src": "4401:35:77",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_int256_$bound_to$_t_int256_$",
                                    "typeString": "function (int256,int256) pure returns (int256)"
                                  }
                                },
                                "id": 23743,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "4401:41:77",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_int256",
                                  "typeString": "int256"
                                }
                              }
                            ],
                            "id": 23744,
                            "isConstant": false,
                            "isInlineArray": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "TupleExpression",
                            "src": "4400:43:77",
                            "typeDescriptions": {
                              "typeIdentifier": "t_int256",
                              "typeString": "int256"
                            }
                          },
                          "id": 23745,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "floatDiv",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 24193,
                          "src": "4400:52:77",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_int256_$bound_to$_t_int256_$",
                            "typeString": "function (int256,int256) pure returns (int256)"
                          }
                        },
                        "id": 23747,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "4400:57:77",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        }
                      }
                    ],
                    "id": 23748,
                    "isConstant": false,
                    "isInlineArray": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "TupleExpression",
                    "src": "4399:59:77",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int256",
                      "typeString": "int256"
                    }
                  },
                  "functionReturnParameters": 23635,
                  "id": 23749,
                  "nodeType": "Return",
                  "src": "4392:66:77"
                }
              ]
            },
            "documentation": {
              "id": 23627,
              "nodeType": "StructuredDocumentation",
              "src": "3577:52:77",
              "text": " ISDA 30E/360 day count convention"
            },
            "id": 23751,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "thirtyEThreeSixty",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 23632,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23629,
                  "mutability": "mutable",
                  "name": "startTime",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 23751,
                  "src": "3661:17:77",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 23628,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3661:7:77",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 23631,
                  "mutability": "mutable",
                  "name": "endTime",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 23751,
                  "src": "3680:15:77",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 23630,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3680:7:77",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3660:36:77"
            },
            "returnParameters": {
              "id": 23635,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23634,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 23751,
                  "src": "3744:6:77",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_int256",
                    "typeString": "int256"
                  },
                  "typeName": {
                    "id": 23633,
                    "name": "int256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3744:6:77",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int256",
                      "typeString": "int256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3743:8:77"
            },
            "scope": 23895,
            "src": "3634:831:77",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 23893,
              "nodeType": "Block",
              "src": "4681:855:77",
              "statements": [
                {
                  "assignments": [
                    23764
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 23764,
                      "mutability": "mutable",
                      "name": "d1Day",
                      "nodeType": "VariableDeclaration",
                      "overrides": null,
                      "scope": 23893,
                      "src": "4691:13:77",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 23763,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "4691:7:77",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 23765,
                  "initialValue": null,
                  "nodeType": "VariableDeclarationStatement",
                  "src": "4691:13:77"
                },
                {
                  "assignments": [
                    23767
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 23767,
                      "mutability": "mutable",
                      "name": "d1Month",
                      "nodeType": "VariableDeclaration",
                      "overrides": null,
                      "scope": 23893,
                      "src": "4714:15:77",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 23766,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "4714:7:77",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 23768,
                  "initialValue": null,
                  "nodeType": "VariableDeclarationStatement",
                  "src": "4714:15:77"
                },
                {
                  "assignments": [
                    23770
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 23770,
                      "mutability": "mutable",
                      "name": "d1Year",
                      "nodeType": "VariableDeclaration",
                      "overrides": null,
                      "scope": 23893,
                      "src": "4739:14:77",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 23769,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "4739:7:77",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 23771,
                  "initialValue": null,
                  "nodeType": "VariableDeclarationStatement",
                  "src": "4739:14:77"
                },
                {
                  "assignments": [
                    23773
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 23773,
                      "mutability": "mutable",
                      "name": "d2Day",
                      "nodeType": "VariableDeclaration",
                      "overrides": null,
                      "scope": 23893,
                      "src": "4764:13:77",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 23772,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "4764:7:77",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 23774,
                  "initialValue": null,
                  "nodeType": "VariableDeclarationStatement",
                  "src": "4764:13:77"
                },
                {
                  "assignments": [
                    23776
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 23776,
                      "mutability": "mutable",
                      "name": "d2Month",
                      "nodeType": "VariableDeclaration",
                      "overrides": null,
                      "scope": 23893,
                      "src": "4787:15:77",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 23775,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "4787:7:77",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 23777,
                  "initialValue": null,
                  "nodeType": "VariableDeclarationStatement",
                  "src": "4787:15:77"
                },
                {
                  "assignments": [
                    23779
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 23779,
                      "mutability": "mutable",
                      "name": "d2Year",
                      "nodeType": "VariableDeclaration",
                      "overrides": null,
                      "scope": 23893,
                      "src": "4812:14:77",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 23778,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "4812:7:77",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 23780,
                  "initialValue": null,
                  "nodeType": "VariableDeclarationStatement",
                  "src": "4812:14:77"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 23789,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "components": [
                        {
                          "argumentTypes": null,
                          "id": 23781,
                          "name": "d1Year",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 23770,
                          "src": "4838:6:77",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 23782,
                          "name": "d1Month",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 23767,
                          "src": "4846:7:77",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 23783,
                          "name": "d1Day",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 23764,
                          "src": "4855:5:77",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "id": 23784,
                      "isConstant": false,
                      "isInlineArray": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "TupleExpression",
                      "src": "4837:24:77",
                      "typeDescriptions": {
                        "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$",
                        "typeString": "tuple(uint256,uint256,uint256)"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 23787,
                          "name": "startTime",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 23754,
                          "src": "4908:9:77",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "id": 23785,
                          "name": "BokkyPooBahsDateTimeLibrary",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 37177,
                          "src": "4864:27:77",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_contract$_BokkyPooBahsDateTimeLibrary_$37177_$",
                            "typeString": "type(library BokkyPooBahsDateTimeLibrary)"
                          }
                        },
                        "id": 23786,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "timestampToDate",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 36063,
                        "src": "4864:43:77",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$_t_uint256_$_t_uint256_$",
                          "typeString": "function (uint256) pure returns (uint256,uint256,uint256)"
                        }
                      },
                      "id": 23788,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "4864:54:77",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$",
                        "typeString": "tuple(uint256,uint256,uint256)"
                      }
                    },
                    "src": "4837:81:77",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 23790,
                  "nodeType": "ExpressionStatement",
                  "src": "4837:81:77"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 23799,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "components": [
                        {
                          "argumentTypes": null,
                          "id": 23791,
                          "name": "d2Year",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 23779,
                          "src": "4929:6:77",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 23792,
                          "name": "d2Month",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 23776,
                          "src": "4937:7:77",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 23793,
                          "name": "d2Day",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 23773,
                          "src": "4946:5:77",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "id": 23794,
                      "isConstant": false,
                      "isInlineArray": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "TupleExpression",
                      "src": "4928:24:77",
                      "typeDescriptions": {
                        "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$",
                        "typeString": "tuple(uint256,uint256,uint256)"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 23797,
                          "name": "endTime",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 23756,
                          "src": "4999:7:77",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "id": 23795,
                          "name": "BokkyPooBahsDateTimeLibrary",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 37177,
                          "src": "4955:27:77",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_contract$_BokkyPooBahsDateTimeLibrary_$37177_$",
                            "typeString": "type(library BokkyPooBahsDateTimeLibrary)"
                          }
                        },
                        "id": 23796,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "timestampToDate",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 36063,
                        "src": "4955:43:77",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$_t_uint256_$_t_uint256_$",
                          "typeString": "function (uint256) pure returns (uint256,uint256,uint256)"
                        }
                      },
                      "id": 23798,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "4955:52:77",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$",
                        "typeString": "tuple(uint256,uint256,uint256)"
                      }
                    },
                    "src": "4928:79:77",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 23800,
                  "nodeType": "ExpressionStatement",
                  "src": "4928:79:77"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 23806,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 23801,
                      "name": "d1Day",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 23764,
                      "src": "5022:5:77",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 23804,
                          "name": "startTime",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 23754,
                          "src": "5074:9:77",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "id": 23802,
                          "name": "BokkyPooBahsDateTimeLibrary",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 37177,
                          "src": "5031:27:77",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_contract$_BokkyPooBahsDateTimeLibrary_$37177_$",
                            "typeString": "type(library BokkyPooBahsDateTimeLibrary)"
                          }
                        },
                        "id": 23803,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "getDaysInMonth",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 36320,
                        "src": "5031:42:77",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$",
                          "typeString": "function (uint256) pure returns (uint256)"
                        }
                      },
                      "id": 23805,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "5031:53:77",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "5022:62:77",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 23812,
                  "nodeType": "IfStatement",
                  "src": "5018:103:77",
                  "trueBody": {
                    "id": 23811,
                    "nodeType": "Block",
                    "src": "5086:35:77",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 23809,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 23807,
                            "name": "d1Day",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 23764,
                            "src": "5100:5:77",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "hexValue": "3330",
                            "id": 23808,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "5108:2:77",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_30_by_1",
                              "typeString": "int_const 30"
                            },
                            "value": "30"
                          },
                          "src": "5100:10:77",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 23810,
                        "nodeType": "ExpressionStatement",
                        "src": "5100:10:77"
                      }
                    ]
                  }
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    },
                    "id": 23828,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 23821,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "!",
                      "prefix": true,
                      "src": "5135:42:77",
                      "subExpression": {
                        "argumentTypes": null,
                        "components": [
                          {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            },
                            "id": 23819,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "id": 23815,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "argumentTypes": null,
                                "id": 23813,
                                "name": "endTime",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 23756,
                                "src": "5137:7:77",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "==",
                              "rightExpression": {
                                "argumentTypes": null,
                                "id": 23814,
                                "name": "maturityDate",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 23758,
                                "src": "5148:12:77",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "src": "5137:23:77",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "&&",
                            "rightExpression": {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "id": 23818,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "argumentTypes": null,
                                "id": 23816,
                                "name": "d2Month",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 23776,
                                "src": "5164:7:77",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "==",
                              "rightExpression": {
                                "argumentTypes": null,
                                "hexValue": "32",
                                "id": 23817,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "5175:1:77",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_2_by_1",
                                  "typeString": "int_const 2"
                                },
                                "value": "2"
                              },
                              "src": "5164:12:77",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            "src": "5137:39:77",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          }
                        ],
                        "id": 23820,
                        "isConstant": false,
                        "isInlineArray": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "TupleExpression",
                        "src": "5136:41:77",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "&&",
                    "rightExpression": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "id": 23827,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "id": 23822,
                        "name": "d2Day",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 23773,
                        "src": "5181:5:77",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "==",
                      "rightExpression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 23825,
                            "name": "endTime",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 23756,
                            "src": "5233:7:77",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 23823,
                            "name": "BokkyPooBahsDateTimeLibrary",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 37177,
                            "src": "5190:27:77",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_contract$_BokkyPooBahsDateTimeLibrary_$37177_$",
                              "typeString": "type(library BokkyPooBahsDateTimeLibrary)"
                            }
                          },
                          "id": 23824,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "getDaysInMonth",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 36320,
                          "src": "5190:42:77",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$",
                            "typeString": "function (uint256) pure returns (uint256)"
                          }
                        },
                        "id": 23826,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "5190:51:77",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "src": "5181:60:77",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "5135:106:77",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 23834,
                  "nodeType": "IfStatement",
                  "src": "5131:147:77",
                  "trueBody": {
                    "id": 23833,
                    "nodeType": "Block",
                    "src": "5243:35:77",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 23831,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 23829,
                            "name": "d2Day",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 23773,
                            "src": "5257:5:77",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "hexValue": "3330",
                            "id": 23830,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "5265:2:77",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_30_by_1",
                              "typeString": "int_const 30"
                            },
                            "value": "30"
                          },
                          "src": "5257:10:77",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 23832,
                        "nodeType": "ExpressionStatement",
                        "src": "5257:10:77"
                      }
                    ]
                  }
                },
                {
                  "assignments": [
                    23836
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 23836,
                      "mutability": "mutable",
                      "name": "delD",
                      "nodeType": "VariableDeclaration",
                      "overrides": null,
                      "scope": 23893,
                      "src": "5288:11:77",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int256",
                        "typeString": "int256"
                      },
                      "typeName": {
                        "id": 23835,
                        "name": "int256",
                        "nodeType": "ElementaryTypeName",
                        "src": "5288:6:77",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 23847,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 23844,
                            "name": "d1Day",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 23764,
                            "src": "5327:5:77",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "id": 23843,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "5320:6:77",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_int256_$",
                            "typeString": "type(int256)"
                          },
                          "typeName": {
                            "id": 23842,
                            "name": "int256",
                            "nodeType": "ElementaryTypeName",
                            "src": "5320:6:77",
                            "typeDescriptions": {
                              "typeIdentifier": null,
                              "typeString": null
                            }
                          }
                        },
                        "id": 23845,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "5320:13:77",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 23839,
                            "name": "d2Day",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 23773,
                            "src": "5309:5:77",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "id": 23838,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "5302:6:77",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_int256_$",
                            "typeString": "type(int256)"
                          },
                          "typeName": {
                            "id": 23837,
                            "name": "int256",
                            "nodeType": "ElementaryTypeName",
                            "src": "5302:6:77",
                            "typeDescriptions": {
                              "typeIdentifier": null,
                              "typeString": null
                            }
                          }
                        },
                        "id": 23840,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "5302:13:77",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        }
                      },
                      "id": 23841,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "sub",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 38819,
                      "src": "5302:17:77",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_int256_$bound_to$_t_int256_$",
                        "typeString": "function (int256,int256) pure returns (int256)"
                      }
                    },
                    "id": 23846,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5302:32:77",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_int256",
                      "typeString": "int256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "5288:46:77"
                },
                {
                  "assignments": [
                    23849
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 23849,
                      "mutability": "mutable",
                      "name": "delM",
                      "nodeType": "VariableDeclaration",
                      "overrides": null,
                      "scope": 23893,
                      "src": "5344:11:77",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int256",
                        "typeString": "int256"
                      },
                      "typeName": {
                        "id": 23848,
                        "name": "int256",
                        "nodeType": "ElementaryTypeName",
                        "src": "5344:6:77",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 23860,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 23857,
                            "name": "d1Month",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 23767,
                            "src": "5385:7:77",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "id": 23856,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "5378:6:77",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_int256_$",
                            "typeString": "type(int256)"
                          },
                          "typeName": {
                            "id": 23855,
                            "name": "int256",
                            "nodeType": "ElementaryTypeName",
                            "src": "5378:6:77",
                            "typeDescriptions": {
                              "typeIdentifier": null,
                              "typeString": null
                            }
                          }
                        },
                        "id": 23858,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "5378:15:77",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 23852,
                            "name": "d2Month",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 23776,
                            "src": "5365:7:77",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "id": 23851,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "5358:6:77",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_int256_$",
                            "typeString": "type(int256)"
                          },
                          "typeName": {
                            "id": 23850,
                            "name": "int256",
                            "nodeType": "ElementaryTypeName",
                            "src": "5358:6:77",
                            "typeDescriptions": {
                              "typeIdentifier": null,
                              "typeString": null
                            }
                          }
                        },
                        "id": 23853,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "5358:15:77",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        }
                      },
                      "id": 23854,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "sub",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 38819,
                      "src": "5358:19:77",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_int256_$bound_to$_t_int256_$",
                        "typeString": "function (int256,int256) pure returns (int256)"
                      }
                    },
                    "id": 23859,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5358:36:77",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_int256",
                      "typeString": "int256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "5344:50:77"
                },
                {
                  "assignments": [
                    23862
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 23862,
                      "mutability": "mutable",
                      "name": "delY",
                      "nodeType": "VariableDeclaration",
                      "overrides": null,
                      "scope": 23893,
                      "src": "5404:11:77",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_int256",
                        "typeString": "int256"
                      },
                      "typeName": {
                        "id": 23861,
                        "name": "int256",
                        "nodeType": "ElementaryTypeName",
                        "src": "5404:6:77",
                        "typeDescriptions": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 23873,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 23870,
                            "name": "d1Year",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 23770,
                            "src": "5444:6:77",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "id": 23869,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "5437:6:77",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_int256_$",
                            "typeString": "type(int256)"
                          },
                          "typeName": {
                            "id": 23868,
                            "name": "int256",
                            "nodeType": "ElementaryTypeName",
                            "src": "5437:6:77",
                            "typeDescriptions": {
                              "typeIdentifier": null,
                              "typeString": null
                            }
                          }
                        },
                        "id": 23871,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "5437:14:77",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 23865,
                            "name": "d2Year",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 23779,
                            "src": "5425:6:77",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "id": 23864,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "5418:6:77",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_int256_$",
                            "typeString": "type(int256)"
                          },
                          "typeName": {
                            "id": 23863,
                            "name": "int256",
                            "nodeType": "ElementaryTypeName",
                            "src": "5418:6:77",
                            "typeDescriptions": {
                              "typeIdentifier": null,
                              "typeString": null
                            }
                          }
                        },
                        "id": 23866,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "5418:14:77",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        }
                      },
                      "id": 23867,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "sub",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 38819,
                      "src": "5418:18:77",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_int256_$bound_to$_t_int256_$",
                        "typeString": "function (int256,int256) pure returns (int256)"
                      }
                    },
                    "id": 23872,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5418:34:77",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_int256",
                      "typeString": "int256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "5404:48:77"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "components": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "hexValue": "333630",
                            "id": 23889,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "5524:3:77",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_360_by_1",
                              "typeString": "int_const 360"
                            },
                            "value": "360"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_rational_360_by_1",
                              "typeString": "int_const 360"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "components": [
                              {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "id": 23885,
                                    "name": "delD",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 23836,
                                    "src": "5508:4:77",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_int256",
                                      "typeString": "int256"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_int256",
                                      "typeString": "int256"
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": null,
                                    "arguments": [
                                      {
                                        "argumentTypes": null,
                                        "arguments": [
                                          {
                                            "argumentTypes": null,
                                            "hexValue": "3330",
                                            "id": 23881,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "number",
                                            "lValueRequested": false,
                                            "nodeType": "Literal",
                                            "src": "5499:2:77",
                                            "subdenomination": null,
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_rational_30_by_1",
                                              "typeString": "int_const 30"
                                            },
                                            "value": "30"
                                          }
                                        ],
                                        "expression": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_rational_30_by_1",
                                              "typeString": "int_const 30"
                                            }
                                          ],
                                          "expression": {
                                            "argumentTypes": null,
                                            "id": 23879,
                                            "name": "delM",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 23849,
                                            "src": "5490:4:77",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_int256",
                                              "typeString": "int256"
                                            }
                                          },
                                          "id": 23880,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "memberName": "mul",
                                          "nodeType": "MemberAccess",
                                          "referencedDeclaration": 38739,
                                          "src": "5490:8:77",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_int256_$bound_to$_t_int256_$",
                                            "typeString": "function (int256,int256) pure returns (int256)"
                                          }
                                        },
                                        "id": 23882,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "5490:12:77",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_int256",
                                          "typeString": "int256"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_int256",
                                          "typeString": "int256"
                                        }
                                      ],
                                      "expression": {
                                        "argumentTypes": null,
                                        "arguments": [
                                          {
                                            "argumentTypes": null,
                                            "hexValue": "333630",
                                            "id": 23876,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "number",
                                            "lValueRequested": false,
                                            "nodeType": "Literal",
                                            "src": "5481:3:77",
                                            "subdenomination": null,
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_rational_360_by_1",
                                              "typeString": "int_const 360"
                                            },
                                            "value": "360"
                                          }
                                        ],
                                        "expression": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_rational_360_by_1",
                                              "typeString": "int_const 360"
                                            }
                                          ],
                                          "expression": {
                                            "argumentTypes": null,
                                            "id": 23874,
                                            "name": "delY",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 23862,
                                            "src": "5472:4:77",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_int256",
                                              "typeString": "int256"
                                            }
                                          },
                                          "id": 23875,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "memberName": "mul",
                                          "nodeType": "MemberAccess",
                                          "referencedDeclaration": 38739,
                                          "src": "5472:8:77",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_int256_$bound_to$_t_int256_$",
                                            "typeString": "function (int256,int256) pure returns (int256)"
                                          }
                                        },
                                        "id": 23877,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "5472:13:77",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_int256",
                                          "typeString": "int256"
                                        }
                                      },
                                      "id": 23878,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "memberName": "add",
                                      "nodeType": "MemberAccess",
                                      "referencedDeclaration": 38859,
                                      "src": "5472:17:77",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_int256_$bound_to$_t_int256_$",
                                        "typeString": "function (int256,int256) pure returns (int256)"
                                      }
                                    },
                                    "id": 23883,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "functionCall",
                                    "lValueRequested": false,
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "5472:31:77",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_int256",
                                      "typeString": "int256"
                                    }
                                  },
                                  "id": 23884,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "add",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 38859,
                                  "src": "5472:35:77",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_int256_$bound_to$_t_int256_$",
                                    "typeString": "function (int256,int256) pure returns (int256)"
                                  }
                                },
                                "id": 23886,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "5472:41:77",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_int256",
                                  "typeString": "int256"
                                }
                              }
                            ],
                            "id": 23887,
                            "isConstant": false,
                            "isInlineArray": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "TupleExpression",
                            "src": "5471:43:77",
                            "typeDescriptions": {
                              "typeIdentifier": "t_int256",
                              "typeString": "int256"
                            }
                          },
                          "id": 23888,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "floatDiv",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 24193,
                          "src": "5471:52:77",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_pure$_t_int256_$_t_int256_$returns$_t_int256_$bound_to$_t_int256_$",
                            "typeString": "function (int256,int256) pure returns (int256)"
                          }
                        },
                        "id": 23890,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "5471:57:77",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_int256",
                          "typeString": "int256"
                        }
                      }
                    ],
                    "id": 23891,
                    "isConstant": false,
                    "isInlineArray": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "TupleExpression",
                    "src": "5470:59:77",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int256",
                      "typeString": "int256"
                    }
                  },
                  "functionReturnParameters": 23762,
                  "id": 23892,
                  "nodeType": "Return",
                  "src": "5463:66:77"
                }
              ]
            },
            "documentation": {
              "id": 23752,
              "nodeType": "StructuredDocumentation",
              "src": "4471:57:77",
              "text": " ISDA 30E/360-ISDA day count convention"
            },
            "id": 23894,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "thirtyEThreeSixtyISDA",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 23759,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23754,
                  "mutability": "mutable",
                  "name": "startTime",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 23894,
                  "src": "4564:17:77",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 23753,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "4564:7:77",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 23756,
                  "mutability": "mutable",
                  "name": "endTime",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 23894,
                  "src": "4583:15:77",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 23755,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "4583:7:77",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 23758,
                  "mutability": "mutable",
                  "name": "maturityDate",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 23894,
                  "src": "4600:20:77",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 23757,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "4600:7:77",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4563:58:77"
            },
            "returnParameters": {
              "id": 23762,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 23761,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 23894,
                  "src": "4669:6:77",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_int256",
                    "typeString": "int256"
                  },
                  "typeName": {
                    "id": 23760,
                    "name": "int256",
                    "nodeType": "ElementaryTypeName",
                    "src": "4669:6:77",
                    "typeDescriptions": {
                      "typeIdentifier": "t_int256",
                      "typeString": "int256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4668:8:77"
            },
            "scope": 23895,
            "src": "4533:1003:77",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "internal"
          }
        ],
        "scope": 23896,
        "src": "438:5100:77"
      }
    ],
    "src": "41:5497:77"
  },
  "compiler": {
    "name": "solc",
    "version": "0.6.11+commit.5ef660b1.Emscripten.clang"
  },
  "networks": {},
  "schemaVersion": "3.2.0",
  "updatedAt": "2020-08-12T09:47:18.272Z",
  "devdoc": {
    "kind": "dev",
    "methods": {},
    "title": "DayCountConventions",
    "version": 1
  },
  "userdoc": {
    "kind": "user",
    "methods": {},
    "notice": "Implements various ISDA day count conventions as specified by ACTUS",
    "version": 1
  }
}