{
  "contractName": "CycleUtils",
  "abi": [
    {
      "inputs": [],
      "name": "MAX_CYCLE_SIZE",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "MAX_EVENT_SCHEDULE_SIZE",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "ONE_POINT_ZERO",
      "outputs": [
        {
          "internalType": "int256",
          "name": "",
          "type": "int256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "PRECISION",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "enum EndOfMonthConvention",
          "name": "eomc",
          "type": "uint8"
        },
        {
          "internalType": "uint256",
          "name": "startTime",
          "type": "uint256"
        },
        {
          "components": [
            {
              "internalType": "uint256",
              "name": "i",
              "type": "uint256"
            },
            {
              "internalType": "enum P",
              "name": "p",
              "type": "uint8"
            },
            {
              "internalType": "enum S",
              "name": "s",
              "type": "uint8"
            },
            {
              "internalType": "bool",
              "name": "isSet",
              "type": "bool"
            }
          ],
          "internalType": "struct IPS",
          "name": "cycle",
          "type": "tuple"
        }
      ],
      "name": "adjustEndOfMonthConvention",
      "outputs": [
        {
          "internalType": "enum EndOfMonthConvention",
          "name": "",
          "type": "uint8"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    }
  ],
  "bytecode": "0x608060405234801561001057600080fd5b50610494806100206000396000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c8063179331f31461005c5780636f37e55b14610085578063aaf5eb681461009a578063c40c5a98146100a2578063edc0465f146100a2575b600080fd5b61006f61006a36600461031c565b6100aa565b60405161007c91906103c6565b60405180910390f35b61008d61017a565b60405161007c91906103da565b61008d610186565b61008d61018b565b600060018460018111156100ba57fe5b1415610136576100c983610190565b6100d2846101ba565b14801561012157506002826020015160058111156100ec57fe5b1480610107575060038260200151600581111561010557fe5b145b80610121575060048260200151600581111561011f57fe5b145b1561012e57506001610173565b506000610173565b600084600181111561014457fe5b141561015257506000610173565b60405162461bcd60e51b815260040161016a906103e3565b60405180910390fd5b9392505050565b670de0b6b3a764000081565b601281565b607881565b600080806101a362015180855b046101c9565b50915091506101b2828261025f565b949350505050565b60006101b2620151808361019d565b60008080836226496581018262023ab1600483020590506004600362023ab18302010590910390600062164b09610fa0600185010205905060046105b58202058303601f019250600061098f846050028161022057fe5b0590506000605061098f83020585039050600b820560301994909401606402929092018301996002600c90940290910392909201975095509350505050565b600081600114806102705750816003145b8061027b5750816005145b806102865750816007145b806102915750816008145b8061029c575081600a145b806102a7575081600c145b156102b45750601f6102e1565b816002146102c45750601e6102e1565b6102cd836102e7565b6102d857601c6102db565b601d5b60ff1690505b92915050565b6000600482061580156102fc57506064820615155b806102e157505061019090061590565b803580151581146102e157600080fd5b600080600083850360c0811215610331578384fd5b843561033c8161044e565b9350602085013592506080603f1982011215610356578182fd5b506040516080810181811067ffffffffffffffff82111715610376578283fd5b60409081528501358152606085013560068110610391578283fd5b602082015260808501356103a48161044e565b60408201526103b68660a0870161030c565b6060820152809150509250925092565b60208101600283106103d457fe5b91905290565b90815260200190565b60208082526045908201527f456e644f664d6f6e7468436f6e76656e74696f6e2e61646a757374456e644f6660408201527f4d6f6e7468436f6e76656e74696f6e3a204154545249425554455f4e4f545f4660608201526427aaa7221760d91b608082015260a00190565b6002811061045b57600080fd5b5056fea26469706673582212201dff6380eba8426bc2c247e432c0f2b441e7d607bfaf3fbdf0ef5cfb1da4755464736f6c634300060b0033",
  "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100575760003560e01c8063179331f31461005c5780636f37e55b14610085578063aaf5eb681461009a578063c40c5a98146100a2578063edc0465f146100a2575b600080fd5b61006f61006a36600461031c565b6100aa565b60405161007c91906103c6565b60405180910390f35b61008d61017a565b60405161007c91906103da565b61008d610186565b61008d61018b565b600060018460018111156100ba57fe5b1415610136576100c983610190565b6100d2846101ba565b14801561012157506002826020015160058111156100ec57fe5b1480610107575060038260200151600581111561010557fe5b145b80610121575060048260200151600581111561011f57fe5b145b1561012e57506001610173565b506000610173565b600084600181111561014457fe5b141561015257506000610173565b60405162461bcd60e51b815260040161016a906103e3565b60405180910390fd5b9392505050565b670de0b6b3a764000081565b601281565b607881565b600080806101a362015180855b046101c9565b50915091506101b2828261025f565b949350505050565b60006101b2620151808361019d565b60008080836226496581018262023ab1600483020590506004600362023ab18302010590910390600062164b09610fa0600185010205905060046105b58202058303601f019250600061098f846050028161022057fe5b0590506000605061098f83020585039050600b820560301994909401606402929092018301996002600c90940290910392909201975095509350505050565b600081600114806102705750816003145b8061027b5750816005145b806102865750816007145b806102915750816008145b8061029c575081600a145b806102a7575081600c145b156102b45750601f6102e1565b816002146102c45750601e6102e1565b6102cd836102e7565b6102d857601c6102db565b601d5b60ff1690505b92915050565b6000600482061580156102fc57506064820615155b806102e157505061019090061590565b803580151581146102e157600080fd5b600080600083850360c0811215610331578384fd5b843561033c8161044e565b9350602085013592506080603f1982011215610356578182fd5b506040516080810181811067ffffffffffffffff82111715610376578283fd5b60409081528501358152606085013560068110610391578283fd5b602082015260808501356103a48161044e565b60408201526103b68660a0870161030c565b6060820152809150509250925092565b60208101600283106103d457fe5b91905290565b90815260200190565b60208082526045908201527f456e644f664d6f6e7468436f6e76656e74696f6e2e61646a757374456e644f6660408201527f4d6f6e7468436f6e76656e74696f6e3a204154545249425554455f4e4f545f4660608201526427aaa7221760d91b608082015260a00190565b6002811061045b57600080fd5b5056fea26469706673582212201dff6380eba8426bc2c247e432c0f2b441e7d607bfaf3fbdf0ef5cfb1da4755464736f6c634300060b0033",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
