{
  "contractName": "LTVCreditorProxy",
  "abi": [
    {
      "constant": true,
      "inputs": [
        {
          "name": "termsContract",
          "type": "address"
        },
        {
          "name": "termsContractParameters",
          "type": "bytes32"
        }
      ],
      "name": "getTermsContractCommitmentHash",
      "outputs": [
        {
          "name": "",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "components": [
            {
              "name": "maxLTV",
              "type": "uint256"
            }
          ],
          "name": "commitmentValues",
          "type": "tuple"
        },
        {
          "components": [
            {
              "name": "kernelVersion",
              "type": "address"
            },
            {
              "name": "issuanceVersion",
              "type": "address"
            },
            {
              "name": "principalAmount",
              "type": "uint256"
            },
            {
              "name": "principalToken",
              "type": "address"
            },
            {
              "name": "collateralAmount",
              "type": "uint256"
            },
            {
              "name": "collateralToken",
              "type": "address"
            },
            {
              "name": "debtor",
              "type": "address"
            },
            {
              "name": "debtorFee",
              "type": "uint256"
            },
            {
              "name": "creditor",
              "type": "address"
            },
            {
              "name": "creditorFee",
              "type": "uint256"
            },
            {
              "name": "relayer",
              "type": "address"
            },
            {
              "name": "relayerFee",
              "type": "uint256"
            },
            {
              "name": "underwriter",
              "type": "address"
            },
            {
              "name": "underwriterFee",
              "type": "uint256"
            },
            {
              "name": "underwriterRiskRating",
              "type": "uint256"
            },
            {
              "name": "termsContract",
              "type": "address"
            },
            {
              "name": "termsContractParameters",
              "type": "bytes32"
            },
            {
              "name": "expirationTimestampInSec",
              "type": "uint256"
            },
            {
              "name": "salt",
              "type": "uint256"
            },
            {
              "components": [
                {
                  "name": "v",
                  "type": "uint8"
                },
                {
                  "name": "r",
                  "type": "bytes32"
                },
                {
                  "name": "s",
                  "type": "bytes32"
                }
              ],
              "name": "debtorSignature",
              "type": "tuple"
            },
            {
              "components": [
                {
                  "name": "v",
                  "type": "uint8"
                },
                {
                  "name": "r",
                  "type": "bytes32"
                },
                {
                  "name": "s",
                  "type": "bytes32"
                }
              ],
              "name": "creditorSignature",
              "type": "tuple"
            },
            {
              "components": [
                {
                  "name": "v",
                  "type": "uint8"
                },
                {
                  "name": "r",
                  "type": "bytes32"
                },
                {
                  "name": "s",
                  "type": "bytes32"
                }
              ],
              "name": "underwriterSignature",
              "type": "tuple"
            }
          ],
          "name": "order",
          "type": "tuple"
        }
      ],
      "name": "hashCreditorCommitmentForOrder",
      "outputs": [
        {
          "name": "",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "signer",
          "type": "address"
        },
        {
          "name": "hash",
          "type": "bytes32"
        },
        {
          "components": [
            {
              "name": "v",
              "type": "uint8"
            },
            {
              "name": "r",
              "type": "bytes32"
            },
            {
              "name": "s",
              "type": "bytes32"
            }
          ],
          "name": "signature",
          "type": "tuple"
        }
      ],
      "name": "isValidSignature",
      "outputs": [
        {
          "name": "valid",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "MAX_PRICE_TTL_IN_SECONDS",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "components": [
            {
              "name": "creditor",
              "type": "address"
            },
            {
              "name": "priceFeedOperator",
              "type": "address"
            },
            {
              "components": [
                {
                  "components": [
                    {
                      "name": "maxLTV",
                      "type": "uint256"
                    }
                  ],
                  "name": "values",
                  "type": "tuple"
                },
                {
                  "components": [
                    {
                      "name": "v",
                      "type": "uint8"
                    },
                    {
                      "name": "r",
                      "type": "bytes32"
                    },
                    {
                      "name": "s",
                      "type": "bytes32"
                    }
                  ],
                  "name": "signature",
                  "type": "tuple"
                }
              ],
              "name": "creditorCommitment",
              "type": "tuple"
            },
            {
              "components": [
                {
                  "name": "value",
                  "type": "uint256"
                },
                {
                  "name": "timestamp",
                  "type": "uint256"
                },
                {
                  "name": "tokenAddress",
                  "type": "address"
                },
                {
                  "components": [
                    {
                      "name": "v",
                      "type": "uint8"
                    },
                    {
                      "name": "r",
                      "type": "bytes32"
                    },
                    {
                      "name": "s",
                      "type": "bytes32"
                    }
                  ],
                  "name": "signature",
                  "type": "tuple"
                }
              ],
              "name": "principalPrice",
              "type": "tuple"
            },
            {
              "components": [
                {
                  "name": "value",
                  "type": "uint256"
                },
                {
                  "name": "timestamp",
                  "type": "uint256"
                },
                {
                  "name": "tokenAddress",
                  "type": "address"
                },
                {
                  "components": [
                    {
                      "name": "v",
                      "type": "uint8"
                    },
                    {
                      "name": "r",
                      "type": "bytes32"
                    },
                    {
                      "name": "s",
                      "type": "bytes32"
                    }
                  ],
                  "name": "signature",
                  "type": "tuple"
                }
              ],
              "name": "collateralPrice",
              "type": "tuple"
            },
            {
              "components": [
                {
                  "name": "kernelVersion",
                  "type": "address"
                },
                {
                  "name": "issuanceVersion",
                  "type": "address"
                },
                {
                  "name": "principalAmount",
                  "type": "uint256"
                },
                {
                  "name": "principalToken",
                  "type": "address"
                },
                {
                  "name": "collateralAmount",
                  "type": "uint256"
                },
                {
                  "name": "collateralToken",
                  "type": "address"
                },
                {
                  "name": "debtor",
                  "type": "address"
                },
                {
                  "name": "debtorFee",
                  "type": "uint256"
                },
                {
                  "name": "creditor",
                  "type": "address"
                },
                {
                  "name": "creditorFee",
                  "type": "uint256"
                },
                {
                  "name": "relayer",
                  "type": "address"
                },
                {
                  "name": "relayerFee",
                  "type": "uint256"
                },
                {
                  "name": "underwriter",
                  "type": "address"
                },
                {
                  "name": "underwriterFee",
                  "type": "uint256"
                },
                {
                  "name": "underwriterRiskRating",
                  "type": "uint256"
                },
                {
                  "name": "termsContract",
                  "type": "address"
                },
                {
                  "name": "termsContractParameters",
                  "type": "bytes32"
                },
                {
                  "name": "expirationTimestampInSec",
                  "type": "uint256"
                },
                {
                  "name": "salt",
                  "type": "uint256"
                },
                {
                  "components": [
                    {
                      "name": "v",
                      "type": "uint8"
                    },
                    {
                      "name": "r",
                      "type": "bytes32"
                    },
                    {
                      "name": "s",
                      "type": "bytes32"
                    }
                  ],
                  "name": "debtorSignature",
                  "type": "tuple"
                },
                {
                  "components": [
                    {
                      "name": "v",
                      "type": "uint8"
                    },
                    {
                      "name": "r",
                      "type": "bytes32"
                    },
                    {
                      "name": "s",
                      "type": "bytes32"
                    }
                  ],
                  "name": "creditorSignature",
                  "type": "tuple"
                },
                {
                  "components": [
                    {
                      "name": "v",
                      "type": "uint8"
                    },
                    {
                      "name": "r",
                      "type": "bytes32"
                    },
                    {
                      "name": "s",
                      "type": "bytes32"
                    }
                  ],
                  "name": "underwriterSignature",
                  "type": "tuple"
                }
              ],
              "name": "order",
              "type": "tuple"
            }
          ],
          "name": "params",
          "type": "tuple"
        }
      ],
      "name": "evaluateDecision",
      "outputs": [
        {
          "name": "_success",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "",
          "type": "bytes32"
        }
      ],
      "name": "debtOfferCancelled",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "PRECISION",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "contractRegistry",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "components": [
            {
              "name": "creditor",
              "type": "address"
            },
            {
              "name": "priceFeedOperator",
              "type": "address"
            },
            {
              "components": [
                {
                  "components": [
                    {
                      "name": "maxLTV",
                      "type": "uint256"
                    }
                  ],
                  "name": "values",
                  "type": "tuple"
                },
                {
                  "components": [
                    {
                      "name": "v",
                      "type": "uint8"
                    },
                    {
                      "name": "r",
                      "type": "bytes32"
                    },
                    {
                      "name": "s",
                      "type": "bytes32"
                    }
                  ],
                  "name": "signature",
                  "type": "tuple"
                }
              ],
              "name": "creditorCommitment",
              "type": "tuple"
            },
            {
              "components": [
                {
                  "name": "value",
                  "type": "uint256"
                },
                {
                  "name": "timestamp",
                  "type": "uint256"
                },
                {
                  "name": "tokenAddress",
                  "type": "address"
                },
                {
                  "components": [
                    {
                      "name": "v",
                      "type": "uint8"
                    },
                    {
                      "name": "r",
                      "type": "bytes32"
                    },
                    {
                      "name": "s",
                      "type": "bytes32"
                    }
                  ],
                  "name": "signature",
                  "type": "tuple"
                }
              ],
              "name": "principalPrice",
              "type": "tuple"
            },
            {
              "components": [
                {
                  "name": "value",
                  "type": "uint256"
                },
                {
                  "name": "timestamp",
                  "type": "uint256"
                },
                {
                  "name": "tokenAddress",
                  "type": "address"
                },
                {
                  "components": [
                    {
                      "name": "v",
                      "type": "uint8"
                    },
                    {
                      "name": "r",
                      "type": "bytes32"
                    },
                    {
                      "name": "s",
                      "type": "bytes32"
                    }
                  ],
                  "name": "signature",
                  "type": "tuple"
                }
              ],
              "name": "collateralPrice",
              "type": "tuple"
            },
            {
              "components": [
                {
                  "name": "kernelVersion",
                  "type": "address"
                },
                {
                  "name": "issuanceVersion",
                  "type": "address"
                },
                {
                  "name": "principalAmount",
                  "type": "uint256"
                },
                {
                  "name": "principalToken",
                  "type": "address"
                },
                {
                  "name": "collateralAmount",
                  "type": "uint256"
                },
                {
                  "name": "collateralToken",
                  "type": "address"
                },
                {
                  "name": "debtor",
                  "type": "address"
                },
                {
                  "name": "debtorFee",
                  "type": "uint256"
                },
                {
                  "name": "creditor",
                  "type": "address"
                },
                {
                  "name": "creditorFee",
                  "type": "uint256"
                },
                {
                  "name": "relayer",
                  "type": "address"
                },
                {
                  "name": "relayerFee",
                  "type": "uint256"
                },
                {
                  "name": "underwriter",
                  "type": "address"
                },
                {
                  "name": "underwriterFee",
                  "type": "uint256"
                },
                {
                  "name": "underwriterRiskRating",
                  "type": "uint256"
                },
                {
                  "name": "termsContract",
                  "type": "address"
                },
                {
                  "name": "termsContractParameters",
                  "type": "bytes32"
                },
                {
                  "name": "expirationTimestampInSec",
                  "type": "uint256"
                },
                {
                  "name": "salt",
                  "type": "uint256"
                },
                {
                  "components": [
                    {
                      "name": "v",
                      "type": "uint8"
                    },
                    {
                      "name": "r",
                      "type": "bytes32"
                    },
                    {
                      "name": "s",
                      "type": "bytes32"
                    }
                  ],
                  "name": "debtorSignature",
                  "type": "tuple"
                },
                {
                  "components": [
                    {
                      "name": "v",
                      "type": "uint8"
                    },
                    {
                      "name": "r",
                      "type": "bytes32"
                    },
                    {
                      "name": "s",
                      "type": "bytes32"
                    }
                  ],
                  "name": "creditorSignature",
                  "type": "tuple"
                },
                {
                  "components": [
                    {
                      "name": "v",
                      "type": "uint8"
                    },
                    {
                      "name": "r",
                      "type": "bytes32"
                    },
                    {
                      "name": "s",
                      "type": "bytes32"
                    }
                  ],
                  "name": "underwriterSignature",
                  "type": "tuple"
                }
              ],
              "name": "order",
              "type": "tuple"
            }
          ],
          "name": "params",
          "type": "tuple"
        },
        {
          "name": "commitmentHash",
          "type": "bytes32"
        }
      ],
      "name": "evaluateConsent",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "",
          "type": "bytes32"
        }
      ],
      "name": "debtOfferFilled",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "termsContractParameters",
          "type": "bytes32"
        }
      ],
      "name": "unpackCollateralParameters",
      "outputs": [
        {
          "components": [
            {
              "name": "collateralTokenIndex",
              "type": "uint256"
            },
            {
              "name": "collateralAmount",
              "type": "uint256"
            },
            {
              "name": "gracePeriodInDays",
              "type": "uint256"
            }
          ],
          "name": "",
          "type": "tuple"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "components": [
            {
              "name": "kernelVersion",
              "type": "address"
            },
            {
              "name": "issuanceVersion",
              "type": "address"
            },
            {
              "name": "principalAmount",
              "type": "uint256"
            },
            {
              "name": "principalToken",
              "type": "address"
            },
            {
              "name": "collateralAmount",
              "type": "uint256"
            },
            {
              "name": "collateralToken",
              "type": "address"
            },
            {
              "name": "debtor",
              "type": "address"
            },
            {
              "name": "debtorFee",
              "type": "uint256"
            },
            {
              "name": "creditor",
              "type": "address"
            },
            {
              "name": "creditorFee",
              "type": "uint256"
            },
            {
              "name": "relayer",
              "type": "address"
            },
            {
              "name": "relayerFee",
              "type": "uint256"
            },
            {
              "name": "underwriter",
              "type": "address"
            },
            {
              "name": "underwriterFee",
              "type": "uint256"
            },
            {
              "name": "underwriterRiskRating",
              "type": "uint256"
            },
            {
              "name": "termsContract",
              "type": "address"
            },
            {
              "name": "termsContractParameters",
              "type": "bytes32"
            },
            {
              "name": "expirationTimestampInSec",
              "type": "uint256"
            },
            {
              "name": "salt",
              "type": "uint256"
            },
            {
              "components": [
                {
                  "name": "v",
                  "type": "uint8"
                },
                {
                  "name": "r",
                  "type": "bytes32"
                },
                {
                  "name": "s",
                  "type": "bytes32"
                }
              ],
              "name": "debtorSignature",
              "type": "tuple"
            },
            {
              "components": [
                {
                  "name": "v",
                  "type": "uint8"
                },
                {
                  "name": "r",
                  "type": "bytes32"
                },
                {
                  "name": "s",
                  "type": "bytes32"
                }
              ],
              "name": "creditorSignature",
              "type": "tuple"
            },
            {
              "components": [
                {
                  "name": "v",
                  "type": "uint8"
                },
                {
                  "name": "r",
                  "type": "bytes32"
                },
                {
                  "name": "s",
                  "type": "bytes32"
                }
              ],
              "name": "underwriterSignature",
              "type": "tuple"
            }
          ],
          "name": "order",
          "type": "tuple"
        }
      ],
      "name": "unpackDebtOrder",
      "outputs": [
        {
          "name": "orderAddresses",
          "type": "address[6]"
        },
        {
          "name": "orderValues",
          "type": "uint256[8]"
        },
        {
          "name": "orderBytes32",
          "type": "bytes32[1]"
        },
        {
          "name": "signaturesV",
          "type": "uint8[3]"
        },
        {
          "name": "signaturesR",
          "type": "bytes32[3]"
        },
        {
          "name": "signaturesS",
          "type": "bytes32[3]"
        }
      ],
      "payable": false,
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "termsContract",
          "type": "address"
        },
        {
          "name": "termsContractParameters",
          "type": "bytes32"
        }
      ],
      "name": "unpackSimpleInterestParameters",
      "outputs": [
        {
          "components": [
            {
              "name": "principalTokenIndex",
              "type": "uint256"
            },
            {
              "name": "principalAmount",
              "type": "uint256"
            },
            {
              "name": "interestRate",
              "type": "uint256"
            },
            {
              "name": "amortizationUnitType",
              "type": "uint256"
            },
            {
              "name": "termLengthInAmortizationUnits",
              "type": "uint256"
            }
          ],
          "name": "",
          "type": "tuple"
        }
      ],
      "payable": false,
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "inputs": [
        {
          "name": "_contractRegistry",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "_creditor",
          "type": "address"
        },
        {
          "indexed": true,
          "name": "_creditorCommitmentHash",
          "type": "bytes32"
        }
      ],
      "name": "DebtOfferCancelled",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "_creditor",
          "type": "address"
        },
        {
          "indexed": true,
          "name": "_creditorCommitmentHash",
          "type": "bytes32"
        },
        {
          "indexed": true,
          "name": "_agreementId",
          "type": "bytes32"
        }
      ],
      "name": "DebtOfferFilled",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "_errorId",
          "type": "uint8"
        },
        {
          "indexed": true,
          "name": "_creditor",
          "type": "address"
        },
        {
          "indexed": true,
          "name": "_creditorCommitmentHash",
          "type": "bytes32"
        }
      ],
      "name": "CreditorProxyError",
      "type": "event"
    },
    {
      "constant": false,
      "inputs": [
        {
          "components": [
            {
              "name": "creditor",
              "type": "address"
            },
            {
              "name": "priceFeedOperator",
              "type": "address"
            },
            {
              "components": [
                {
                  "components": [
                    {
                      "name": "maxLTV",
                      "type": "uint256"
                    }
                  ],
                  "name": "values",
                  "type": "tuple"
                },
                {
                  "components": [
                    {
                      "name": "v",
                      "type": "uint8"
                    },
                    {
                      "name": "r",
                      "type": "bytes32"
                    },
                    {
                      "name": "s",
                      "type": "bytes32"
                    }
                  ],
                  "name": "signature",
                  "type": "tuple"
                }
              ],
              "name": "creditorCommitment",
              "type": "tuple"
            },
            {
              "components": [
                {
                  "name": "value",
                  "type": "uint256"
                },
                {
                  "name": "timestamp",
                  "type": "uint256"
                },
                {
                  "name": "tokenAddress",
                  "type": "address"
                },
                {
                  "components": [
                    {
                      "name": "v",
                      "type": "uint8"
                    },
                    {
                      "name": "r",
                      "type": "bytes32"
                    },
                    {
                      "name": "s",
                      "type": "bytes32"
                    }
                  ],
                  "name": "signature",
                  "type": "tuple"
                }
              ],
              "name": "principalPrice",
              "type": "tuple"
            },
            {
              "components": [
                {
                  "name": "value",
                  "type": "uint256"
                },
                {
                  "name": "timestamp",
                  "type": "uint256"
                },
                {
                  "name": "tokenAddress",
                  "type": "address"
                },
                {
                  "components": [
                    {
                      "name": "v",
                      "type": "uint8"
                    },
                    {
                      "name": "r",
                      "type": "bytes32"
                    },
                    {
                      "name": "s",
                      "type": "bytes32"
                    }
                  ],
                  "name": "signature",
                  "type": "tuple"
                }
              ],
              "name": "collateralPrice",
              "type": "tuple"
            },
            {
              "components": [
                {
                  "name": "kernelVersion",
                  "type": "address"
                },
                {
                  "name": "issuanceVersion",
                  "type": "address"
                },
                {
                  "name": "principalAmount",
                  "type": "uint256"
                },
                {
                  "name": "principalToken",
                  "type": "address"
                },
                {
                  "name": "collateralAmount",
                  "type": "uint256"
                },
                {
                  "name": "collateralToken",
                  "type": "address"
                },
                {
                  "name": "debtor",
                  "type": "address"
                },
                {
                  "name": "debtorFee",
                  "type": "uint256"
                },
                {
                  "name": "creditor",
                  "type": "address"
                },
                {
                  "name": "creditorFee",
                  "type": "uint256"
                },
                {
                  "name": "relayer",
                  "type": "address"
                },
                {
                  "name": "relayerFee",
                  "type": "uint256"
                },
                {
                  "name": "underwriter",
                  "type": "address"
                },
                {
                  "name": "underwriterFee",
                  "type": "uint256"
                },
                {
                  "name": "underwriterRiskRating",
                  "type": "uint256"
                },
                {
                  "name": "termsContract",
                  "type": "address"
                },
                {
                  "name": "termsContractParameters",
                  "type": "bytes32"
                },
                {
                  "name": "expirationTimestampInSec",
                  "type": "uint256"
                },
                {
                  "name": "salt",
                  "type": "uint256"
                },
                {
                  "components": [
                    {
                      "name": "v",
                      "type": "uint8"
                    },
                    {
                      "name": "r",
                      "type": "bytes32"
                    },
                    {
                      "name": "s",
                      "type": "bytes32"
                    }
                  ],
                  "name": "debtorSignature",
                  "type": "tuple"
                },
                {
                  "components": [
                    {
                      "name": "v",
                      "type": "uint8"
                    },
                    {
                      "name": "r",
                      "type": "bytes32"
                    },
                    {
                      "name": "s",
                      "type": "bytes32"
                    }
                  ],
                  "name": "creditorSignature",
                  "type": "tuple"
                },
                {
                  "components": [
                    {
                      "name": "v",
                      "type": "uint8"
                    },
                    {
                      "name": "r",
                      "type": "bytes32"
                    },
                    {
                      "name": "s",
                      "type": "bytes32"
                    }
                  ],
                  "name": "underwriterSignature",
                  "type": "tuple"
                }
              ],
              "name": "order",
              "type": "tuple"
            }
          ],
          "name": "params",
          "type": "tuple"
        }
      ],
      "name": "fillDebtOffer",
      "outputs": [
        {
          "name": "id",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "components": [
            {
              "name": "creditor",
              "type": "address"
            },
            {
              "name": "priceFeedOperator",
              "type": "address"
            },
            {
              "components": [
                {
                  "components": [
                    {
                      "name": "maxLTV",
                      "type": "uint256"
                    }
                  ],
                  "name": "values",
                  "type": "tuple"
                },
                {
                  "components": [
                    {
                      "name": "v",
                      "type": "uint8"
                    },
                    {
                      "name": "r",
                      "type": "bytes32"
                    },
                    {
                      "name": "s",
                      "type": "bytes32"
                    }
                  ],
                  "name": "signature",
                  "type": "tuple"
                }
              ],
              "name": "creditorCommitment",
              "type": "tuple"
            },
            {
              "components": [
                {
                  "name": "value",
                  "type": "uint256"
                },
                {
                  "name": "timestamp",
                  "type": "uint256"
                },
                {
                  "name": "tokenAddress",
                  "type": "address"
                },
                {
                  "components": [
                    {
                      "name": "v",
                      "type": "uint8"
                    },
                    {
                      "name": "r",
                      "type": "bytes32"
                    },
                    {
                      "name": "s",
                      "type": "bytes32"
                    }
                  ],
                  "name": "signature",
                  "type": "tuple"
                }
              ],
              "name": "principalPrice",
              "type": "tuple"
            },
            {
              "components": [
                {
                  "name": "value",
                  "type": "uint256"
                },
                {
                  "name": "timestamp",
                  "type": "uint256"
                },
                {
                  "name": "tokenAddress",
                  "type": "address"
                },
                {
                  "components": [
                    {
                      "name": "v",
                      "type": "uint8"
                    },
                    {
                      "name": "r",
                      "type": "bytes32"
                    },
                    {
                      "name": "s",
                      "type": "bytes32"
                    }
                  ],
                  "name": "signature",
                  "type": "tuple"
                }
              ],
              "name": "collateralPrice",
              "type": "tuple"
            },
            {
              "components": [
                {
                  "name": "kernelVersion",
                  "type": "address"
                },
                {
                  "name": "issuanceVersion",
                  "type": "address"
                },
                {
                  "name": "principalAmount",
                  "type": "uint256"
                },
                {
                  "name": "principalToken",
                  "type": "address"
                },
                {
                  "name": "collateralAmount",
                  "type": "uint256"
                },
                {
                  "name": "collateralToken",
                  "type": "address"
                },
                {
                  "name": "debtor",
                  "type": "address"
                },
                {
                  "name": "debtorFee",
                  "type": "uint256"
                },
                {
                  "name": "creditor",
                  "type": "address"
                },
                {
                  "name": "creditorFee",
                  "type": "uint256"
                },
                {
                  "name": "relayer",
                  "type": "address"
                },
                {
                  "name": "relayerFee",
                  "type": "uint256"
                },
                {
                  "name": "underwriter",
                  "type": "address"
                },
                {
                  "name": "underwriterFee",
                  "type": "uint256"
                },
                {
                  "name": "underwriterRiskRating",
                  "type": "uint256"
                },
                {
                  "name": "termsContract",
                  "type": "address"
                },
                {
                  "name": "termsContractParameters",
                  "type": "bytes32"
                },
                {
                  "name": "expirationTimestampInSec",
                  "type": "uint256"
                },
                {
                  "name": "salt",
                  "type": "uint256"
                },
                {
                  "components": [
                    {
                      "name": "v",
                      "type": "uint8"
                    },
                    {
                      "name": "r",
                      "type": "bytes32"
                    },
                    {
                      "name": "s",
                      "type": "bytes32"
                    }
                  ],
                  "name": "debtorSignature",
                  "type": "tuple"
                },
                {
                  "components": [
                    {
                      "name": "v",
                      "type": "uint8"
                    },
                    {
                      "name": "r",
                      "type": "bytes32"
                    },
                    {
                      "name": "s",
                      "type": "bytes32"
                    }
                  ],
                  "name": "creditorSignature",
                  "type": "tuple"
                },
                {
                  "components": [
                    {
                      "name": "v",
                      "type": "uint8"
                    },
                    {
                      "name": "r",
                      "type": "bytes32"
                    },
                    {
                      "name": "s",
                      "type": "bytes32"
                    }
                  ],
                  "name": "underwriterSignature",
                  "type": "tuple"
                }
              ],
              "name": "order",
              "type": "tuple"
            }
          ],
          "name": "params",
          "type": "tuple"
        }
      ],
      "name": "cancelDebtOffer",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ],
  "bytecode": "0x60806040523480156200001157600080fd5b506040516020806200259c833981018060405262000033919081019062000092565b80806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050620000de565b60006200008a8251620000be565b905092915050565b600060208284031215620000a557600080fd5b6000620000b5848285016200007c565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6124ae80620000ee6000396000f3006080604052600436106100db576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630257dbc9146100e05780630a89d47c1461011d578063314bdcdc1461015a578063578911ac146101975780637c3ea9fc146101d4578063879ffab0146101ff578063a318b5f71461023c578063aaf5eb6814610279578063abf410e5146102a4578063b120f0b4146102cf578063c1614d001461030c578063cc9dbb1314610349578063cf99685c14610386578063e301885c146103c3578063e7083d2414610405575b600080fd5b3480156100ec57600080fd5b5061010760048036036101029190810190611cb1565b610442565b604051610114919061221f565b60405180910390f35b34801561012957600080fd5b50610144600480360361013f9190810190611d8e565b6104d7565b604051610151919061221f565b60405180910390f35b34801561016657600080fd5b50610181600480360361017c9190810190611df5565b6106bb565b60405161018e9190612204565b60405180910390f35b3480156101a357600080fd5b506101be60048036036101b99190810190611ced565b6107a0565b6040516101cb9190612204565b60405180910390f35b3480156101e057600080fd5b506101e96108e2565b6040516101f691906122d0565b60405180910390f35b34801561020b57600080fd5b5061022660048036036102219190810190611df5565b6108e8565b6040516102339190612204565b60405180910390f35b34801561024857600080fd5b50610263600480360361025e9190810190611d3c565b6109ce565b6040516102709190612204565b60405180910390f35b34801561028557600080fd5b5061028e6109ee565b60405161029b91906122d0565b60405180910390f35b3480156102b057600080fd5b506102b96109f3565b6040516102c6919061227f565b60405180910390f35b3480156102db57600080fd5b506102f660048036036102f19190810190611e1f565b610a18565b6040516103039190612204565b60405180910390f35b34801561031857600080fd5b50610333600480360361032e9190810190611d3c565b610a60565b6040516103409190612204565b60405180910390f35b34801561035557600080fd5b50610370600480360361036b9190810190611df5565b610a80565b60405161037d919061221f565b60405180910390f35b34801561039257600080fd5b506103ad60048036036103a89190810190611d3c565b610af1565b6040516103ba919061229a565b60405180910390f35b3480156103cf57600080fd5b506103ea60048036036103e59190810190611dcb565b610c92565b6040516103fc9695949392919061219e565b60405180910390f35b34801561041157600080fd5b5061042c60048036036104279190810190611cb1565b610f8d565b60405161043991906122b5565b60405180910390f35b600061044c6112ad565b6104546112dd565b61045e8585610f8d565b915061046984610af1565b905081600001518260200151836040015184606001518560800151856000015186604001516040518088815260200187815260200186815260200185815260200184815260200183815260200182815260200197505050505050505060405180910390209250505092915050565b6000806104ee836101e00151846102000151610442565b905082610100015183600001518460200151856101e00151866060015187610240015188604001518961012001518a61022001518c600001518a604051808c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c0100000000000000000000000002815260140187815260200186815260200185815260200184815260200183815260200182600019166000191681526020019b505050505050505050505050604051809103902091505092915050565b60006106c56112ff565b6106cd611313565b600081610100015173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561070e57600080fd5b84604001516000015192508460a00151915061072a83836104d7565b905060026000826000191660001916815260200190815260200160002060009054906101000a900460ff1615151561076157600080fd5b6001806000836000191660001916815260200190815260200160002060006101000a81548160ff02191690831515021790555060019350505050919050565b6000806040805190810160405280601c81526020017f19457468657265756d205369676e6564204d6573736167653a0a333200000000815250846040518083805190602001908083835b60208310151561080f57805182526020820191506020810190506020830392506107ea565b6001836020036101000a038019825116818451168082178552505050505050905001826000191660001916815260200192505050604051809103902090508473ffffffffffffffffffffffffffffffffffffffff1660018285600001518660200151876040015160405160008152602001604052604051610893949392919061223a565b60206040516020810390808403906000865af11580156108b7573d6000803e3d6000fd5b5050506020604051035173ffffffffffffffffffffffffffffffffffffffff16149150509392505050565b61025881565b60006108f2611496565b6108fa611496565b6000610904611313565b600080600088606001519650886080015195508860400151600001516000015194508860a00151935085600001519250610942846102200151611088565b1561095057600097506109c2565b6000846080015114806109635750600083145b1561097157600097506109c2565b61098d8760000151876000015186604001518760800151611094565b91506109b96109a7600260046110f890919063ffffffff16565b600a0a8661111190919063ffffffff16565b90508082111597505b50505050505050919050565b60016020528060005260406000206000915054906101000a900460ff1681565b600481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610a318360000151838560400151602001516107a0565b1515610a405760009050610a5a565b610a57836020015184606001518560800151611149565b90505b92915050565b60026020528060005260406000206000915054906101000a900460ff1681565b6000610a8a611313565b610a926112ff565b60008460a0015192508460400151600001519150610ab082846104d7565b9050600160026000866000191660001916815260200190815260200160002060006101000a81548160ff021916908315150217905550839350505050919050565b610af96112dd565b6000806000806000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663869f05116040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015610b8457600080fd5b505af1158015610b98573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610bbc9190810190611d65565b93508373ffffffffffffffffffffffffffffffffffffffff1663ca062647876040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401610c13919061221f565b606060405180830381600087803b158015610c2d57600080fd5b505af1158015610c41573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610c659190810190611e5d565b92509250925060606040519081016040528084815260200183815260200182815250945050505050919050565b610c9a6114db565b610ca26114fe565b610caa611522565b610cb2611545565b610cba611568565b610cc2611568565b60c060405190810160405280886000015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018860c0015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200188610180015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001886101e0015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001886060015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200188610140015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681525061010060405190810160405280896101c001518152602001896102400151815260200189604001518152602001896101a001518152602001896101600151815260200189610120015181526020018960e0015181526020018961022001518152506020604051908101604052808a610200015160001916600019168152506060604051908101604052808b61026001516000015160ff1660ff1681526020018b61028001516000015160ff1660ff1681526020018b6102a001516000015160ff1660ff168152506060604051908101604052808c610260015160200151600019166000191681526020018c610280015160200151600019166000191681526020018c6102a001516020015160001916600019168152506060604051908101604052808d610260015160400151600019166000191681526020018d610280015160400151600019166000191681526020018d6102a0015160400151600019166000191681525095509550955095509550955091939550919395565b610f956112ad565b6000806000806000808895508573ffffffffffffffffffffffffffffffffffffffff1663ed8907d7896040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401610ff6919061221f565b60a060405180830381600087803b15801561101057600080fd5b505af1158015611024573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506110489190810190611eac565b9450945094509450945060a06040519081016040528086815260200185815260200184815260200183815260200182815250965050505050505092915050565b60004282109050919050565b60008060006110c26004600a0a6110b4878a61111190919063ffffffff16565b61111190919063ffffffff16565b91506110d7848761111190919063ffffffff16565b90506110ec818361129790919063ffffffff16565b92505050949350505050565b600082821115151561110657fe5b818303905092915050565b6000808314156111245760009050611143565b818302905081838281151561113557fe5b0414151561113f57fe5b8090505b92915050565b600080600080600061025842039350838760200151108061116d5750838660200151105b1561117b576000945061128c565b866000015187604001518860200151604051808481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c01000000000000000000000000028152601401828152602001935050505060405180910390209250856000015186604001518760200151604051808481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c01000000000000000000000000028152601401828152602001935050505060405180910390209150611268888489606001516107a0565b905080151561127a576000945061128c565b611289888388606001516107a0565b94505b505050509392505050565b600081838115156112a457fe5b04905092915050565b60a06040519081016040528060008152602001600081526020016000815260200160008152602001600081525090565b6060604051908101604052806000815260200160008152602001600081525090565b602060405190810160405280600081525090565b61038060405190810160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160008152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160008152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160008152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160008152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160008152602001600073ffffffffffffffffffffffffffffffffffffffff1681526020016000815260200160008152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160008019168152602001600081526020016000815260200161147661158b565b815260200161148361158b565b815260200161149061158b565b81525090565b60c0604051908101604052806000815260200160008152602001600073ffffffffffffffffffffffffffffffffffffffff1681526020016114d561158b565b81525090565b60c060405190810160405280600690602082028038833980820191505090505090565b61010060405190810160405280600890602082028038833980820191505090505090565b602060405190810160405280600190602082028038833980820191505090505090565b606060405190810160405280600390602082028038833980820191505090505090565b606060405190810160405280600390602082028038833980820191505090505090565b606060405190810160405280600060ff16815260200160008019168152602001600080191681525090565b60006115c2823561240f565b905092915050565b60006115d6823561242f565b905092915050565b60006115ea8251612439565b905092915050565b60006020828403121561160457600080fd5b61160e60206122eb565b9050600061161e84828501611c75565b60008301525092915050565b60006020828403121561163c57600080fd5b61164660206122eb565b9050600061165684828501611c75565b60008301525092915050565b60006080828403121561167457600080fd5b61167e60406122eb565b9050600061168e848285016115f2565b60008301525060206116a284828501611aa2565b60208301525092915050565b600061038082840312156116c157600080fd5b6116cc6102c06122eb565b905060006116dc848285016115b6565b60008301525060206116f0848285016115b6565b602083015250604061170484828501611c75565b6040830152506060611718848285016115b6565b606083015250608061172c84828501611c75565b60808301525060a0611740848285016115b6565b60a08301525060c0611754848285016115b6565b60c08301525060e061176884828501611c75565b60e08301525061010061177d848285016115b6565b6101008301525061012061179384828501611c75565b610120830152506101406117a9848285016115b6565b610140830152506101606117bf84828501611c75565b610160830152506101806117d5848285016115b6565b610180830152506101a06117eb84828501611c75565b6101a0830152506101c061180184828501611c75565b6101c0830152506101e0611817848285016115b6565b6101e08301525061020061182d848285016115ca565b6102008301525061022061184384828501611c75565b6102208301525061024061185984828501611c75565b6102408301525061026061186f84828501611aa2565b610260830152506102c061188584828501611aa2565b6102808301525061032061189b84828501611aa2565b6102a08301525092915050565b600061038082840312156118bb57600080fd5b6118c66102c06122eb565b905060006118d6848285016115b6565b60008301525060206118ea848285016115b6565b60208301525060406118fe84828501611c75565b6040830152506060611912848285016115b6565b606083015250608061192684828501611c75565b60808301525060a061193a848285016115b6565b60a08301525060c061194e848285016115b6565b60c08301525060e061196284828501611c75565b60e083015250610100611977848285016115b6565b6101008301525061012061198d84828501611c75565b610120830152506101406119a3848285016115b6565b610140830152506101606119b984828501611c75565b610160830152506101806119cf848285016115b6565b610180830152506101a06119e584828501611c75565b6101a0830152506101c06119fb84828501611c75565b6101c0830152506101e0611a11848285016115b6565b6101e083015250610200611a27848285016115ca565b61020083015250610220611a3d84828501611c75565b61022083015250610240611a5384828501611c75565b61024083015250610260611a6984828501611aa2565b610260830152506102c0611a7f84828501611aa2565b61028083015250610320611a9584828501611aa2565b6102a08301525092915050565b600060608284031215611ab457600080fd5b611abe60606122eb565b90506000611ace84828501611c9d565b6000830152506020611ae2848285016115ca565b6020830152506040611af6848285016115ca565b60408301525092915050565b600060608284031215611b1457600080fd5b611b1e60606122eb565b90506000611b2e84828501611c9d565b6000830152506020611b42848285016115ca565b6020830152506040611b56848285016115ca565b60408301525092915050565b60006105c08284031215611b7557600080fd5b611b7f60c06122eb565b90506000611b8f848285016115b6565b6000830152506020611ba3848285016115b6565b6020830152506040611bb784828501611662565b60408301525060c0611bcb84828501611c01565b606083015250610180611be084828501611c01565b608083015250610240611bf5848285016116ae565b60a08301525092915050565b600060c08284031215611c1357600080fd5b611c1d60806122eb565b90506000611c2d84828501611c75565b6000830152506020611c4184828501611c75565b6020830152506040611c55848285016115b6565b6040830152506060611c6984828501611aa2565b60608301525092915050565b6000611c81823561244b565b905092915050565b6000611c95825161244b565b905092915050565b6000611ca98235612455565b905092915050565b60008060408385031215611cc457600080fd5b6000611cd2858286016115b6565b9250506020611ce3858286016115ca565b9150509250929050565b600080600060a08486031215611d0257600080fd5b6000611d10868287016115b6565b9350506020611d21868287016115ca565b9250506040611d3286828701611b02565b9150509250925092565b600060208284031215611d4e57600080fd5b6000611d5c848285016115ca565b91505092915050565b600060208284031215611d7757600080fd5b6000611d85848285016115de565b91505092915050565b6000806103a08385031215611da257600080fd5b6000611db08582860161162a565b9250506020611dc1858286016118a8565b9150509250929050565b60006103808284031215611dde57600080fd5b6000611dec848285016118a8565b91505092915050565b60006105c08284031215611e0857600080fd5b6000611e1684828501611b62565b91505092915050565b6000806105e08385031215611e3357600080fd5b6000611e4185828601611b62565b9250506105c0611e53858286016115ca565b9150509250929050565b600080600060608486031215611e7257600080fd5b6000611e8086828701611c89565b9350506020611e9186828701611c89565b9250506040611ea286828701611c89565b9150509250925092565b600080600080600060a08688031215611ec457600080fd5b6000611ed288828901611c89565b9550506020611ee388828901611c89565b9450506040611ef488828901611c89565b9350506060611f0588828901611c89565b9250506080611f1688828901611c89565b9150509295509295909350565b611f2c816123c2565b82525050565b611f3b8161234a565b611f4482612318565b60005b82811015611f7657611f5a858351611f23565b611f6382612381565b9150602085019450600181019050611f47565b5050505050565b611f8681612355565b611f8f82612322565b60005b82811015611fc157611fa58583516120b8565b611fae8261238e565b9150602085019450600181019050611f92565b5050505050565b611fd181612360565b611fda8261232c565b60005b8281101561200c57611ff08583516120b8565b611ff98261239b565b9150602085019450600181019050611fdd565b5050505050565b61201c8161236b565b61202582612336565b60005b828110156120575761203b858351612180565b612044826123a8565b9150602085019450600181019050612028565b5050505050565b61206781612376565b61207082612340565b60005b828110156120a25761208685835161218f565b61208f826123b5565b9150602085019450600181019050612073565b5050505050565b6120b2816123e2565b82525050565b6120c1816123ee565b82525050565b6120d081612462565b82525050565b6060820160008201516120ec6000850182612180565b5060208201516120ff6020850182612180565b5060408201516121126040850182612180565b50505050565b60a08201600082015161212e6000850182612180565b5060208201516121416020850182612180565b5060408201516121546040850182612180565b5060608201516121676060850182612180565b50608082015161217a6080850182612180565b50505050565b612189816123f8565b82525050565b61219881612402565b82525050565b6000610300820190506121b46000830189611f32565b6121c160c0830188612013565b6121cf6101c0830187611f7d565b6121dd6101e083018661205e565b6121eb610240830185611fc8565b6121f96102a0830184611fc8565b979650505050505050565b600060208201905061221960008301846120a9565b92915050565b600060208201905061223460008301846120b8565b92915050565b600060808201905061224f60008301876120b8565b61225c602083018661218f565b61226960408301856120b8565b61227660608301846120b8565b95945050505050565b600060208201905061229460008301846120c7565b92915050565b60006060820190506122af60008301846120d6565b92915050565b600060a0820190506122ca6000830184612118565b92915050565b60006020820190506122e56000830184612180565b92915050565b6000604051905081810181811067ffffffffffffffff8211171561230e57600080fd5b8060405250919050565b6000819050919050565b6000819050919050565b6000819050919050565b6000819050919050565b6000819050919050565b600060069050919050565b600060019050919050565b600060039050919050565b600060089050919050565b600060039050919050565b6000602082019050919050565b6000602082019050919050565b6000602082019050919050565b6000602082019050919050565b6000602082019050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60008115159050919050565b6000819050919050565b6000819050919050565b600060ff82169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b6000612444826123c2565b9050919050565b6000819050919050565b600060ff82169050919050565b600061246d826123c2565b90509190505600a265627a7a7230582059669587923de5e16ffeb4cd364e99494b25895be46b7a5831b4088e1452d8b96c6578706572696d656e74616cf50037",
  "deployedBytecode": "0x6080604052600436106100db576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630257dbc9146100e05780630a89d47c1461011d578063314bdcdc1461015a578063578911ac146101975780637c3ea9fc146101d4578063879ffab0146101ff578063a318b5f71461023c578063aaf5eb6814610279578063abf410e5146102a4578063b120f0b4146102cf578063c1614d001461030c578063cc9dbb1314610349578063cf99685c14610386578063e301885c146103c3578063e7083d2414610405575b600080fd5b3480156100ec57600080fd5b5061010760048036036101029190810190611cb1565b610442565b604051610114919061221f565b60405180910390f35b34801561012957600080fd5b50610144600480360361013f9190810190611d8e565b6104d7565b604051610151919061221f565b60405180910390f35b34801561016657600080fd5b50610181600480360361017c9190810190611df5565b6106bb565b60405161018e9190612204565b60405180910390f35b3480156101a357600080fd5b506101be60048036036101b99190810190611ced565b6107a0565b6040516101cb9190612204565b60405180910390f35b3480156101e057600080fd5b506101e96108e2565b6040516101f691906122d0565b60405180910390f35b34801561020b57600080fd5b5061022660048036036102219190810190611df5565b6108e8565b6040516102339190612204565b60405180910390f35b34801561024857600080fd5b50610263600480360361025e9190810190611d3c565b6109ce565b6040516102709190612204565b60405180910390f35b34801561028557600080fd5b5061028e6109ee565b60405161029b91906122d0565b60405180910390f35b3480156102b057600080fd5b506102b96109f3565b6040516102c6919061227f565b60405180910390f35b3480156102db57600080fd5b506102f660048036036102f19190810190611e1f565b610a18565b6040516103039190612204565b60405180910390f35b34801561031857600080fd5b50610333600480360361032e9190810190611d3c565b610a60565b6040516103409190612204565b60405180910390f35b34801561035557600080fd5b50610370600480360361036b9190810190611df5565b610a80565b60405161037d919061221f565b60405180910390f35b34801561039257600080fd5b506103ad60048036036103a89190810190611d3c565b610af1565b6040516103ba919061229a565b60405180910390f35b3480156103cf57600080fd5b506103ea60048036036103e59190810190611dcb565b610c92565b6040516103fc9695949392919061219e565b60405180910390f35b34801561041157600080fd5b5061042c60048036036104279190810190611cb1565b610f8d565b60405161043991906122b5565b60405180910390f35b600061044c6112ad565b6104546112dd565b61045e8585610f8d565b915061046984610af1565b905081600001518260200151836040015184606001518560800151856000015186604001516040518088815260200187815260200186815260200185815260200184815260200183815260200182815260200197505050505050505060405180910390209250505092915050565b6000806104ee836101e00151846102000151610442565b905082610100015183600001518460200151856101e00151866060015187610240015188604001518961012001518a61022001518c600001518a604051808c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c0100000000000000000000000002815260140187815260200186815260200185815260200184815260200183815260200182600019166000191681526020019b505050505050505050505050604051809103902091505092915050565b60006106c56112ff565b6106cd611313565b600081610100015173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561070e57600080fd5b84604001516000015192508460a00151915061072a83836104d7565b905060026000826000191660001916815260200190815260200160002060009054906101000a900460ff1615151561076157600080fd5b6001806000836000191660001916815260200190815260200160002060006101000a81548160ff02191690831515021790555060019350505050919050565b6000806040805190810160405280601c81526020017f19457468657265756d205369676e6564204d6573736167653a0a333200000000815250846040518083805190602001908083835b60208310151561080f57805182526020820191506020810190506020830392506107ea565b6001836020036101000a038019825116818451168082178552505050505050905001826000191660001916815260200192505050604051809103902090508473ffffffffffffffffffffffffffffffffffffffff1660018285600001518660200151876040015160405160008152602001604052604051610893949392919061223a565b60206040516020810390808403906000865af11580156108b7573d6000803e3d6000fd5b5050506020604051035173ffffffffffffffffffffffffffffffffffffffff16149150509392505050565b61025881565b60006108f2611496565b6108fa611496565b6000610904611313565b600080600088606001519650886080015195508860400151600001516000015194508860a00151935085600001519250610942846102200151611088565b1561095057600097506109c2565b6000846080015114806109635750600083145b1561097157600097506109c2565b61098d8760000151876000015186604001518760800151611094565b91506109b96109a7600260046110f890919063ffffffff16565b600a0a8661111190919063ffffffff16565b90508082111597505b50505050505050919050565b60016020528060005260406000206000915054906101000a900460ff1681565b600481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610a318360000151838560400151602001516107a0565b1515610a405760009050610a5a565b610a57836020015184606001518560800151611149565b90505b92915050565b60026020528060005260406000206000915054906101000a900460ff1681565b6000610a8a611313565b610a926112ff565b60008460a0015192508460400151600001519150610ab082846104d7565b9050600160026000866000191660001916815260200190815260200160002060006101000a81548160ff021916908315150217905550839350505050919050565b610af96112dd565b6000806000806000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663869f05116040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015610b8457600080fd5b505af1158015610b98573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610bbc9190810190611d65565b93508373ffffffffffffffffffffffffffffffffffffffff1663ca062647876040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401610c13919061221f565b606060405180830381600087803b158015610c2d57600080fd5b505af1158015610c41573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610c659190810190611e5d565b92509250925060606040519081016040528084815260200183815260200182815250945050505050919050565b610c9a6114db565b610ca26114fe565b610caa611522565b610cb2611545565b610cba611568565b610cc2611568565b60c060405190810160405280886000015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018860c0015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200188610180015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001886101e0015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001886060015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200188610140015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681525061010060405190810160405280896101c001518152602001896102400151815260200189604001518152602001896101a001518152602001896101600151815260200189610120015181526020018960e0015181526020018961022001518152506020604051908101604052808a610200015160001916600019168152506060604051908101604052808b61026001516000015160ff1660ff1681526020018b61028001516000015160ff1660ff1681526020018b6102a001516000015160ff1660ff168152506060604051908101604052808c610260015160200151600019166000191681526020018c610280015160200151600019166000191681526020018c6102a001516020015160001916600019168152506060604051908101604052808d610260015160400151600019166000191681526020018d610280015160400151600019166000191681526020018d6102a0015160400151600019166000191681525095509550955095509550955091939550919395565b610f956112ad565b6000806000806000808895508573ffffffffffffffffffffffffffffffffffffffff1663ed8907d7896040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401610ff6919061221f565b60a060405180830381600087803b15801561101057600080fd5b505af1158015611024573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506110489190810190611eac565b9450945094509450945060a06040519081016040528086815260200185815260200184815260200183815260200182815250965050505050505092915050565b60004282109050919050565b60008060006110c26004600a0a6110b4878a61111190919063ffffffff16565b61111190919063ffffffff16565b91506110d7848761111190919063ffffffff16565b90506110ec818361129790919063ffffffff16565b92505050949350505050565b600082821115151561110657fe5b818303905092915050565b6000808314156111245760009050611143565b818302905081838281151561113557fe5b0414151561113f57fe5b8090505b92915050565b600080600080600061025842039350838760200151108061116d5750838660200151105b1561117b576000945061128c565b866000015187604001518860200151604051808481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c01000000000000000000000000028152601401828152602001935050505060405180910390209250856000015186604001518760200151604051808481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c01000000000000000000000000028152601401828152602001935050505060405180910390209150611268888489606001516107a0565b905080151561127a576000945061128c565b611289888388606001516107a0565b94505b505050509392505050565b600081838115156112a457fe5b04905092915050565b60a06040519081016040528060008152602001600081526020016000815260200160008152602001600081525090565b6060604051908101604052806000815260200160008152602001600081525090565b602060405190810160405280600081525090565b61038060405190810160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160008152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160008152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160008152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160008152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160008152602001600073ffffffffffffffffffffffffffffffffffffffff1681526020016000815260200160008152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160008019168152602001600081526020016000815260200161147661158b565b815260200161148361158b565b815260200161149061158b565b81525090565b60c0604051908101604052806000815260200160008152602001600073ffffffffffffffffffffffffffffffffffffffff1681526020016114d561158b565b81525090565b60c060405190810160405280600690602082028038833980820191505090505090565b61010060405190810160405280600890602082028038833980820191505090505090565b602060405190810160405280600190602082028038833980820191505090505090565b606060405190810160405280600390602082028038833980820191505090505090565b606060405190810160405280600390602082028038833980820191505090505090565b606060405190810160405280600060ff16815260200160008019168152602001600080191681525090565b60006115c2823561240f565b905092915050565b60006115d6823561242f565b905092915050565b60006115ea8251612439565b905092915050565b60006020828403121561160457600080fd5b61160e60206122eb565b9050600061161e84828501611c75565b60008301525092915050565b60006020828403121561163c57600080fd5b61164660206122eb565b9050600061165684828501611c75565b60008301525092915050565b60006080828403121561167457600080fd5b61167e60406122eb565b9050600061168e848285016115f2565b60008301525060206116a284828501611aa2565b60208301525092915050565b600061038082840312156116c157600080fd5b6116cc6102c06122eb565b905060006116dc848285016115b6565b60008301525060206116f0848285016115b6565b602083015250604061170484828501611c75565b6040830152506060611718848285016115b6565b606083015250608061172c84828501611c75565b60808301525060a0611740848285016115b6565b60a08301525060c0611754848285016115b6565b60c08301525060e061176884828501611c75565b60e08301525061010061177d848285016115b6565b6101008301525061012061179384828501611c75565b610120830152506101406117a9848285016115b6565b610140830152506101606117bf84828501611c75565b610160830152506101806117d5848285016115b6565b610180830152506101a06117eb84828501611c75565b6101a0830152506101c061180184828501611c75565b6101c0830152506101e0611817848285016115b6565b6101e08301525061020061182d848285016115ca565b6102008301525061022061184384828501611c75565b6102208301525061024061185984828501611c75565b6102408301525061026061186f84828501611aa2565b610260830152506102c061188584828501611aa2565b6102808301525061032061189b84828501611aa2565b6102a08301525092915050565b600061038082840312156118bb57600080fd5b6118c66102c06122eb565b905060006118d6848285016115b6565b60008301525060206118ea848285016115b6565b60208301525060406118fe84828501611c75565b6040830152506060611912848285016115b6565b606083015250608061192684828501611c75565b60808301525060a061193a848285016115b6565b60a08301525060c061194e848285016115b6565b60c08301525060e061196284828501611c75565b60e083015250610100611977848285016115b6565b6101008301525061012061198d84828501611c75565b610120830152506101406119a3848285016115b6565b610140830152506101606119b984828501611c75565b610160830152506101806119cf848285016115b6565b610180830152506101a06119e584828501611c75565b6101a0830152506101c06119fb84828501611c75565b6101c0830152506101e0611a11848285016115b6565b6101e083015250610200611a27848285016115ca565b61020083015250610220611a3d84828501611c75565b61022083015250610240611a5384828501611c75565b61024083015250610260611a6984828501611aa2565b610260830152506102c0611a7f84828501611aa2565b61028083015250610320611a9584828501611aa2565b6102a08301525092915050565b600060608284031215611ab457600080fd5b611abe60606122eb565b90506000611ace84828501611c9d565b6000830152506020611ae2848285016115ca565b6020830152506040611af6848285016115ca565b60408301525092915050565b600060608284031215611b1457600080fd5b611b1e60606122eb565b90506000611b2e84828501611c9d565b6000830152506020611b42848285016115ca565b6020830152506040611b56848285016115ca565b60408301525092915050565b60006105c08284031215611b7557600080fd5b611b7f60c06122eb565b90506000611b8f848285016115b6565b6000830152506020611ba3848285016115b6565b6020830152506040611bb784828501611662565b60408301525060c0611bcb84828501611c01565b606083015250610180611be084828501611c01565b608083015250610240611bf5848285016116ae565b60a08301525092915050565b600060c08284031215611c1357600080fd5b611c1d60806122eb565b90506000611c2d84828501611c75565b6000830152506020611c4184828501611c75565b6020830152506040611c55848285016115b6565b6040830152506060611c6984828501611aa2565b60608301525092915050565b6000611c81823561244b565b905092915050565b6000611c95825161244b565b905092915050565b6000611ca98235612455565b905092915050565b60008060408385031215611cc457600080fd5b6000611cd2858286016115b6565b9250506020611ce3858286016115ca565b9150509250929050565b600080600060a08486031215611d0257600080fd5b6000611d10868287016115b6565b9350506020611d21868287016115ca565b9250506040611d3286828701611b02565b9150509250925092565b600060208284031215611d4e57600080fd5b6000611d5c848285016115ca565b91505092915050565b600060208284031215611d7757600080fd5b6000611d85848285016115de565b91505092915050565b6000806103a08385031215611da257600080fd5b6000611db08582860161162a565b9250506020611dc1858286016118a8565b9150509250929050565b60006103808284031215611dde57600080fd5b6000611dec848285016118a8565b91505092915050565b60006105c08284031215611e0857600080fd5b6000611e1684828501611b62565b91505092915050565b6000806105e08385031215611e3357600080fd5b6000611e4185828601611b62565b9250506105c0611e53858286016115ca565b9150509250929050565b600080600060608486031215611e7257600080fd5b6000611e8086828701611c89565b9350506020611e9186828701611c89565b9250506040611ea286828701611c89565b9150509250925092565b600080600080600060a08688031215611ec457600080fd5b6000611ed288828901611c89565b9550506020611ee388828901611c89565b9450506040611ef488828901611c89565b9350506060611f0588828901611c89565b9250506080611f1688828901611c89565b9150509295509295909350565b611f2c816123c2565b82525050565b611f3b8161234a565b611f4482612318565b60005b82811015611f7657611f5a858351611f23565b611f6382612381565b9150602085019450600181019050611f47565b5050505050565b611f8681612355565b611f8f82612322565b60005b82811015611fc157611fa58583516120b8565b611fae8261238e565b9150602085019450600181019050611f92565b5050505050565b611fd181612360565b611fda8261232c565b60005b8281101561200c57611ff08583516120b8565b611ff98261239b565b9150602085019450600181019050611fdd565b5050505050565b61201c8161236b565b61202582612336565b60005b828110156120575761203b858351612180565b612044826123a8565b9150602085019450600181019050612028565b5050505050565b61206781612376565b61207082612340565b60005b828110156120a25761208685835161218f565b61208f826123b5565b9150602085019450600181019050612073565b5050505050565b6120b2816123e2565b82525050565b6120c1816123ee565b82525050565b6120d081612462565b82525050565b6060820160008201516120ec6000850182612180565b5060208201516120ff6020850182612180565b5060408201516121126040850182612180565b50505050565b60a08201600082015161212e6000850182612180565b5060208201516121416020850182612180565b5060408201516121546040850182612180565b5060608201516121676060850182612180565b50608082015161217a6080850182612180565b50505050565b612189816123f8565b82525050565b61219881612402565b82525050565b6000610300820190506121b46000830189611f32565b6121c160c0830188612013565b6121cf6101c0830187611f7d565b6121dd6101e083018661205e565b6121eb610240830185611fc8565b6121f96102a0830184611fc8565b979650505050505050565b600060208201905061221960008301846120a9565b92915050565b600060208201905061223460008301846120b8565b92915050565b600060808201905061224f60008301876120b8565b61225c602083018661218f565b61226960408301856120b8565b61227660608301846120b8565b95945050505050565b600060208201905061229460008301846120c7565b92915050565b60006060820190506122af60008301846120d6565b92915050565b600060a0820190506122ca6000830184612118565b92915050565b60006020820190506122e56000830184612180565b92915050565b6000604051905081810181811067ffffffffffffffff8211171561230e57600080fd5b8060405250919050565b6000819050919050565b6000819050919050565b6000819050919050565b6000819050919050565b6000819050919050565b600060069050919050565b600060019050919050565b600060039050919050565b600060089050919050565b600060039050919050565b6000602082019050919050565b6000602082019050919050565b6000602082019050919050565b6000602082019050919050565b6000602082019050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60008115159050919050565b6000819050919050565b6000819050919050565b600060ff82169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b6000612444826123c2565b9050919050565b6000819050919050565b600060ff82169050919050565b600061246d826123c2565b90509190505600a265627a7a7230582059669587923de5e16ffeb4cd364e99494b25895be46b7a5831b4088e1452d8b96c6578706572696d656e74616cf50037",
  "sourceMap": "228:2816:2:-;;;474:92;8:9:-1;5:2;;;30:1;27;20:12;5:2;474:92:2;;;;;;;;;;;;;;;;;;;;;;545:17;904::0;859:16;;:63;;;;;;;;;;;;;;;;;;788:141;474:92:2;228:2816;;5:122:-1;;83:39;114:6;108:13;83:39;;;74:48;;68:59;;;;;134:263;;249:2;237:9;228:7;224:23;220:32;217:2;;;265:1;262;255:12;217:2;300:1;317:64;373:7;364:6;353:9;349:22;317:64;;;307:74;;279:108;211:186;;;;;404:128;;484:42;477:5;473:54;462:65;;456:76;;;;228:2816:2;;;;;;;",
  "deployedSourceMap": "228:2816:2:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3098:781:0;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3098:781:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2443:652;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2443:652:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2460:582:2;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2460:582:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;228:268:14;;8:9:-1;5:2;;;30:1;27;20:12;5:2;228:268:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;680:51:0;;8:9:-1;5:2;;;30:1;27;20:12;5:2;680:51:0;;;;;;;;;;;;;;;;;;;;1609:831;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1609:831:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;307:51:2;;8:9:-1;5:2;;;30:1;27;20:12;5:2;307:51:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;642:34:0;;8:9:-1;5:2;;;30:1;27;20:12;5:2;642:34:0;;;;;;;;;;;;;;;;;;;;735:49;;8:9:-1;5:2;;;30:1;27;20:12;5:2;735:49:0;;;;;;;;;;;;;;;;;;;;932:578;;8:9:-1;5:2;;;30:1;27;20:12;5:2;932:578:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;361:48:2;;8:9:-1;5:2;;;30:1;27;20:12;5:2;361:48:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;569:1313;;8:9:-1;5:2;;;30:1;27;20:12;5:2;569:1313:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4711:541:0;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4711:541:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;757:906:13;;8:9:-1;5:2;;;30:1;27;20:12;5:2;757:906:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3882:826:0;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3882:826:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3098:781;3222:7;3235:56;;:::i;:::-;3372:48;;:::i;:::-;3297:70;3328:13;3343:23;3297:30;:70::i;:::-;3235:132;;3426:51;3453:23;3426:26;:51::i;:::-;3372:105;;3542:24;:44;;;3591:24;:40;;;3636:24;:37;;;3678:24;:45;;;3728:24;:54;;;3787:20;:41;;;3833:20;:38;;;3489:386;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3482:393;;3098:781;;;;;;:::o;2443:652::-;2570:7;2584:35;2625:82;2656:5;:19;;;2677:5;:29;;;2625:30;:82::i;:::-;2584:123;;2752:5;:14;;;2771:5;:19;;;2795:5;:21;;;2821:5;:19;;;2845:5;:20;;;2870:5;:10;;;2885:5;:21;;;2911:5;:17;;;2933:5;:30;;;2992:16;:23;;;3060:27;2719:372;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2712:379;;2443:652;;;;;:::o;2460:582:2:-;2539:4;2625:63;;:::i;:::-;2727:35;;:::i;:::-;2782:30;2605:5;:14;;;2591:28;;:10;:28;;;2583:37;;;;;;;;2691:6;:25;;;:32;;;2625:98;;2765:6;:12;;;2727:50;;2815:55;2846:16;2864:5;2815:30;:55::i;:::-;2782:88;;2928:15;:39;2944:22;2928:39;;;;;;;;;;;;;;;;;;;;;;;;;;;2927:40;2919:49;;;;;;;;3018:4;2973:18;:42;2992:22;2973:42;;;;;;;;;;;;;;;;;;:49;;;;;;;;;;;;;;;;;;3034:4;3027:11;;2460:582;;;;;;:::o;228:268:14:-;346:10;363:20;396:6;;;;;;;;;;;;;;;;;;404:4;386:23;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;386:23:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;363:46;;486:6;420:72;;:62;430:12;444:9;:11;;;457:9;:11;;;470:9;:11;;;420:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;420:62:14;;;;;;;;:72;;;413:79;;228:268;;;;;;:::o;680:51:0:-;728:3;680:51;:::o;1609:831::-;1680:13;1700:55;;:::i;:::-;1783:56;;:::i;:::-;1869:11;1926:35;;:::i;:::-;1981:20;2191:8;2335:24;1758:6;:21;;;1700:79;;1842:6;:22;;;1783:81;;1883:6;:25;;;:32;;;:39;;;1869:53;;1964:6;:12;;;1926:50;;2004:20;:26;;;1981:49;;2039:41;2049:5;:30;;;2039:9;:41::i;:::-;2035:69;;;2094:5;2087:12;;;;2035:69;2138:1;2112:5;:22;;;:27;:51;;;;2162:1;2143:15;:20;2112:51;2108:79;;;2177:5;2170:12;;;;2108:79;2202:128;2217:19;:25;;;2247:20;:26;;;2278:5;:21;;;2304:5;:22;;;2202:10;:128::i;:::-;2191:139;;2362:36;2380:16;2394:1;675;2380:13;;:16;;;;:::i;:::-;2373:2;:24;2362:6;:10;;:36;;;;:::i;:::-;2335:63;;2417:19;2410:3;:26;;2403:33;;1609:831;;;;;;;;;;;:::o;307:51:2:-;;;;;;;;;;;;;;;;;;;;;;:::o;642:34:0:-;675:1;642:34;:::o;735:49::-;;;;;;;;;;;;;:::o;932:578::-;1019:4;1107:99;1128:6;:15;;;1148:14;1167:6;:25;;;:35;;;1107:16;:99::i;:::-;1106:100;1102:200;;;1292:5;1285:12;;;;1102:200;1400:102;1418:6;:24;;;1448:6;:21;;;1475:6;:22;;;1400:12;:102::i;:::-;1388:118;;932:578;;;;;:::o;361:48:2:-;;;;;;;;;;;;;;;;;;;;;;:::o;569:1313::-;648:10;665:35;;:::i;:::-;719:40;;:::i;:::-;799:30;703:6;:12;;;665:50;;762:6;:25;;;:32;;;719:75;;832:55;863:16;881:5;832:30;:55::i;:::-;799:88;;1861:4;1839:15;:19;1855:2;1839:19;;;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;1876:2;1869:9;;569:1313;;;;;;:::o;4711:541:0:-;4808:20;;:::i;:::-;4835:38;4944:20;4966:16;4984:17;4900:16;;;;;;;;;;;:31;;;:33;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4900:33:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4900:33:0;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;4900:33:0;;;;;;;;;4835:99;;5008:14;:50;;;5059:23;5008:75;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5008:75:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5008:75:0;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;5008:75:0;;;;;;;;;4939:144;;;;;;5095:153;;;;;;;;;5143:20;5095:153;;;;5186:16;5095:153;;;;5226:17;5095:153;;;5088:160;;4711:541;;;;;;;:::o;757:906:13:-;843:25;;:::i;:::-;879:19;;:::i;:::-;909:23;;:::i;:::-;943:20;;:::i;:::-;974:22;;:::i;:::-;1007;;:::i;:::-;1039:620;;;;;;;;;1052:5;:19;;;1039:620;;;;;;;;1073:5;:12;;;1039:620;;;;;;;;1087:5;:17;;;1039:620;;;;;;;;1106:5;:19;;;1039:620;;;;;;;;1127:5;:20;;;1039:620;;;;;;;;1149:5;:13;;;1039:620;;;;;;;;;;;;;;;;1178:5;:27;;;1039:620;;;;1207:5;:10;;;1039:620;;;;1219:5;:21;;;1039:620;;;;1242:5;:20;;;1039:620;;;;1264:5;:16;;;1039:620;;;;1282:5;:17;;;1039:620;;;;1301:5;:15;;;1039:620;;;;1318:5;:30;;;1039:620;;;;;;;;;;;;1355:5;:29;;;1039:620;;;;;;;;;;;;;;;;;;1400:5;:21;;;:23;;;1039:620;;;;;;;;1425:5;:23;;;:25;;;1039:620;;;;;;;;1452:5;:26;;;:28;;;1039:620;;;;;;;;;;;;;;;;1487:5;:21;;;:23;;;1039:620;;;;;;;;;;1512:5;:23;;;:25;;;1039:620;;;;;;;;;;1539:5;:26;;;:28;;;1039:620;;;;;;;;;;;;;;;;;;1574:5;:21;;;:23;;;1039:620;;;;;;;;;;1599:5;:23;;;:25;;;1039:620;;;;;;;;;;1626:5;:26;;;:28;;;1039:620;;;;;;;;;;;;;;;;;;;;;757:906;;;;;;;:::o;3882:826:0:-;4008:24;;:::i;:::-;4121:64;4249:19;4270:15;4287:12;4301:20;4323:29;4225:13;4121:118;;4359:27;:53;;;4413:23;4359:78;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4359:78:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4359:78:0;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;4359:78:0;;;;;;;;;4244:193;;;;;;;;;;4449:255;;;;;;;;;4500:19;4449:255;;;;4541:15;4449:255;;;;4575:12;4449:255;;;;4614:20;4449:255;;;;4670:29;4449:255;;;4442:262;;3882:826;;;;;;;;;;:::o;6655:147::-;6730:12;6783:15;6756:24;:42;6749:49;;6655:147;;;:::o;6280:372::-;6438:4;6449:19;6536:20;6471:61;675:1;6516:2;:15;6471:40;6495:15;6471:19;:23;;:40;;;;:::i;:::-;:44;;:61;;;;:::i;:::-;6449:83;;6559:42;6584:16;6559:20;:24;;:42;;;;:::i;:::-;6536:65;;6613:35;6632:15;6613:14;:18;;:35;;;;:::i;:::-;6606:42;;6280:372;;;;;;;;:::o;1060:116:15:-;1120:7;1148:2;1142;:8;;1135:16;;;;;;1169:2;1164;:7;1157:14;;1060:116;;;;:::o;203:380::-;263:9;495:1;489:2;:7;485:36;;;513:1;506:8;;;;485:36;536:2;531;:7;527:11;;561:2;555;551:1;:6;;;;;;;;:12;544:20;;;;;;577:1;570:8;;203:380;;;;;:::o;5255:1022:0:-;5429:4;5440:22;5640:26;5773:27;5910:24;728:3;5465:15;:42;5440:67;;5543:17;5516:14;:24;;;:44;:96;;;;5595:17;5567:15;:25;;;:45;5516:96;5512:124;;;5626:5;5619:12;;;;5512:124;5683:14;:20;;;5708:14;:27;;;5740:14;:24;;;5669:99;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5640:128;;5817:15;:21;;;5843:15;:28;;;5876:15;:25;;;5803:102;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5773:132;;5937:94;5958:17;5980:18;6003:14;:24;;;5937:16;:94::i;:::-;5910:121;;6123:19;6122:20;6118:48;;;6156:5;6149:12;;;;6118:48;6177:96;6198:17;6220:19;6244:15;:25;;;6177:16;:96::i;:::-;6170:103;;5255:1022;;;;;;;;;;:::o;665:283:15:-;725:7;941:2;936;:7;;;;;;;;929:14;;665:283;;;;:::o;228:2816:2:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::o;:::-;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;148:4;140:6;136:17;126:27;;0:157;228:2816:2;;;;:::o;:::-;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;148:4;140:6;136:17;126:27;;0:157;228:2816:2;;;;:::o;:::-;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;148:4;140:6;136:17;126:27;;0:157;228:2816:2;;;;:::o;:::-;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;148:4;140:6;136:17;126:27;;0:157;228:2816:2;;;;:::o;:::-;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;148:4;140:6;136:17;126:27;;0:157;228:2816:2;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;5:118:-1:-;;72:46;110:6;97:20;72:46;;;63:55;;57:66;;;;;130:118;;197:46;235:6;222:20;197:46;;;188:55;;182:66;;;;;255:184;;364:70;426:6;420:13;364:70;;;355:79;;349:90;;;;;499:328;;617:4;605:9;600:3;596:19;592:30;589:2;;;635:1;632;625:12;589:2;653:20;668:4;653:20;;;644:29;;725:1;756:49;801:3;792:6;781:9;777:22;756:49;;;750:3;743:5;739:15;732:74;683:134;583:244;;;;;887:332;;1009:4;997:9;992:3;988:19;984:30;981:2;;;1027:1;1024;1017:12;981:2;1045:20;1060:4;1045:20;;;1036:29;;1117:1;1148:49;1193:3;1184:6;1173:9;1169:22;1148:49;;;1142:3;1135:5;1131:15;1124:74;1075:134;975:244;;;;;1281:536;;1401:4;1389:9;1384:3;1380:19;1376:30;1373:2;;;1419:1;1416;1409:12;1373:2;1437:20;1452:4;1437:20;;;1428:29;;1509:1;1540:78;1614:3;1605:6;1594:9;1590:22;1540:78;;;1534:3;1527:5;1523:15;1516:103;1467:163;1685:2;1718:77;1791:3;1782:6;1771:9;1767:22;1718:77;;;1711:4;1704:5;1700:16;1693:103;1640:167;1367:450;;;;;1860:3675;;1972:5;1960:9;1955:3;1951:19;1947:31;1944:2;;;1991:1;1988;1981:12;1944:2;2009:21;2024:5;2009:21;;;2000:30;;2089:1;2120:49;2165:3;2156:6;2145:9;2141:22;2120:49;;;2114:3;2107:5;2103:15;2096:74;2040:141;2242:2;2275:49;2320:3;2311:6;2300:9;2296:22;2275:49;;;2268:4;2261:5;2257:16;2250:75;2191:145;2397:2;2430:49;2475:3;2466:6;2455:9;2451:22;2430:49;;;2423:4;2416:5;2412:16;2405:75;2346:145;2551:2;2584:49;2629:3;2620:6;2609:9;2605:22;2584:49;;;2577:4;2570:5;2566:16;2559:75;2501:144;2707:3;2741:49;2786:3;2777:6;2766:9;2762:22;2741:49;;;2734:4;2727:5;2723:16;2716:75;2655:147;2863:3;2897:49;2942:3;2933:6;2922:9;2918:22;2897:49;;;2890:4;2883:5;2879:16;2872:75;2812:146;3010:3;3044:49;3089:3;3080:6;3069:9;3065:22;3044:49;;;3037:4;3030:5;3026:16;3019:75;2968:137;3160:3;3194:49;3239:3;3230:6;3219:9;3215:22;3194:49;;;3187:4;3180:5;3176:16;3169:75;3115:140;3309:3;3344:49;3389:3;3380:6;3369:9;3365:22;3344:49;;;3336:5;3329;3325:17;3318:76;3265:140;3462:3;3497:49;3542:3;3533:6;3522:9;3518:22;3497:49;;;3489:5;3482;3478:17;3471:76;3415:143;3611:3;3646:49;3691:3;3682:6;3671:9;3667:22;3646:49;;;3638:5;3631;3627:17;3620:76;3568:139;3763:3;3798:49;3843:3;3834:6;3823:9;3819:22;3798:49;;;3790:5;3783;3779:17;3772:76;3717:142;3916:3;3951:49;3996:3;3987:6;3976:9;3972:22;3951:49;;;3943:5;3936;3932:17;3925:76;3869:143;4072:3;4107:49;4152:3;4143:6;4132:9;4128:22;4107:49;;;4099:5;4092;4088:17;4081:76;4022:146;4235:3;4270:49;4315:3;4306:6;4295:9;4291:22;4270:49;;;4262:5;4255;4251:17;4244:76;4178:153;4390:3;4425:49;4470:3;4461:6;4450:9;4446:22;4425:49;;;4417:5;4410;4406:17;4399:76;4341:145;4555:3;4590:49;4635:3;4626:6;4615:9;4611:22;4590:49;;;4582:5;4575;4571:17;4564:76;4496:155;4721:3;4756:49;4801:3;4792:6;4781:9;4777:22;4756:49;;;4748:5;4741;4737:17;4730:76;4661:156;4867:3;4902:49;4947:3;4938:6;4927:9;4923:22;4902:49;;;4894:5;4887;4883:17;4876:76;4827:136;5024:3;5059:77;5132:3;5123:6;5112:9;5108:22;5059:77;;;5051:5;5044;5040:17;5033:104;4973:175;5211:3;5246:77;5319:3;5310:6;5299:9;5295:22;5246:77;;;5238:5;5231;5227:17;5220:104;5158:177;5401:3;5436:77;5509:3;5500:6;5489:9;5485:22;5436:77;;;5428:5;5421;5417:17;5410:104;5345:180;1938:3597;;;;;5578:3679;;5694:5;5682:9;5677:3;5673:19;5669:31;5666:2;;;5713:1;5710;5703:12;5666:2;5731:21;5746:5;5731:21;;;5722:30;;5811:1;5842:49;5887:3;5878:6;5867:9;5863:22;5842:49;;;5836:3;5829:5;5825:15;5818:74;5762:141;5964:2;5997:49;6042:3;6033:6;6022:9;6018:22;5997:49;;;5990:4;5983:5;5979:16;5972:75;5913:145;6119:2;6152:49;6197:3;6188:6;6177:9;6173:22;6152:49;;;6145:4;6138:5;6134:16;6127:75;6068:145;6273:2;6306:49;6351:3;6342:6;6331:9;6327:22;6306:49;;;6299:4;6292:5;6288:16;6281:75;6223:144;6429:3;6463:49;6508:3;6499:6;6488:9;6484:22;6463:49;;;6456:4;6449:5;6445:16;6438:75;6377:147;6585:3;6619:49;6664:3;6655:6;6644:9;6640:22;6619:49;;;6612:4;6605:5;6601:16;6594:75;6534:146;6732:3;6766:49;6811:3;6802:6;6791:9;6787:22;6766:49;;;6759:4;6752:5;6748:16;6741:75;6690:137;6882:3;6916:49;6961:3;6952:6;6941:9;6937:22;6916:49;;;6909:4;6902:5;6898:16;6891:75;6837:140;7031:3;7066:49;7111:3;7102:6;7091:9;7087:22;7066:49;;;7058:5;7051;7047:17;7040:76;6987:140;7184:3;7219:49;7264:3;7255:6;7244:9;7240:22;7219:49;;;7211:5;7204;7200:17;7193:76;7137:143;7333:3;7368:49;7413:3;7404:6;7393:9;7389:22;7368:49;;;7360:5;7353;7349:17;7342:76;7290:139;7485:3;7520:49;7565:3;7556:6;7545:9;7541:22;7520:49;;;7512:5;7505;7501:17;7494:76;7439:142;7638:3;7673:49;7718:3;7709:6;7698:9;7694:22;7673:49;;;7665:5;7658;7654:17;7647:76;7591:143;7794:3;7829:49;7874:3;7865:6;7854:9;7850:22;7829:49;;;7821:5;7814;7810:17;7803:76;7744:146;7957:3;7992:49;8037:3;8028:6;8017:9;8013:22;7992:49;;;7984:5;7977;7973:17;7966:76;7900:153;8112:3;8147:49;8192:3;8183:6;8172:9;8168:22;8147:49;;;8139:5;8132;8128:17;8121:76;8063:145;8277:3;8312:49;8357:3;8348:6;8337:9;8333:22;8312:49;;;8304:5;8297;8293:17;8286:76;8218:155;8443:3;8478:49;8523:3;8514:6;8503:9;8499:22;8478:49;;;8470:5;8463;8459:17;8452:76;8383:156;8589:3;8624:49;8669:3;8660:6;8649:9;8645:22;8624:49;;;8616:5;8609;8605:17;8598:76;8549:136;8746:3;8781:77;8854:3;8845:6;8834:9;8830:22;8781:77;;;8773:5;8766;8762:17;8755:104;8695:175;8933:3;8968:77;9041:3;9032:6;9021:9;9017:22;8968:77;;;8960:5;8953;8949:17;8942:104;8880:177;9123:3;9158:77;9231:3;9222:6;9211:9;9207:22;9158:77;;;9150:5;9143;9139:17;9132:104;9067:180;5660:3597;;;;;9310:602;;9427:4;9415:9;9410:3;9406:19;9402:30;9399:2;;;9445:1;9442;9435:12;9399:2;9463:20;9478:4;9463:20;;;9454:29;;9530:1;9561:47;9604:3;9595:6;9584:9;9580:22;9561:47;;;9555:3;9548:5;9544:15;9537:72;9493:127;9667:2;9700:49;9745:3;9736:6;9725:9;9721:22;9700:49;;;9693:4;9686:5;9682:16;9675:75;9630:131;9808:2;9841:49;9886:3;9877:6;9866:9;9862:22;9841:49;;;9834:4;9827:5;9823:16;9816:75;9771:131;9393:519;;;;;9965:606;;10086:4;10074:9;10069:3;10065:19;10061:30;10058:2;;;10104:1;10101;10094:12;10058:2;10122:20;10137:4;10122:20;;;10113:29;;10189:1;10220:47;10263:3;10254:6;10243:9;10239:22;10220:47;;;10214:3;10207:5;10203:15;10196:72;10152:127;10326:2;10359:49;10404:3;10395:6;10384:9;10380:22;10359:49;;;10352:4;10345:5;10341:16;10334:75;10289:131;10467:2;10500:49;10545:3;10536:6;10525:9;10521:22;10500:49;;;10493:4;10486:5;10482:16;10475:75;10430:131;10052:519;;;;;10621:1187;;10733:5;10721:9;10716:3;10712:19;10708:31;10705:2;;;10752:1;10749;10742:12;10705:2;10770:20;10785:4;10770:20;;;10761:29;;10844:1;10875:49;10920:3;10911:6;10900:9;10896:22;10875:49;;;10869:3;10862:5;10858:15;10851:74;10800:136;10999:2;11032:49;11077:3;11068:6;11057:9;11053:22;11032:49;;;11025:4;11018:5;11014:16;11007:75;10946:147;11157:2;11190:80;11266:3;11257:6;11246:9;11242:22;11190:80;;;11183:4;11176:5;11172:16;11165:106;11103:179;11342:3;11376:67;11439:3;11430:6;11419:9;11415:22;11376:67;;;11369:4;11362:5;11358:16;11351:93;11292:163;11516:3;11550:67;11613:3;11604:6;11593:9;11589:22;11550:67;;;11543:4;11536:5;11532:16;11525:93;11465:164;11680:3;11714:72;11782:3;11773:6;11762:9;11758:22;11714:72;;;11707:4;11700:5;11696:16;11689:98;11639:159;10699:1109;;;;;11857:794;;11964:4;11952:9;11947:3;11943:19;11939:30;11936:2;;;11982:1;11979;11972:12;11936:2;12000:20;12015:4;12000:20;;;11991:29;;12071:1;12102:49;12147:3;12138:6;12127:9;12123:22;12102:49;;;12096:3;12089:5;12085:15;12078:74;12030:133;12218:2;12251:49;12296:3;12287:6;12276:9;12272:22;12251:49;;;12244:4;12237:5;12233:16;12226:75;12173:139;12370:2;12403:49;12448:3;12439:6;12428:9;12424:22;12403:49;;;12396:4;12389:5;12385:16;12378:75;12322:142;12519:2;12552:77;12625:3;12616:6;12605:9;12601:22;12552:77;;;12545:4;12538:5;12534:16;12527:103;12474:167;11930:721;;;;;12658:118;;12725:46;12763:6;12750:20;12725:46;;;12716:55;;12710:66;;;;;12783:122;;12861:39;12892:6;12886:13;12861:39;;;12852:48;;12846:59;;;;;12912:114;;12977:44;13013:6;13000:20;12977:44;;;12968:53;;12962:64;;;;;13033:366;;;13154:2;13142:9;13133:7;13129:23;13125:32;13122:2;;;13170:1;13167;13160:12;13122:2;13205:1;13222:53;13267:7;13258:6;13247:9;13243:22;13222:53;;;13212:63;;13184:97;13312:2;13330:53;13375:7;13366:6;13355:9;13351:22;13330:53;;;13320:63;;13291:98;13116:283;;;;;;13406:556;;;;13576:3;13564:9;13555:7;13551:23;13547:33;13544:2;;;13593:1;13590;13583:12;13544:2;13628:1;13645:53;13690:7;13681:6;13670:9;13666:22;13645:53;;;13635:63;;13607:97;13735:2;13753:53;13798:7;13789:6;13778:9;13774:22;13753:53;;;13743:63;;13714:98;13843:2;13861:85;13938:7;13929:6;13918:9;13914:22;13861:85;;;13851:95;;13822:130;13538:424;;;;;;13969:241;;14073:2;14061:9;14052:7;14048:23;14044:32;14041:2;;;14089:1;14086;14079:12;14041:2;14124:1;14141:53;14186:7;14177:6;14166:9;14162:22;14141:53;;;14131:63;;14103:97;14035:175;;;;;14217:325;;14363:2;14351:9;14342:7;14338:23;14334:32;14331:2;;;14379:1;14376;14369:12;14331:2;14414:1;14431:95;14518:7;14509:6;14498:9;14494:22;14431:95;;;14421:105;;14393:139;14325:217;;;;;14549:487;;;14730:3;14718:9;14709:7;14705:23;14701:33;14698:2;;;14747:1;14744;14737:12;14698:2;14782:1;14799:86;14877:7;14868:6;14857:9;14853:22;14799:86;;;14789:96;;14761:130;14922:2;14940:80;15012:7;15003:6;14992:9;14988:22;14940:80;;;14930:90;;14901:125;14692:344;;;;;;15043:296;;15174:3;15162:9;15153:7;15149:23;15145:33;15142:2;;;15191:1;15188;15181:12;15142:2;15226:1;15243:80;15315:7;15306:6;15295:9;15291:22;15243:80;;;15233:90;;15205:124;15136:203;;;;;15346:289;;15473:4;15461:9;15452:7;15448:23;15444:34;15441:2;;;15491:1;15488;15481:12;15441:2;15526:1;15543:76;15611:7;15602:6;15591:9;15587:22;15543:76;;;15533:86;;15505:120;15435:200;;;;;15642:416;;;15786:4;15774:9;15765:7;15761:23;15757:34;15754:2;;;15804:1;15801;15794:12;15754:2;15839:1;15856:76;15924:7;15915:6;15904:9;15900:22;15856:76;;;15846:86;;15818:120;15969:4;15989:53;16034:7;16025:6;16014:9;16010:22;15989:53;;;15979:63;;15948:100;15748:310;;;;;;16065:535;;;;16214:2;16202:9;16193:7;16189:23;16185:32;16182:2;;;16230:1;16227;16220:12;16182:2;16265:1;16282:64;16338:7;16329:6;16318:9;16314:22;16282:64;;;16272:74;;16244:108;16383:2;16401:64;16457:7;16448:6;16437:9;16433:22;16401:64;;;16391:74;;16362:109;16502:2;16520:64;16576:7;16567:6;16556:9;16552:22;16520:64;;;16510:74;;16481:109;16176:424;;;;;;16607:809;;;;;;16790:3;16778:9;16769:7;16765:23;16761:33;16758:2;;;16807:1;16804;16797:12;16758:2;16842:1;16859:64;16915:7;16906:6;16895:9;16891:22;16859:64;;;16849:74;;16821:108;16960:2;16978:64;17034:7;17025:6;17014:9;17010:22;16978:64;;;16968:74;;16939:109;17079:2;17097:64;17153:7;17144:6;17133:9;17129:22;17097:64;;;17087:74;;17058:109;17198:2;17216:64;17272:7;17263:6;17252:9;17248:22;17216:64;;;17206:74;;17177:109;17317:3;17336:64;17392:7;17383:6;17372:9;17368:22;17336:64;;;17326:74;;17296:110;16752:664;;;;;;;;;17423:110;17496:31;17521:5;17496:31;;;17491:3;17484:44;17478:55;;;17573:521;17696:52;17742:5;17696:52;;;17794:54;17842:5;17794:54;;;17869:1;17854:228;17879:6;17876:1;17873:13;17854:228;;;17919:53;17968:3;17959:6;17953:13;17919:53;;;17989:58;18040:6;17989:58;;;17979:68;;18070:4;18065:3;18061:14;18054:21;;17901:1;17898;17894:9;17889:14;;17854:228;;;17858:14;17675:419;;;;;18135:521;18258:52;18304:5;18258:52;;;18356:54;18404:5;18356:54;;;18431:1;18416:228;18441:6;18438:1;18435:13;18416:228;;;18481:53;18530:3;18521:6;18515:13;18481:53;;;18551:58;18602:6;18551:58;;;18541:68;;18632:4;18627:3;18623:14;18616:21;;18463:1;18460;18456:9;18451:14;;18416:228;;;18420:14;18237:419;;;;;18697:521;18820:52;18866:5;18820:52;;;18918:54;18966:5;18918:54;;;18993:1;18978:228;19003:6;19000:1;18997:13;18978:228;;;19043:53;19092:3;19083:6;19077:13;19043:53;;;19113:58;19164:6;19113:58;;;19103:68;;19194:4;19189:3;19185:14;19178:21;;19025:1;19022;19018:9;19013:14;;18978:228;;;18982:14;18799:419;;;;;19259:521;19382:52;19428:5;19382:52;;;19480:54;19528:5;19480:54;;;19555:1;19540:228;19565:6;19562:1;19559:13;19540:228;;;19605:53;19654:3;19645:6;19639:13;19605:53;;;19675:58;19726:6;19675:58;;;19665:68;;19756:4;19751:3;19747:14;19740:21;;19587:1;19584;19580:9;19575:14;;19540:228;;;19544:14;19361:419;;;;;19817:507;19936:50;19980:5;19936:50;;;20032:52;20078:5;20032:52;;;20105:1;20090:222;20115:6;20112:1;20109:13;20090:222;;;20155:49;20200:3;20191:6;20185:13;20155:49;;;20221:56;20270:6;20221:56;;;20211:66;;20300:4;20295:3;20291:14;20284:21;;20137:1;20134;20130:9;20125:14;;20090:222;;;20094:14;19915:409;;;;;20332:101;20399:28;20421:5;20399:28;;;20394:3;20387:41;20381:52;;;20440:110;20513:31;20538:5;20513:31;;;20508:3;20501:44;20495:55;;;20557:182;20663:70;20727:5;20663:70;;;20658:3;20651:83;20645:94;;;20857:725;21014:4;21009:3;21005:14;21116:3;21109:5;21105:15;21099:22;21133:61;21189:3;21184;21180:13;21167:11;21133:61;;;21034:172;21294:4;21287:5;21283:16;21277:23;21312:62;21368:4;21363:3;21359:14;21346:11;21312:62;;;21216:170;21475:4;21468:5;21464:16;21458:23;21493:62;21549:4;21544:3;21540:14;21527:11;21493:62;;;21396:171;20987:595;;;;21708:1103;21873:4;21868:3;21864:14;21974:3;21967:5;21963:15;21957:22;21991:61;22047:3;22042;22038:13;22025:11;21991:61;;;21893:171;22151:4;22144:5;22140:16;22134:23;22169:62;22225:4;22220:3;22216:14;22203:11;22169:62;;;22074:169;22327:4;22320:5;22316:16;22310:23;22345:62;22401:4;22396:3;22392:14;22379:11;22345:62;;;22253:166;22511:4;22504:5;22500:16;22494:23;22529:62;22585:4;22580:3;22576:14;22563:11;22529:62;;;22429:174;22704:4;22697:5;22693:16;22687:23;22722:62;22778:4;22773:3;22769:14;22756:11;22722:62;;;22613:183;21846:965;;;;22818:110;22891:31;22916:5;22891:31;;;22886:3;22879:44;22873:55;;;22935:104;23004:29;23027:5;23004:29;;;22999:3;22992:42;22986:53;;;23046:1248;;23566:3;23555:9;23551:19;23543:27;;23581:107;23685:1;23674:9;23670:17;23661:6;23581:107;;;23699:109;23803:3;23792:9;23788:19;23779:6;23699:109;;;23819;23923:3;23912:9;23908:19;23899:6;23819:109;;;23939:105;24039:3;24028:9;24024:19;24015:6;23939:105;;;24055:109;24159:3;24148:9;24144:19;24135:6;24055:109;;;24175;24279:3;24268:9;24264:19;24255:6;24175:109;;;23537:757;;;;;;;;;;24301:181;;24403:2;24392:9;24388:18;24380:26;;24417:55;24469:1;24458:9;24454:17;24445:6;24417:55;;;24374:108;;;;;24489:193;;24597:2;24586:9;24582:18;24574:26;;24611:61;24669:1;24658:9;24654:17;24645:6;24611:61;;;24568:114;;;;;24689:489;;24877:3;24866:9;24862:19;24854:27;;24892:61;24950:1;24939:9;24935:17;24926:6;24892:61;;;24964:58;25018:2;25007:9;25003:18;24994:6;24964:58;;;25033:62;25091:2;25080:9;25076:18;25067:6;25033:62;;;25106;25164:2;25153:9;25149:18;25140:6;25106:62;;;24848:330;;;;;;;;25185:259;;25326:2;25315:9;25311:18;25303:26;;25340:94;25431:1;25420:9;25416:17;25407:6;25340:94;;;25297:147;;;;;25451:341;;25633:2;25622:9;25618:18;25610:26;;25647:135;25779:1;25768:9;25764:17;25755:6;25647:135;;;25604:188;;;;;25799:358;;25989:3;25978:9;25974:19;25966:27;;26004:143;26144:1;26133:9;26129:17;26120:6;26004:143;;;25960:197;;;;;26164:193;;26272:2;26261:9;26257:18;26249:26;;26286:61;26344:1;26333:9;26329:17;26320:6;26286:61;;;26243:114;;;;;26364:256;;26426:2;26420:9;26410:19;;26464:4;26456:6;26452:17;26563:6;26551:10;26548:22;26527:18;26515:10;26512:34;26509:62;26506:2;;;26584:1;26581;26574:12;26506:2;26604:10;26600:2;26593:22;26404:216;;;;;26629:108;;26724:6;26713:17;;26705:32;;;;26748:108;;26843:6;26832:17;;26824:32;;;;26867:108;;26962:6;26951:17;;26943:32;;;;26986:108;;27081:6;27070:17;;27062:32;;;;27105:106;;27198:6;27187:17;;27179:32;;;;27220:96;;27308:3;27298:13;;27292:24;;;;27323:96;;27411:3;27401:13;;27395:24;;;;27426:96;;27514:3;27504:13;;27498:24;;;;27529:96;;27617:3;27607:13;;27601:24;;;;27632:94;;27718:3;27708:13;;27702:24;;;;27734:120;;27843:4;27835:6;27831:17;27820:28;;27813:41;;;;27863:120;;27972:4;27964:6;27960:17;27949:28;;27942:41;;;;27992:120;;28101:4;28093:6;28089:17;28078:28;;28071:41;;;;28121:120;;28230:4;28222:6;28218:17;28207:28;;28200:41;;;;28250:118;;28357:4;28349:6;28345:17;28334:28;;28327:41;;;;28376:128;;28456:42;28449:5;28445:54;28434:65;;28428:76;;;;28511:92;;28591:5;28584:13;28577:21;28566:32;;28560:43;;;;28610:79;;28679:5;28668:16;;28662:27;;;;28696:79;;28765:5;28754:16;;28748:27;;;;28782:88;;28860:4;28853:5;28849:16;28838:27;;28832:38;;;;28877:128;;28957:42;28950:5;28946:54;28935:65;;28929:76;;;;29012:79;;29081:5;29070:16;;29064:27;;;;29098:136;;29198:31;29223:5;29198:31;;;29187:42;;29181:53;;;;29241:79;;29310:5;29299:16;;29293:27;;;;29327:88;;29405:4;29398:5;29394:16;29383:27;;29377:38;;;;29422:148;;29534:31;29559:5;29534:31;;;29521:44;;29515:55;;;",
  "source": "pragma solidity ^0.4.24;\npragma experimental ABIEncoderV2;\n\n\nimport \"../shared/interfaces/ContractRegistryInterface.sol\";\nimport \"./DecisionEngines/LTVDecisionEngine.sol\";\nimport \"./interfaces/CreditorProxyCoreInterface.sol\";\n\n\ncontract LTVCreditorProxy is LTVDecisionEngine, CreditorProxyCoreInterface {\n\n\tmapping (bytes32 => bool) public debtOfferCancelled;\n\tmapping (bytes32 => bool) public debtOfferFilled;\n\n\tbytes32 constant internal NULL_ISSUANCE_HASH = bytes32(0);\n\n\tfunction LTVCreditorProxy(address _contractRegistry) LTVDecisionEngine(_contractRegistry) {}\n\n\tfunction fillDebtOffer(LTVDecisionEngineTypes.Params params)\n\t\tpublic returns (bytes32 id)\n\t{\n\t\tOrderLibrary.DebtOrder memory order = params.order;\n\t\tCommitmentValues memory commitmentValues = params.creditorCommitment.values;\n\n\t\tbytes32 creditorCommitmentHash = hashCreditorCommitmentForOrder(commitmentValues, order);\n\n//\t\tif (!evaluateConsent(params, creditorCommitmentHash)) {\n//\t\t\temit CreditorProxyError(uint8(Errors.DEBT_OFFER_NON_CONSENSUAL), order.creditor, creditorCommitmentHash);\n//\t\t\treturn NULL_ISSUANCE_HASH;\n//\t\t}\n//\n//\t\tif (debtOfferFilled[creditorCommitmentHash]) {\n//\t\t\temit CreditorProxyError(uint8(Errors.DEBT_OFFER_ALREADY_FILLED), order.creditor, creditorCommitmentHash);\n//\t\t\treturn NULL_ISSUANCE_HASH;\n//\t\t}\n//\n//\t\tif (debtOfferCancelled[creditorCommitmentHash]) {\n//\t\t\temit CreditorProxyError(uint8(Errors.DEBT_OFFER_CANCELLED), order.creditor, creditorCommitmentHash);\n//\t\t\treturn NULL_ISSUANCE_HASH;\n//\t\t}\n//\n//\t\tif (!evaluateDecision(params)) {\n//\t\t\temit CreditorProxyError(\n//\t\t\t\tuint8(Errors.DEBT_OFFER_CRITERIA_NOT_MET),\n//\t\t\t\torder.creditor,\n//\t\t\t\tcreditorCommitmentHash\n//\t\t\t);\n//\t\t\treturn NULL_ISSUANCE_HASH;\n//\t\t}\n\n\t\t//\t\taddress principalToken = order.principalToken;\n\n\t\t\t// The order is consensual and has an acceptable LTV ratio.\n\t\tdebtOfferFilled[id] = true;\n\t\treturn id;\n\t}\n\n\tfunction sendOrderToKernel(DebtOrder memory order) internal returns (bytes32 id)\n\t{\n\t\taddress[6] memory orderAddresses;\n\t\tuint[8] memory orderValues;\n\t\tbytes32[1] memory orderBytes32;\n\t\tuint8[3] memory signaturesV;\n\t\tbytes32[3] memory signaturesR;\n\t\tbytes32[3] memory signaturesS;\n\n\t\t(orderAddresses, orderValues, orderBytes32, signaturesV, signaturesR, signaturesS) = unpackDebtOrder(order);\n\n\t\treturn contractRegistry.debtKernel().fillDebtOrder(\n\t\t\taddress(this),\n\t\t\torderAddresses,\n\t\t\torderValues,\n\t\t\torderBytes32,\n\t\t\tsignaturesV,\n\t\t\tsignaturesR,\n\t\t\tsignaturesS\n\t\t);\n\t}\n\n\tfunction cancelDebtOffer(LTVDecisionEngineTypes.Params params) public returns (bool) {\n\t\t// sender must be the creditor.\n\t\trequire(msg.sender == order.creditor);\n\n\t\tLTVDecisionEngineTypes.CommitmentValues memory commitmentValues = params.creditorCommitment.values;\n\t\tOrderLibrary.DebtOrder memory order = params.order;\n\n\t\tbytes32 creditorCommitmentHash = hashCreditorCommitmentForOrder(commitmentValues, order);\n\n\t\t// debt offer must not already be filled.\n\t\trequire(!debtOfferFilled[creditorCommitmentHash]);\n\n\t\tdebtOfferCancelled[creditorCommitmentHash] = true;\n\n\t\treturn true;\n\t}\n}\n",
  "sourcePath": "/Users/graemeboy/Dharma/experimental/contracts/src/CreditorDrivenLoans/LTVCreditorProxy.sol",
  "ast": {
    "absolutePath": "/Users/graemeboy/Dharma/experimental/contracts/src/CreditorDrivenLoans/LTVCreditorProxy.sol",
    "exportedSymbols": {
      "LTVCreditorProxy": [
        684
      ]
    },
    "id": 685,
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 493,
        "literals": [
          "solidity",
          "^",
          "0.4",
          ".24"
        ],
        "nodeType": "PragmaDirective",
        "src": "0:24:2"
      },
      {
        "id": 494,
        "literals": [
          "experimental",
          "ABIEncoderV2"
        ],
        "nodeType": "PragmaDirective",
        "src": "25:33:2"
      },
      {
        "absolutePath": "/Users/graemeboy/Dharma/experimental/contracts/src/shared/interfaces/ContractRegistryInterface.sol",
        "file": "../shared/interfaces/ContractRegistryInterface.sol",
        "id": 495,
        "nodeType": "ImportDirective",
        "scope": 685,
        "sourceUnit": 798,
        "src": "61:60:2",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/Users/graemeboy/Dharma/experimental/contracts/src/CreditorDrivenLoans/DecisionEngines/LTVDecisionEngine.sol",
        "file": "./DecisionEngines/LTVDecisionEngine.sol",
        "id": 496,
        "nodeType": "ImportDirective",
        "scope": 685,
        "sourceUnit": 438,
        "src": "122:49:2",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/Users/graemeboy/Dharma/experimental/contracts/src/CreditorDrivenLoans/interfaces/CreditorProxyCoreInterface.sol",
        "file": "./interfaces/CreditorProxyCoreInterface.sol",
        "id": 497,
        "nodeType": "ImportDirective",
        "scope": 685,
        "sourceUnit": 696,
        "src": "172:53:2",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "baseContracts": [
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 498,
              "name": "LTVDecisionEngine",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 437,
              "src": "257:17:2",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_LTVDecisionEngine_$437",
                "typeString": "contract LTVDecisionEngine"
              }
            },
            "id": 499,
            "nodeType": "InheritanceSpecifier",
            "src": "257:17:2"
          },
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 500,
              "name": "CreditorProxyCoreInterface",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 695,
              "src": "276:26:2",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_CreditorProxyCoreInterface_$695",
                "typeString": "contract CreditorProxyCoreInterface"
              }
            },
            "id": 501,
            "nodeType": "InheritanceSpecifier",
            "src": "276:26:2"
          }
        ],
        "contractDependencies": [
          437,
          491,
          695,
          712,
          730,
          1165,
          1210
        ],
        "contractKind": "contract",
        "documentation": null,
        "fullyImplemented": true,
        "id": 684,
        "linearizedBaseContracts": [
          684,
          695,
          730,
          712,
          437,
          1165,
          1210,
          491
        ],
        "name": "LTVCreditorProxy",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "constant": false,
            "id": 505,
            "name": "debtOfferCancelled",
            "nodeType": "VariableDeclaration",
            "scope": 684,
            "src": "307:51:2",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$",
              "typeString": "mapping(bytes32 => bool)"
            },
            "typeName": {
              "id": 504,
              "keyType": {
                "id": 502,
                "name": "bytes32",
                "nodeType": "ElementaryTypeName",
                "src": "316:7:2",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                }
              },
              "nodeType": "Mapping",
              "src": "307:25:2",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$",
                "typeString": "mapping(bytes32 => bool)"
              },
              "valueType": {
                "id": 503,
                "name": "bool",
                "nodeType": "ElementaryTypeName",
                "src": "327:4:2",
                "typeDescriptions": {
                  "typeIdentifier": "t_bool",
                  "typeString": "bool"
                }
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 509,
            "name": "debtOfferFilled",
            "nodeType": "VariableDeclaration",
            "scope": 684,
            "src": "361:48:2",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$",
              "typeString": "mapping(bytes32 => bool)"
            },
            "typeName": {
              "id": 508,
              "keyType": {
                "id": 506,
                "name": "bytes32",
                "nodeType": "ElementaryTypeName",
                "src": "370:7:2",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                }
              },
              "nodeType": "Mapping",
              "src": "361:25:2",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$",
                "typeString": "mapping(bytes32 => bool)"
              },
              "valueType": {
                "id": 507,
                "name": "bool",
                "nodeType": "ElementaryTypeName",
                "src": "381:4:2",
                "typeDescriptions": {
                  "typeIdentifier": "t_bool",
                  "typeString": "bool"
                }
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": true,
            "id": 514,
            "name": "NULL_ISSUANCE_HASH",
            "nodeType": "VariableDeclaration",
            "scope": 684,
            "src": "413:57:2",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_bytes32",
              "typeString": "bytes32"
            },
            "typeName": {
              "id": 510,
              "name": "bytes32",
              "nodeType": "ElementaryTypeName",
              "src": "413:7:2",
              "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
              }
            },
            "value": {
              "argumentTypes": null,
              "arguments": [
                {
                  "argumentTypes": null,
                  "hexValue": "30",
                  "id": 512,
                  "isConstant": false,
                  "isLValue": false,
                  "isPure": true,
                  "kind": "number",
                  "lValueRequested": false,
                  "nodeType": "Literal",
                  "src": "468:1:2",
                  "subdenomination": null,
                  "typeDescriptions": {
                    "typeIdentifier": "t_rational_0_by_1",
                    "typeString": "int_const 0"
                  },
                  "value": "0"
                }
              ],
              "expression": {
                "argumentTypes": [
                  {
                    "typeIdentifier": "t_rational_0_by_1",
                    "typeString": "int_const 0"
                  }
                ],
                "id": 511,
                "isConstant": false,
                "isLValue": false,
                "isPure": true,
                "lValueRequested": false,
                "nodeType": "ElementaryTypeNameExpression",
                "src": "460:7:2",
                "typeDescriptions": {
                  "typeIdentifier": "t_type$_t_bytes32_$",
                  "typeString": "type(bytes32)"
                },
                "typeName": "bytes32"
              },
              "id": 513,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "typeConversion",
              "lValueRequested": false,
              "names": [],
              "nodeType": "FunctionCall",
              "src": "460:10:2",
              "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
              }
            },
            "visibility": "internal"
          },
          {
            "body": {
              "id": 522,
              "nodeType": "Block",
              "src": "564:2:2",
              "statements": []
            },
            "documentation": null,
            "id": 523,
            "implemented": true,
            "isConstructor": true,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 519,
                    "name": "_contractRegistry",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 516,
                    "src": "545:17:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  }
                ],
                "id": 520,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 518,
                  "name": "LTVDecisionEngine",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 437,
                  "src": "527:17:2",
                  "typeDescriptions": {
                    "typeIdentifier": "t_type$_t_contract$_LTVDecisionEngine_$437_$",
                    "typeString": "type(contract LTVDecisionEngine)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "527:36:2"
              }
            ],
            "name": "LTVCreditorProxy",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 517,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 516,
                  "name": "_contractRegistry",
                  "nodeType": "VariableDeclaration",
                  "scope": 523,
                  "src": "500:25:2",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 515,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "500:7:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "499:27:2"
            },
            "payable": false,
            "returnParameters": {
              "id": 521,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "564:0:2"
            },
            "scope": 684,
            "src": "474:92:2",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 558,
              "nodeType": "Block",
              "src": "661:1221:2",
              "statements": [
                {
                  "assignments": [
                    533
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 533,
                      "name": "order",
                      "nodeType": "VariableDeclaration",
                      "scope": 559,
                      "src": "665:35:2",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_DebtOrder_$1069_memory_ptr",
                        "typeString": "struct OrderLibrary.DebtOrder"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 532,
                        "name": "OrderLibrary.DebtOrder",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 1069,
                        "src": "665:22:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_DebtOrder_$1069_storage_ptr",
                          "typeString": "struct OrderLibrary.DebtOrder"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 536,
                  "initialValue": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "id": 534,
                      "name": "params",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 525,
                      "src": "703:6:2",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Params_$455_memory_ptr",
                        "typeString": "struct LTVDecisionEngineTypes.Params memory"
                      }
                    },
                    "id": 535,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "order",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 454,
                    "src": "703:12:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_DebtOrder_$1069_memory",
                      "typeString": "struct OrderLibrary.DebtOrder memory"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "665:50:2"
                },
                {
                  "assignments": [
                    538
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 538,
                      "name": "commitmentValues",
                      "nodeType": "VariableDeclaration",
                      "scope": 559,
                      "src": "719:40:2",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_CommitmentValues_$472_memory_ptr",
                        "typeString": "struct LTVDecisionEngineTypes.CommitmentValues"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 537,
                        "name": "CommitmentValues",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 472,
                        "src": "719:16:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_CommitmentValues_$472_storage_ptr",
                          "typeString": "struct LTVDecisionEngineTypes.CommitmentValues"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 542,
                  "initialValue": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 539,
                        "name": "params",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 525,
                        "src": "762:6:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Params_$455_memory_ptr",
                          "typeString": "struct LTVDecisionEngineTypes.Params memory"
                        }
                      },
                      "id": 540,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "creditorCommitment",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 448,
                      "src": "762:25:2",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_CreditorCommitment_$469_memory",
                        "typeString": "struct LTVDecisionEngineTypes.CreditorCommitment memory"
                      }
                    },
                    "id": 541,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "values",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 466,
                    "src": "762:32:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_CommitmentValues_$472_memory",
                      "typeString": "struct LTVDecisionEngineTypes.CommitmentValues memory"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "719:75:2"
                },
                {
                  "assignments": [
                    544
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 544,
                      "name": "creditorCommitmentHash",
                      "nodeType": "VariableDeclaration",
                      "scope": 559,
                      "src": "799:30:2",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 543,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "799:7:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 549,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 546,
                        "name": "commitmentValues",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 538,
                        "src": "863:16:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_CommitmentValues_$472_memory_ptr",
                          "typeString": "struct LTVDecisionEngineTypes.CommitmentValues memory"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 547,
                        "name": "order",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 533,
                        "src": "881:5:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_DebtOrder_$1069_memory_ptr",
                          "typeString": "struct OrderLibrary.DebtOrder memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_struct$_CommitmentValues_$472_memory_ptr",
                          "typeString": "struct LTVDecisionEngineTypes.CommitmentValues memory"
                        },
                        {
                          "typeIdentifier": "t_struct$_DebtOrder_$1069_memory_ptr",
                          "typeString": "struct OrderLibrary.DebtOrder memory"
                        }
                      ],
                      "id": 545,
                      "name": "hashCreditorCommitmentForOrder",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 205,
                      "src": "832:30:2",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_struct$_CommitmentValues_$472_memory_ptr_$_t_struct$_DebtOrder_$1069_memory_ptr_$returns$_t_bytes32_$",
                        "typeString": "function (struct LTVDecisionEngineTypes.CommitmentValues memory,struct OrderLibrary.DebtOrder memory) view returns (bytes32)"
                      }
                    },
                    "id": 548,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "832:55:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "799:88:2"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 554,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 550,
                        "name": "debtOfferFilled",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 509,
                        "src": "1839:15:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$",
                          "typeString": "mapping(bytes32 => bool)"
                        }
                      },
                      "id": 552,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 551,
                        "name": "id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 528,
                        "src": "1855:2:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "1839:19:2",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "74727565",
                      "id": 553,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "bool",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "1861:4:2",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      },
                      "value": "true"
                    },
                    "src": "1839:26:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 555,
                  "nodeType": "ExpressionStatement",
                  "src": "1839:26:2"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 556,
                    "name": "id",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 528,
                    "src": "1876:2:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "functionReturnParameters": 529,
                  "id": 557,
                  "nodeType": "Return",
                  "src": "1869:9:2"
                }
              ]
            },
            "documentation": null,
            "id": 559,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "fillDebtOffer",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 526,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 525,
                  "name": "params",
                  "nodeType": "VariableDeclaration",
                  "scope": 559,
                  "src": "592:36:2",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Params_$455_memory_ptr",
                    "typeString": "struct LTVDecisionEngineTypes.Params"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 524,
                    "name": "LTVDecisionEngineTypes.Params",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 455,
                    "src": "592:29:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Params_$455_storage_ptr",
                      "typeString": "struct LTVDecisionEngineTypes.Params"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "591:38:2"
            },
            "payable": false,
            "returnParameters": {
              "id": 529,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 528,
                  "name": "id",
                  "nodeType": "VariableDeclaration",
                  "scope": 559,
                  "src": "648:10:2",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 527,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "648:7:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "647:12:2"
            },
            "scope": 684,
            "src": "569:1313:2",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 629,
              "nodeType": "Block",
              "src": "1967:490:2",
              "statements": [
                {
                  "assignments": [],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 570,
                      "name": "orderAddresses",
                      "nodeType": "VariableDeclaration",
                      "scope": 630,
                      "src": "1971:32:2",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_address_$6_memory_ptr",
                        "typeString": "address[6]"
                      },
                      "typeName": {
                        "baseType": {
                          "id": 568,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "1971:7:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "id": 569,
                        "length": {
                          "argumentTypes": null,
                          "hexValue": "36",
                          "id": 567,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "1979:1:2",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": null,
                            "typeString": null
                          },
                          "value": "6"
                        },
                        "nodeType": "ArrayTypeName",
                        "src": "1971:10:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$6_storage_ptr",
                          "typeString": "address[6]"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 571,
                  "initialValue": null,
                  "nodeType": "VariableDeclarationStatement",
                  "src": "1971:32:2"
                },
                {
                  "assignments": [],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 576,
                      "name": "orderValues",
                      "nodeType": "VariableDeclaration",
                      "scope": 630,
                      "src": "2007:26:2",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_uint256_$8_memory_ptr",
                        "typeString": "uint256[8]"
                      },
                      "typeName": {
                        "baseType": {
                          "id": 574,
                          "name": "uint",
                          "nodeType": "ElementaryTypeName",
                          "src": "2007:4:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 575,
                        "length": {
                          "argumentTypes": null,
                          "hexValue": "38",
                          "id": 573,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "2012:1:2",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": null,
                            "typeString": null
                          },
                          "value": "8"
                        },
                        "nodeType": "ArrayTypeName",
                        "src": "2007:7:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$8_storage_ptr",
                          "typeString": "uint256[8]"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 577,
                  "initialValue": null,
                  "nodeType": "VariableDeclarationStatement",
                  "src": "2007:26:2"
                },
                {
                  "assignments": [],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 582,
                      "name": "orderBytes32",
                      "nodeType": "VariableDeclaration",
                      "scope": 630,
                      "src": "2037:30:2",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_bytes32_$1_memory_ptr",
                        "typeString": "bytes32[1]"
                      },
                      "typeName": {
                        "baseType": {
                          "id": 580,
                          "name": "bytes32",
                          "nodeType": "ElementaryTypeName",
                          "src": "2037:7:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "id": 581,
                        "length": {
                          "argumentTypes": null,
                          "hexValue": "31",
                          "id": 579,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "2045:1:2",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": null,
                            "typeString": null
                          },
                          "value": "1"
                        },
                        "nodeType": "ArrayTypeName",
                        "src": "2037:10:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_bytes32_$1_storage_ptr",
                          "typeString": "bytes32[1]"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 583,
                  "initialValue": null,
                  "nodeType": "VariableDeclarationStatement",
                  "src": "2037:30:2"
                },
                {
                  "assignments": [],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 588,
                      "name": "signaturesV",
                      "nodeType": "VariableDeclaration",
                      "scope": 630,
                      "src": "2071:27:2",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_uint8_$3_memory_ptr",
                        "typeString": "uint8[3]"
                      },
                      "typeName": {
                        "baseType": {
                          "id": 586,
                          "name": "uint8",
                          "nodeType": "ElementaryTypeName",
                          "src": "2071:5:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint8",
                            "typeString": "uint8"
                          }
                        },
                        "id": 587,
                        "length": {
                          "argumentTypes": null,
                          "hexValue": "33",
                          "id": 585,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "2077:1:2",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": null,
                            "typeString": null
                          },
                          "value": "3"
                        },
                        "nodeType": "ArrayTypeName",
                        "src": "2071:8:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint8_$3_storage_ptr",
                          "typeString": "uint8[3]"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 589,
                  "initialValue": null,
                  "nodeType": "VariableDeclarationStatement",
                  "src": "2071:27:2"
                },
                {
                  "assignments": [],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 594,
                      "name": "signaturesR",
                      "nodeType": "VariableDeclaration",
                      "scope": 630,
                      "src": "2102:29:2",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_bytes32_$3_memory_ptr",
                        "typeString": "bytes32[3]"
                      },
                      "typeName": {
                        "baseType": {
                          "id": 592,
                          "name": "bytes32",
                          "nodeType": "ElementaryTypeName",
                          "src": "2102:7:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "id": 593,
                        "length": {
                          "argumentTypes": null,
                          "hexValue": "33",
                          "id": 591,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "2110:1:2",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": null,
                            "typeString": null
                          },
                          "value": "3"
                        },
                        "nodeType": "ArrayTypeName",
                        "src": "2102:10:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_bytes32_$3_storage_ptr",
                          "typeString": "bytes32[3]"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 595,
                  "initialValue": null,
                  "nodeType": "VariableDeclarationStatement",
                  "src": "2102:29:2"
                },
                {
                  "assignments": [],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 600,
                      "name": "signaturesS",
                      "nodeType": "VariableDeclaration",
                      "scope": 630,
                      "src": "2135:29:2",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_bytes32_$3_memory_ptr",
                        "typeString": "bytes32[3]"
                      },
                      "typeName": {
                        "baseType": {
                          "id": 598,
                          "name": "bytes32",
                          "nodeType": "ElementaryTypeName",
                          "src": "2135:7:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "id": 599,
                        "length": {
                          "argumentTypes": null,
                          "hexValue": "33",
                          "id": 597,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "2143:1:2",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": null,
                            "typeString": null
                          },
                          "value": "3"
                        },
                        "nodeType": "ArrayTypeName",
                        "src": "2135:10:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_bytes32_$3_storage_ptr",
                          "typeString": "bytes32[3]"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 601,
                  "initialValue": null,
                  "nodeType": "VariableDeclarationStatement",
                  "src": "2135:29:2"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 612,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "components": [
                        {
                          "argumentTypes": null,
                          "id": 602,
                          "name": "orderAddresses",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 570,
                          "src": "2170:14:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_address_$6_memory_ptr",
                            "typeString": "address[6] memory"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 603,
                          "name": "orderValues",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 576,
                          "src": "2186:11:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_uint256_$8_memory_ptr",
                            "typeString": "uint256[8] memory"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 604,
                          "name": "orderBytes32",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 582,
                          "src": "2199:12:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_bytes32_$1_memory_ptr",
                            "typeString": "bytes32[1] memory"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 605,
                          "name": "signaturesV",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 588,
                          "src": "2213:11:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_uint8_$3_memory_ptr",
                            "typeString": "uint8[3] memory"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 606,
                          "name": "signaturesR",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 594,
                          "src": "2226:11:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_bytes32_$3_memory_ptr",
                            "typeString": "bytes32[3] memory"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 607,
                          "name": "signaturesS",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 600,
                          "src": "2239:11:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_bytes32_$3_memory_ptr",
                            "typeString": "bytes32[3] memory"
                          }
                        }
                      ],
                      "id": 608,
                      "isConstant": false,
                      "isInlineArray": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "TupleExpression",
                      "src": "2169:82:2",
                      "typeDescriptions": {
                        "typeIdentifier": "t_tuple$_t_array$_t_address_$6_memory_ptr_$_t_array$_t_uint256_$8_memory_ptr_$_t_array$_t_bytes32_$1_memory_ptr_$_t_array$_t_uint8_$3_memory_ptr_$_t_array$_t_bytes32_$3_memory_ptr_$_t_array$_t_bytes32_$3_memory_ptr_$",
                        "typeString": "tuple(address[6] memory,uint256[8] memory,bytes32[1] memory,uint8[3] memory,bytes32[3] memory,bytes32[3] memory)"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 610,
                          "name": "order",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 561,
                          "src": "2270:5:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_DebtOrder_$1069_memory_ptr",
                            "typeString": "struct OrderLibrary.DebtOrder memory"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_struct$_DebtOrder_$1069_memory_ptr",
                            "typeString": "struct OrderLibrary.DebtOrder memory"
                          }
                        ],
                        "id": 609,
                        "name": "unpackDebtOrder",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1164,
                        "src": "2254:15:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_pure$_t_struct$_DebtOrder_$1069_memory_ptr_$returns$_t_array$_t_address_$6_memory_ptr_$_t_array$_t_uint256_$8_memory_ptr_$_t_array$_t_bytes32_$1_memory_ptr_$_t_array$_t_uint8_$3_memory_ptr_$_t_array$_t_bytes32_$3_memory_ptr_$_t_array$_t_bytes32_$3_memory_ptr_$",
                          "typeString": "function (struct OrderLibrary.DebtOrder memory) pure returns (address[6] memory,uint256[8] memory,bytes32[1] memory,uint8[3] memory,bytes32[3] memory,bytes32[3] memory)"
                        }
                      },
                      "id": 611,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "2254:22:2",
                      "typeDescriptions": {
                        "typeIdentifier": "t_tuple$_t_array$_t_address_$6_memory_ptr_$_t_array$_t_uint256_$8_memory_ptr_$_t_array$_t_bytes32_$1_memory_ptr_$_t_array$_t_uint8_$3_memory_ptr_$_t_array$_t_bytes32_$3_memory_ptr_$_t_array$_t_bytes32_$3_memory_ptr_$",
                        "typeString": "tuple(address[6] memory,uint256[8] memory,bytes32[1] memory,uint8[3] memory,bytes32[3] memory,bytes32[3] memory)"
                      }
                    },
                    "src": "2169:107:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 613,
                  "nodeType": "ExpressionStatement",
                  "src": "2169:107:2"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 619,
                            "name": "this",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1362,
                            "src": "2344:4:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_LTVCreditorProxy_$684",
                              "typeString": "contract LTVCreditorProxy"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_contract$_LTVCreditorProxy_$684",
                              "typeString": "contract LTVCreditorProxy"
                            }
                          ],
                          "id": 618,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "2336:7:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_address_$",
                            "typeString": "type(address)"
                          },
                          "typeName": "address"
                        },
                        "id": 620,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "2336:13:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 621,
                        "name": "orderAddresses",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 570,
                        "src": "2354:14:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$6_memory_ptr",
                          "typeString": "address[6] memory"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 622,
                        "name": "orderValues",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 576,
                        "src": "2373:11:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$8_memory_ptr",
                          "typeString": "uint256[8] memory"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 623,
                        "name": "orderBytes32",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 582,
                        "src": "2389:12:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_bytes32_$1_memory_ptr",
                          "typeString": "bytes32[1] memory"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 624,
                        "name": "signaturesV",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 588,
                        "src": "2406:11:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint8_$3_memory_ptr",
                          "typeString": "uint8[3] memory"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 625,
                        "name": "signaturesR",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 594,
                        "src": "2422:11:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_bytes32_$3_memory_ptr",
                          "typeString": "bytes32[3] memory"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 626,
                        "name": "signaturesS",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 600,
                        "src": "2438:11:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_bytes32_$3_memory_ptr",
                          "typeString": "bytes32[3] memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_array$_t_address_$6_memory_ptr",
                          "typeString": "address[6] memory"
                        },
                        {
                          "typeIdentifier": "t_array$_t_uint256_$8_memory_ptr",
                          "typeString": "uint256[8] memory"
                        },
                        {
                          "typeIdentifier": "t_array$_t_bytes32_$1_memory_ptr",
                          "typeString": "bytes32[1] memory"
                        },
                        {
                          "typeIdentifier": "t_array$_t_uint8_$3_memory_ptr",
                          "typeString": "uint8[3] memory"
                        },
                        {
                          "typeIdentifier": "t_array$_t_bytes32_$3_memory_ptr",
                          "typeString": "bytes32[3] memory"
                        },
                        {
                          "typeIdentifier": "t_array$_t_bytes32_$3_memory_ptr",
                          "typeString": "bytes32[3] memory"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "expression": {
                            "argumentTypes": null,
                            "id": 614,
                            "name": "contractRegistry",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 26,
                            "src": "2288:16:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_ContractRegistryInterface_$797",
                              "typeString": "contract ContractRegistryInterface"
                            }
                          },
                          "id": 615,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "debtKernel",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 756,
                          "src": "2288:27:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$__$returns$_t_contract$_DebtKernelInterface_$932_$",
                            "typeString": "function () view external returns (contract DebtKernelInterface)"
                          }
                        },
                        "id": 616,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "2288:29:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_DebtKernelInterface_$932",
                          "typeString": "contract DebtKernelInterface"
                        }
                      },
                      "id": 617,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "fillDebtOrder",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 931,
                      "src": "2288:43:2",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_array$_t_address_$6_memory_ptr_$_t_array$_t_uint256_$8_memory_ptr_$_t_array$_t_bytes32_$1_memory_ptr_$_t_array$_t_uint8_$3_memory_ptr_$_t_array$_t_bytes32_$3_memory_ptr_$_t_array$_t_bytes32_$3_memory_ptr_$returns$_t_bytes32_$",
                        "typeString": "function (address,address[6] memory,uint256[8] memory,bytes32[1] memory,uint8[3] memory,bytes32[3] memory,bytes32[3] memory) external returns (bytes32)"
                      }
                    },
                    "id": 627,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2288:165:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "functionReturnParameters": 565,
                  "id": 628,
                  "nodeType": "Return",
                  "src": "2281:172:2"
                }
              ]
            },
            "documentation": null,
            "id": 630,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "sendOrderToKernel",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 562,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 561,
                  "name": "order",
                  "nodeType": "VariableDeclaration",
                  "scope": 630,
                  "src": "1912:22:2",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_DebtOrder_$1069_memory_ptr",
                    "typeString": "struct OrderLibrary.DebtOrder"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 560,
                    "name": "DebtOrder",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 1069,
                    "src": "1912:9:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_DebtOrder_$1069_storage_ptr",
                      "typeString": "struct OrderLibrary.DebtOrder"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1911:24:2"
            },
            "payable": false,
            "returnParameters": {
              "id": 565,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 564,
                  "name": "id",
                  "nodeType": "VariableDeclaration",
                  "scope": 630,
                  "src": "1954:10:2",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 563,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1954:7:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1953:12:2"
            },
            "scope": 684,
            "src": "1885:572:2",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 682,
              "nodeType": "Block",
              "src": "2545:497:2",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "id": 642,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 638,
                            "name": "msg",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1319,
                            "src": "2591:3:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_message",
                              "typeString": "msg"
                            }
                          },
                          "id": 639,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "sender",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "2591:10:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 640,
                            "name": "order",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 656,
                            "src": "2605:5:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_DebtOrder_$1069_memory_ptr",
                              "typeString": "struct OrderLibrary.DebtOrder memory"
                            }
                          },
                          "id": 641,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "creditor",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 1042,
                          "src": "2605:14:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "src": "2591:28:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 637,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        1322,
                        1323
                      ],
                      "referencedDeclaration": 1322,
                      "src": "2583:7:2",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 643,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2583:37:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 644,
                  "nodeType": "ExpressionStatement",
                  "src": "2583:37:2"
                },
                {
                  "assignments": [
                    648
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 648,
                      "name": "commitmentValues",
                      "nodeType": "VariableDeclaration",
                      "scope": 683,
                      "src": "2625:63:2",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_CommitmentValues_$472_memory_ptr",
                        "typeString": "struct LTVDecisionEngineTypes.CommitmentValues"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 647,
                        "name": "LTVDecisionEngineTypes.CommitmentValues",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 472,
                        "src": "2625:39:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_CommitmentValues_$472_storage_ptr",
                          "typeString": "struct LTVDecisionEngineTypes.CommitmentValues"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 652,
                  "initialValue": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 649,
                        "name": "params",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 632,
                        "src": "2691:6:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Params_$455_memory_ptr",
                          "typeString": "struct LTVDecisionEngineTypes.Params memory"
                        }
                      },
                      "id": 650,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "creditorCommitment",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 448,
                      "src": "2691:25:2",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_CreditorCommitment_$469_memory",
                        "typeString": "struct LTVDecisionEngineTypes.CreditorCommitment memory"
                      }
                    },
                    "id": 651,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "values",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 466,
                    "src": "2691:32:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_CommitmentValues_$472_memory",
                      "typeString": "struct LTVDecisionEngineTypes.CommitmentValues memory"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "2625:98:2"
                },
                {
                  "assignments": [
                    656
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 656,
                      "name": "order",
                      "nodeType": "VariableDeclaration",
                      "scope": 683,
                      "src": "2727:35:2",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_DebtOrder_$1069_memory_ptr",
                        "typeString": "struct OrderLibrary.DebtOrder"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 655,
                        "name": "OrderLibrary.DebtOrder",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 1069,
                        "src": "2727:22:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_DebtOrder_$1069_storage_ptr",
                          "typeString": "struct OrderLibrary.DebtOrder"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 659,
                  "initialValue": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "id": 657,
                      "name": "params",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 632,
                      "src": "2765:6:2",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Params_$455_memory_ptr",
                        "typeString": "struct LTVDecisionEngineTypes.Params memory"
                      }
                    },
                    "id": 658,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "order",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 454,
                    "src": "2765:12:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_DebtOrder_$1069_memory",
                      "typeString": "struct OrderLibrary.DebtOrder memory"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "2727:50:2"
                },
                {
                  "assignments": [
                    661
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 661,
                      "name": "creditorCommitmentHash",
                      "nodeType": "VariableDeclaration",
                      "scope": 683,
                      "src": "2782:30:2",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 660,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "2782:7:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 666,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 663,
                        "name": "commitmentValues",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 648,
                        "src": "2846:16:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_CommitmentValues_$472_memory_ptr",
                          "typeString": "struct LTVDecisionEngineTypes.CommitmentValues memory"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 664,
                        "name": "order",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 656,
                        "src": "2864:5:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_DebtOrder_$1069_memory_ptr",
                          "typeString": "struct OrderLibrary.DebtOrder memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_struct$_CommitmentValues_$472_memory_ptr",
                          "typeString": "struct LTVDecisionEngineTypes.CommitmentValues memory"
                        },
                        {
                          "typeIdentifier": "t_struct$_DebtOrder_$1069_memory_ptr",
                          "typeString": "struct OrderLibrary.DebtOrder memory"
                        }
                      ],
                      "id": 662,
                      "name": "hashCreditorCommitmentForOrder",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 205,
                      "src": "2815:30:2",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_struct$_CommitmentValues_$472_memory_ptr_$_t_struct$_DebtOrder_$1069_memory_ptr_$returns$_t_bytes32_$",
                        "typeString": "function (struct LTVDecisionEngineTypes.CommitmentValues memory,struct OrderLibrary.DebtOrder memory) view returns (bytes32)"
                      }
                    },
                    "id": 665,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2815:55:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "2782:88:2"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 671,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "UnaryOperation",
                        "operator": "!",
                        "prefix": true,
                        "src": "2927:40:2",
                        "subExpression": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 668,
                            "name": "debtOfferFilled",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 509,
                            "src": "2928:15:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$",
                              "typeString": "mapping(bytes32 => bool)"
                            }
                          },
                          "id": 670,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 669,
                            "name": "creditorCommitmentHash",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 661,
                            "src": "2944:22:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "2928:39:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 667,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        1322,
                        1323
                      ],
                      "referencedDeclaration": 1322,
                      "src": "2919:7:2",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 672,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2919:49:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 673,
                  "nodeType": "ExpressionStatement",
                  "src": "2919:49:2"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 678,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 674,
                        "name": "debtOfferCancelled",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 505,
                        "src": "2973:18:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$",
                          "typeString": "mapping(bytes32 => bool)"
                        }
                      },
                      "id": 676,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 675,
                        "name": "creditorCommitmentHash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 661,
                        "src": "2992:22:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "2973:42:2",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "74727565",
                      "id": 677,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "bool",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "3018:4:2",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      },
                      "value": "true"
                    },
                    "src": "2973:49:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 679,
                  "nodeType": "ExpressionStatement",
                  "src": "2973:49:2"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "hexValue": "74727565",
                    "id": 680,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "bool",
                    "lValueRequested": false,
                    "nodeType": "Literal",
                    "src": "3034:4:2",
                    "subdenomination": null,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    },
                    "value": "true"
                  },
                  "functionReturnParameters": 636,
                  "id": 681,
                  "nodeType": "Return",
                  "src": "3027:11:2"
                }
              ]
            },
            "documentation": null,
            "id": 683,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "cancelDebtOffer",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 633,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 632,
                  "name": "params",
                  "nodeType": "VariableDeclaration",
                  "scope": 683,
                  "src": "2485:36:2",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Params_$455_memory_ptr",
                    "typeString": "struct LTVDecisionEngineTypes.Params"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 631,
                    "name": "LTVDecisionEngineTypes.Params",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 455,
                    "src": "2485:29:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Params_$455_storage_ptr",
                      "typeString": "struct LTVDecisionEngineTypes.Params"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2484:38:2"
            },
            "payable": false,
            "returnParameters": {
              "id": 636,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 635,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 683,
                  "src": "2539:4:2",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 634,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "2539:4:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2538:6:2"
            },
            "scope": 684,
            "src": "2460:582:2",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          }
        ],
        "scope": 685,
        "src": "228:2816:2"
      }
    ],
    "src": "0:3045:2"
  },
  "legacyAST": {
    "absolutePath": "/Users/graemeboy/Dharma/experimental/contracts/src/CreditorDrivenLoans/LTVCreditorProxy.sol",
    "exportedSymbols": {
      "LTVCreditorProxy": [
        684
      ]
    },
    "id": 685,
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 493,
        "literals": [
          "solidity",
          "^",
          "0.4",
          ".24"
        ],
        "nodeType": "PragmaDirective",
        "src": "0:24:2"
      },
      {
        "id": 494,
        "literals": [
          "experimental",
          "ABIEncoderV2"
        ],
        "nodeType": "PragmaDirective",
        "src": "25:33:2"
      },
      {
        "absolutePath": "/Users/graemeboy/Dharma/experimental/contracts/src/shared/interfaces/ContractRegistryInterface.sol",
        "file": "../shared/interfaces/ContractRegistryInterface.sol",
        "id": 495,
        "nodeType": "ImportDirective",
        "scope": 685,
        "sourceUnit": 798,
        "src": "61:60:2",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/Users/graemeboy/Dharma/experimental/contracts/src/CreditorDrivenLoans/DecisionEngines/LTVDecisionEngine.sol",
        "file": "./DecisionEngines/LTVDecisionEngine.sol",
        "id": 496,
        "nodeType": "ImportDirective",
        "scope": 685,
        "sourceUnit": 438,
        "src": "122:49:2",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/Users/graemeboy/Dharma/experimental/contracts/src/CreditorDrivenLoans/interfaces/CreditorProxyCoreInterface.sol",
        "file": "./interfaces/CreditorProxyCoreInterface.sol",
        "id": 497,
        "nodeType": "ImportDirective",
        "scope": 685,
        "sourceUnit": 696,
        "src": "172:53:2",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "baseContracts": [
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 498,
              "name": "LTVDecisionEngine",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 437,
              "src": "257:17:2",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_LTVDecisionEngine_$437",
                "typeString": "contract LTVDecisionEngine"
              }
            },
            "id": 499,
            "nodeType": "InheritanceSpecifier",
            "src": "257:17:2"
          },
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 500,
              "name": "CreditorProxyCoreInterface",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 695,
              "src": "276:26:2",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_CreditorProxyCoreInterface_$695",
                "typeString": "contract CreditorProxyCoreInterface"
              }
            },
            "id": 501,
            "nodeType": "InheritanceSpecifier",
            "src": "276:26:2"
          }
        ],
        "contractDependencies": [
          437,
          491,
          695,
          712,
          730,
          1165,
          1210
        ],
        "contractKind": "contract",
        "documentation": null,
        "fullyImplemented": true,
        "id": 684,
        "linearizedBaseContracts": [
          684,
          695,
          730,
          712,
          437,
          1165,
          1210,
          491
        ],
        "name": "LTVCreditorProxy",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "constant": false,
            "id": 505,
            "name": "debtOfferCancelled",
            "nodeType": "VariableDeclaration",
            "scope": 684,
            "src": "307:51:2",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$",
              "typeString": "mapping(bytes32 => bool)"
            },
            "typeName": {
              "id": 504,
              "keyType": {
                "id": 502,
                "name": "bytes32",
                "nodeType": "ElementaryTypeName",
                "src": "316:7:2",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                }
              },
              "nodeType": "Mapping",
              "src": "307:25:2",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$",
                "typeString": "mapping(bytes32 => bool)"
              },
              "valueType": {
                "id": 503,
                "name": "bool",
                "nodeType": "ElementaryTypeName",
                "src": "327:4:2",
                "typeDescriptions": {
                  "typeIdentifier": "t_bool",
                  "typeString": "bool"
                }
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 509,
            "name": "debtOfferFilled",
            "nodeType": "VariableDeclaration",
            "scope": 684,
            "src": "361:48:2",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$",
              "typeString": "mapping(bytes32 => bool)"
            },
            "typeName": {
              "id": 508,
              "keyType": {
                "id": 506,
                "name": "bytes32",
                "nodeType": "ElementaryTypeName",
                "src": "370:7:2",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                }
              },
              "nodeType": "Mapping",
              "src": "361:25:2",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$",
                "typeString": "mapping(bytes32 => bool)"
              },
              "valueType": {
                "id": 507,
                "name": "bool",
                "nodeType": "ElementaryTypeName",
                "src": "381:4:2",
                "typeDescriptions": {
                  "typeIdentifier": "t_bool",
                  "typeString": "bool"
                }
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": true,
            "id": 514,
            "name": "NULL_ISSUANCE_HASH",
            "nodeType": "VariableDeclaration",
            "scope": 684,
            "src": "413:57:2",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_bytes32",
              "typeString": "bytes32"
            },
            "typeName": {
              "id": 510,
              "name": "bytes32",
              "nodeType": "ElementaryTypeName",
              "src": "413:7:2",
              "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
              }
            },
            "value": {
              "argumentTypes": null,
              "arguments": [
                {
                  "argumentTypes": null,
                  "hexValue": "30",
                  "id": 512,
                  "isConstant": false,
                  "isLValue": false,
                  "isPure": true,
                  "kind": "number",
                  "lValueRequested": false,
                  "nodeType": "Literal",
                  "src": "468:1:2",
                  "subdenomination": null,
                  "typeDescriptions": {
                    "typeIdentifier": "t_rational_0_by_1",
                    "typeString": "int_const 0"
                  },
                  "value": "0"
                }
              ],
              "expression": {
                "argumentTypes": [
                  {
                    "typeIdentifier": "t_rational_0_by_1",
                    "typeString": "int_const 0"
                  }
                ],
                "id": 511,
                "isConstant": false,
                "isLValue": false,
                "isPure": true,
                "lValueRequested": false,
                "nodeType": "ElementaryTypeNameExpression",
                "src": "460:7:2",
                "typeDescriptions": {
                  "typeIdentifier": "t_type$_t_bytes32_$",
                  "typeString": "type(bytes32)"
                },
                "typeName": "bytes32"
              },
              "id": 513,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "typeConversion",
              "lValueRequested": false,
              "names": [],
              "nodeType": "FunctionCall",
              "src": "460:10:2",
              "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
              }
            },
            "visibility": "internal"
          },
          {
            "body": {
              "id": 522,
              "nodeType": "Block",
              "src": "564:2:2",
              "statements": []
            },
            "documentation": null,
            "id": 523,
            "implemented": true,
            "isConstructor": true,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 519,
                    "name": "_contractRegistry",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 516,
                    "src": "545:17:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  }
                ],
                "id": 520,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 518,
                  "name": "LTVDecisionEngine",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 437,
                  "src": "527:17:2",
                  "typeDescriptions": {
                    "typeIdentifier": "t_type$_t_contract$_LTVDecisionEngine_$437_$",
                    "typeString": "type(contract LTVDecisionEngine)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "527:36:2"
              }
            ],
            "name": "LTVCreditorProxy",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 517,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 516,
                  "name": "_contractRegistry",
                  "nodeType": "VariableDeclaration",
                  "scope": 523,
                  "src": "500:25:2",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 515,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "500:7:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "499:27:2"
            },
            "payable": false,
            "returnParameters": {
              "id": 521,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "564:0:2"
            },
            "scope": 684,
            "src": "474:92:2",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 558,
              "nodeType": "Block",
              "src": "661:1221:2",
              "statements": [
                {
                  "assignments": [
                    533
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 533,
                      "name": "order",
                      "nodeType": "VariableDeclaration",
                      "scope": 559,
                      "src": "665:35:2",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_DebtOrder_$1069_memory_ptr",
                        "typeString": "struct OrderLibrary.DebtOrder"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 532,
                        "name": "OrderLibrary.DebtOrder",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 1069,
                        "src": "665:22:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_DebtOrder_$1069_storage_ptr",
                          "typeString": "struct OrderLibrary.DebtOrder"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 536,
                  "initialValue": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "id": 534,
                      "name": "params",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 525,
                      "src": "703:6:2",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Params_$455_memory_ptr",
                        "typeString": "struct LTVDecisionEngineTypes.Params memory"
                      }
                    },
                    "id": 535,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "order",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 454,
                    "src": "703:12:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_DebtOrder_$1069_memory",
                      "typeString": "struct OrderLibrary.DebtOrder memory"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "665:50:2"
                },
                {
                  "assignments": [
                    538
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 538,
                      "name": "commitmentValues",
                      "nodeType": "VariableDeclaration",
                      "scope": 559,
                      "src": "719:40:2",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_CommitmentValues_$472_memory_ptr",
                        "typeString": "struct LTVDecisionEngineTypes.CommitmentValues"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 537,
                        "name": "CommitmentValues",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 472,
                        "src": "719:16:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_CommitmentValues_$472_storage_ptr",
                          "typeString": "struct LTVDecisionEngineTypes.CommitmentValues"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 542,
                  "initialValue": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 539,
                        "name": "params",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 525,
                        "src": "762:6:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Params_$455_memory_ptr",
                          "typeString": "struct LTVDecisionEngineTypes.Params memory"
                        }
                      },
                      "id": 540,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "creditorCommitment",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 448,
                      "src": "762:25:2",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_CreditorCommitment_$469_memory",
                        "typeString": "struct LTVDecisionEngineTypes.CreditorCommitment memory"
                      }
                    },
                    "id": 541,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "values",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 466,
                    "src": "762:32:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_CommitmentValues_$472_memory",
                      "typeString": "struct LTVDecisionEngineTypes.CommitmentValues memory"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "719:75:2"
                },
                {
                  "assignments": [
                    544
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 544,
                      "name": "creditorCommitmentHash",
                      "nodeType": "VariableDeclaration",
                      "scope": 559,
                      "src": "799:30:2",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 543,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "799:7:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 549,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 546,
                        "name": "commitmentValues",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 538,
                        "src": "863:16:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_CommitmentValues_$472_memory_ptr",
                          "typeString": "struct LTVDecisionEngineTypes.CommitmentValues memory"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 547,
                        "name": "order",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 533,
                        "src": "881:5:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_DebtOrder_$1069_memory_ptr",
                          "typeString": "struct OrderLibrary.DebtOrder memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_struct$_CommitmentValues_$472_memory_ptr",
                          "typeString": "struct LTVDecisionEngineTypes.CommitmentValues memory"
                        },
                        {
                          "typeIdentifier": "t_struct$_DebtOrder_$1069_memory_ptr",
                          "typeString": "struct OrderLibrary.DebtOrder memory"
                        }
                      ],
                      "id": 545,
                      "name": "hashCreditorCommitmentForOrder",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 205,
                      "src": "832:30:2",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_struct$_CommitmentValues_$472_memory_ptr_$_t_struct$_DebtOrder_$1069_memory_ptr_$returns$_t_bytes32_$",
                        "typeString": "function (struct LTVDecisionEngineTypes.CommitmentValues memory,struct OrderLibrary.DebtOrder memory) view returns (bytes32)"
                      }
                    },
                    "id": 548,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "832:55:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "799:88:2"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 554,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 550,
                        "name": "debtOfferFilled",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 509,
                        "src": "1839:15:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$",
                          "typeString": "mapping(bytes32 => bool)"
                        }
                      },
                      "id": 552,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 551,
                        "name": "id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 528,
                        "src": "1855:2:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "1839:19:2",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "74727565",
                      "id": 553,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "bool",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "1861:4:2",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      },
                      "value": "true"
                    },
                    "src": "1839:26:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 555,
                  "nodeType": "ExpressionStatement",
                  "src": "1839:26:2"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 556,
                    "name": "id",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 528,
                    "src": "1876:2:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "functionReturnParameters": 529,
                  "id": 557,
                  "nodeType": "Return",
                  "src": "1869:9:2"
                }
              ]
            },
            "documentation": null,
            "id": 559,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "fillDebtOffer",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 526,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 525,
                  "name": "params",
                  "nodeType": "VariableDeclaration",
                  "scope": 559,
                  "src": "592:36:2",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Params_$455_memory_ptr",
                    "typeString": "struct LTVDecisionEngineTypes.Params"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 524,
                    "name": "LTVDecisionEngineTypes.Params",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 455,
                    "src": "592:29:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Params_$455_storage_ptr",
                      "typeString": "struct LTVDecisionEngineTypes.Params"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "591:38:2"
            },
            "payable": false,
            "returnParameters": {
              "id": 529,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 528,
                  "name": "id",
                  "nodeType": "VariableDeclaration",
                  "scope": 559,
                  "src": "648:10:2",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 527,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "648:7:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "647:12:2"
            },
            "scope": 684,
            "src": "569:1313:2",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 629,
              "nodeType": "Block",
              "src": "1967:490:2",
              "statements": [
                {
                  "assignments": [],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 570,
                      "name": "orderAddresses",
                      "nodeType": "VariableDeclaration",
                      "scope": 630,
                      "src": "1971:32:2",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_address_$6_memory_ptr",
                        "typeString": "address[6]"
                      },
                      "typeName": {
                        "baseType": {
                          "id": 568,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "1971:7:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "id": 569,
                        "length": {
                          "argumentTypes": null,
                          "hexValue": "36",
                          "id": 567,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "1979:1:2",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": null,
                            "typeString": null
                          },
                          "value": "6"
                        },
                        "nodeType": "ArrayTypeName",
                        "src": "1971:10:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$6_storage_ptr",
                          "typeString": "address[6]"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 571,
                  "initialValue": null,
                  "nodeType": "VariableDeclarationStatement",
                  "src": "1971:32:2"
                },
                {
                  "assignments": [],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 576,
                      "name": "orderValues",
                      "nodeType": "VariableDeclaration",
                      "scope": 630,
                      "src": "2007:26:2",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_uint256_$8_memory_ptr",
                        "typeString": "uint256[8]"
                      },
                      "typeName": {
                        "baseType": {
                          "id": 574,
                          "name": "uint",
                          "nodeType": "ElementaryTypeName",
                          "src": "2007:4:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 575,
                        "length": {
                          "argumentTypes": null,
                          "hexValue": "38",
                          "id": 573,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "2012:1:2",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": null,
                            "typeString": null
                          },
                          "value": "8"
                        },
                        "nodeType": "ArrayTypeName",
                        "src": "2007:7:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$8_storage_ptr",
                          "typeString": "uint256[8]"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 577,
                  "initialValue": null,
                  "nodeType": "VariableDeclarationStatement",
                  "src": "2007:26:2"
                },
                {
                  "assignments": [],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 582,
                      "name": "orderBytes32",
                      "nodeType": "VariableDeclaration",
                      "scope": 630,
                      "src": "2037:30:2",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_bytes32_$1_memory_ptr",
                        "typeString": "bytes32[1]"
                      },
                      "typeName": {
                        "baseType": {
                          "id": 580,
                          "name": "bytes32",
                          "nodeType": "ElementaryTypeName",
                          "src": "2037:7:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "id": 581,
                        "length": {
                          "argumentTypes": null,
                          "hexValue": "31",
                          "id": 579,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "2045:1:2",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": null,
                            "typeString": null
                          },
                          "value": "1"
                        },
                        "nodeType": "ArrayTypeName",
                        "src": "2037:10:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_bytes32_$1_storage_ptr",
                          "typeString": "bytes32[1]"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 583,
                  "initialValue": null,
                  "nodeType": "VariableDeclarationStatement",
                  "src": "2037:30:2"
                },
                {
                  "assignments": [],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 588,
                      "name": "signaturesV",
                      "nodeType": "VariableDeclaration",
                      "scope": 630,
                      "src": "2071:27:2",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_uint8_$3_memory_ptr",
                        "typeString": "uint8[3]"
                      },
                      "typeName": {
                        "baseType": {
                          "id": 586,
                          "name": "uint8",
                          "nodeType": "ElementaryTypeName",
                          "src": "2071:5:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint8",
                            "typeString": "uint8"
                          }
                        },
                        "id": 587,
                        "length": {
                          "argumentTypes": null,
                          "hexValue": "33",
                          "id": 585,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "2077:1:2",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": null,
                            "typeString": null
                          },
                          "value": "3"
                        },
                        "nodeType": "ArrayTypeName",
                        "src": "2071:8:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint8_$3_storage_ptr",
                          "typeString": "uint8[3]"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 589,
                  "initialValue": null,
                  "nodeType": "VariableDeclarationStatement",
                  "src": "2071:27:2"
                },
                {
                  "assignments": [],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 594,
                      "name": "signaturesR",
                      "nodeType": "VariableDeclaration",
                      "scope": 630,
                      "src": "2102:29:2",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_bytes32_$3_memory_ptr",
                        "typeString": "bytes32[3]"
                      },
                      "typeName": {
                        "baseType": {
                          "id": 592,
                          "name": "bytes32",
                          "nodeType": "ElementaryTypeName",
                          "src": "2102:7:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "id": 593,
                        "length": {
                          "argumentTypes": null,
                          "hexValue": "33",
                          "id": 591,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "2110:1:2",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": null,
                            "typeString": null
                          },
                          "value": "3"
                        },
                        "nodeType": "ArrayTypeName",
                        "src": "2102:10:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_bytes32_$3_storage_ptr",
                          "typeString": "bytes32[3]"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 595,
                  "initialValue": null,
                  "nodeType": "VariableDeclarationStatement",
                  "src": "2102:29:2"
                },
                {
                  "assignments": [],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 600,
                      "name": "signaturesS",
                      "nodeType": "VariableDeclaration",
                      "scope": 630,
                      "src": "2135:29:2",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_bytes32_$3_memory_ptr",
                        "typeString": "bytes32[3]"
                      },
                      "typeName": {
                        "baseType": {
                          "id": 598,
                          "name": "bytes32",
                          "nodeType": "ElementaryTypeName",
                          "src": "2135:7:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "id": 599,
                        "length": {
                          "argumentTypes": null,
                          "hexValue": "33",
                          "id": 597,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "2143:1:2",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": null,
                            "typeString": null
                          },
                          "value": "3"
                        },
                        "nodeType": "ArrayTypeName",
                        "src": "2135:10:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_bytes32_$3_storage_ptr",
                          "typeString": "bytes32[3]"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 601,
                  "initialValue": null,
                  "nodeType": "VariableDeclarationStatement",
                  "src": "2135:29:2"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 612,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "components": [
                        {
                          "argumentTypes": null,
                          "id": 602,
                          "name": "orderAddresses",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 570,
                          "src": "2170:14:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_address_$6_memory_ptr",
                            "typeString": "address[6] memory"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 603,
                          "name": "orderValues",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 576,
                          "src": "2186:11:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_uint256_$8_memory_ptr",
                            "typeString": "uint256[8] memory"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 604,
                          "name": "orderBytes32",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 582,
                          "src": "2199:12:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_bytes32_$1_memory_ptr",
                            "typeString": "bytes32[1] memory"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 605,
                          "name": "signaturesV",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 588,
                          "src": "2213:11:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_uint8_$3_memory_ptr",
                            "typeString": "uint8[3] memory"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 606,
                          "name": "signaturesR",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 594,
                          "src": "2226:11:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_bytes32_$3_memory_ptr",
                            "typeString": "bytes32[3] memory"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 607,
                          "name": "signaturesS",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 600,
                          "src": "2239:11:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_bytes32_$3_memory_ptr",
                            "typeString": "bytes32[3] memory"
                          }
                        }
                      ],
                      "id": 608,
                      "isConstant": false,
                      "isInlineArray": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "TupleExpression",
                      "src": "2169:82:2",
                      "typeDescriptions": {
                        "typeIdentifier": "t_tuple$_t_array$_t_address_$6_memory_ptr_$_t_array$_t_uint256_$8_memory_ptr_$_t_array$_t_bytes32_$1_memory_ptr_$_t_array$_t_uint8_$3_memory_ptr_$_t_array$_t_bytes32_$3_memory_ptr_$_t_array$_t_bytes32_$3_memory_ptr_$",
                        "typeString": "tuple(address[6] memory,uint256[8] memory,bytes32[1] memory,uint8[3] memory,bytes32[3] memory,bytes32[3] memory)"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 610,
                          "name": "order",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 561,
                          "src": "2270:5:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_DebtOrder_$1069_memory_ptr",
                            "typeString": "struct OrderLibrary.DebtOrder memory"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_struct$_DebtOrder_$1069_memory_ptr",
                            "typeString": "struct OrderLibrary.DebtOrder memory"
                          }
                        ],
                        "id": 609,
                        "name": "unpackDebtOrder",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1164,
                        "src": "2254:15:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_pure$_t_struct$_DebtOrder_$1069_memory_ptr_$returns$_t_array$_t_address_$6_memory_ptr_$_t_array$_t_uint256_$8_memory_ptr_$_t_array$_t_bytes32_$1_memory_ptr_$_t_array$_t_uint8_$3_memory_ptr_$_t_array$_t_bytes32_$3_memory_ptr_$_t_array$_t_bytes32_$3_memory_ptr_$",
                          "typeString": "function (struct OrderLibrary.DebtOrder memory) pure returns (address[6] memory,uint256[8] memory,bytes32[1] memory,uint8[3] memory,bytes32[3] memory,bytes32[3] memory)"
                        }
                      },
                      "id": 611,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "2254:22:2",
                      "typeDescriptions": {
                        "typeIdentifier": "t_tuple$_t_array$_t_address_$6_memory_ptr_$_t_array$_t_uint256_$8_memory_ptr_$_t_array$_t_bytes32_$1_memory_ptr_$_t_array$_t_uint8_$3_memory_ptr_$_t_array$_t_bytes32_$3_memory_ptr_$_t_array$_t_bytes32_$3_memory_ptr_$",
                        "typeString": "tuple(address[6] memory,uint256[8] memory,bytes32[1] memory,uint8[3] memory,bytes32[3] memory,bytes32[3] memory)"
                      }
                    },
                    "src": "2169:107:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 613,
                  "nodeType": "ExpressionStatement",
                  "src": "2169:107:2"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 619,
                            "name": "this",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1362,
                            "src": "2344:4:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_LTVCreditorProxy_$684",
                              "typeString": "contract LTVCreditorProxy"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_contract$_LTVCreditorProxy_$684",
                              "typeString": "contract LTVCreditorProxy"
                            }
                          ],
                          "id": 618,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "2336:7:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_address_$",
                            "typeString": "type(address)"
                          },
                          "typeName": "address"
                        },
                        "id": 620,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "2336:13:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 621,
                        "name": "orderAddresses",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 570,
                        "src": "2354:14:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$6_memory_ptr",
                          "typeString": "address[6] memory"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 622,
                        "name": "orderValues",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 576,
                        "src": "2373:11:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$8_memory_ptr",
                          "typeString": "uint256[8] memory"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 623,
                        "name": "orderBytes32",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 582,
                        "src": "2389:12:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_bytes32_$1_memory_ptr",
                          "typeString": "bytes32[1] memory"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 624,
                        "name": "signaturesV",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 588,
                        "src": "2406:11:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint8_$3_memory_ptr",
                          "typeString": "uint8[3] memory"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 625,
                        "name": "signaturesR",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 594,
                        "src": "2422:11:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_bytes32_$3_memory_ptr",
                          "typeString": "bytes32[3] memory"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 626,
                        "name": "signaturesS",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 600,
                        "src": "2438:11:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_bytes32_$3_memory_ptr",
                          "typeString": "bytes32[3] memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_array$_t_address_$6_memory_ptr",
                          "typeString": "address[6] memory"
                        },
                        {
                          "typeIdentifier": "t_array$_t_uint256_$8_memory_ptr",
                          "typeString": "uint256[8] memory"
                        },
                        {
                          "typeIdentifier": "t_array$_t_bytes32_$1_memory_ptr",
                          "typeString": "bytes32[1] memory"
                        },
                        {
                          "typeIdentifier": "t_array$_t_uint8_$3_memory_ptr",
                          "typeString": "uint8[3] memory"
                        },
                        {
                          "typeIdentifier": "t_array$_t_bytes32_$3_memory_ptr",
                          "typeString": "bytes32[3] memory"
                        },
                        {
                          "typeIdentifier": "t_array$_t_bytes32_$3_memory_ptr",
                          "typeString": "bytes32[3] memory"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "expression": {
                            "argumentTypes": null,
                            "id": 614,
                            "name": "contractRegistry",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 26,
                            "src": "2288:16:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_ContractRegistryInterface_$797",
                              "typeString": "contract ContractRegistryInterface"
                            }
                          },
                          "id": 615,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "debtKernel",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 756,
                          "src": "2288:27:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$__$returns$_t_contract$_DebtKernelInterface_$932_$",
                            "typeString": "function () view external returns (contract DebtKernelInterface)"
                          }
                        },
                        "id": 616,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "2288:29:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_DebtKernelInterface_$932",
                          "typeString": "contract DebtKernelInterface"
                        }
                      },
                      "id": 617,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "fillDebtOrder",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 931,
                      "src": "2288:43:2",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_array$_t_address_$6_memory_ptr_$_t_array$_t_uint256_$8_memory_ptr_$_t_array$_t_bytes32_$1_memory_ptr_$_t_array$_t_uint8_$3_memory_ptr_$_t_array$_t_bytes32_$3_memory_ptr_$_t_array$_t_bytes32_$3_memory_ptr_$returns$_t_bytes32_$",
                        "typeString": "function (address,address[6] memory,uint256[8] memory,bytes32[1] memory,uint8[3] memory,bytes32[3] memory,bytes32[3] memory) external returns (bytes32)"
                      }
                    },
                    "id": 627,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2288:165:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "functionReturnParameters": 565,
                  "id": 628,
                  "nodeType": "Return",
                  "src": "2281:172:2"
                }
              ]
            },
            "documentation": null,
            "id": 630,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "sendOrderToKernel",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 562,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 561,
                  "name": "order",
                  "nodeType": "VariableDeclaration",
                  "scope": 630,
                  "src": "1912:22:2",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_DebtOrder_$1069_memory_ptr",
                    "typeString": "struct OrderLibrary.DebtOrder"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 560,
                    "name": "DebtOrder",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 1069,
                    "src": "1912:9:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_DebtOrder_$1069_storage_ptr",
                      "typeString": "struct OrderLibrary.DebtOrder"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1911:24:2"
            },
            "payable": false,
            "returnParameters": {
              "id": 565,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 564,
                  "name": "id",
                  "nodeType": "VariableDeclaration",
                  "scope": 630,
                  "src": "1954:10:2",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 563,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1954:7:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1953:12:2"
            },
            "scope": 684,
            "src": "1885:572:2",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 682,
              "nodeType": "Block",
              "src": "2545:497:2",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "id": 642,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 638,
                            "name": "msg",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1319,
                            "src": "2591:3:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_message",
                              "typeString": "msg"
                            }
                          },
                          "id": 639,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "sender",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "2591:10:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 640,
                            "name": "order",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 656,
                            "src": "2605:5:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_DebtOrder_$1069_memory_ptr",
                              "typeString": "struct OrderLibrary.DebtOrder memory"
                            }
                          },
                          "id": 641,
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "creditor",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 1042,
                          "src": "2605:14:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "src": "2591:28:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 637,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        1322,
                        1323
                      ],
                      "referencedDeclaration": 1322,
                      "src": "2583:7:2",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 643,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2583:37:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 644,
                  "nodeType": "ExpressionStatement",
                  "src": "2583:37:2"
                },
                {
                  "assignments": [
                    648
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 648,
                      "name": "commitmentValues",
                      "nodeType": "VariableDeclaration",
                      "scope": 683,
                      "src": "2625:63:2",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_CommitmentValues_$472_memory_ptr",
                        "typeString": "struct LTVDecisionEngineTypes.CommitmentValues"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 647,
                        "name": "LTVDecisionEngineTypes.CommitmentValues",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 472,
                        "src": "2625:39:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_CommitmentValues_$472_storage_ptr",
                          "typeString": "struct LTVDecisionEngineTypes.CommitmentValues"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 652,
                  "initialValue": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 649,
                        "name": "params",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 632,
                        "src": "2691:6:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Params_$455_memory_ptr",
                          "typeString": "struct LTVDecisionEngineTypes.Params memory"
                        }
                      },
                      "id": 650,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "creditorCommitment",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 448,
                      "src": "2691:25:2",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_CreditorCommitment_$469_memory",
                        "typeString": "struct LTVDecisionEngineTypes.CreditorCommitment memory"
                      }
                    },
                    "id": 651,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "values",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 466,
                    "src": "2691:32:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_CommitmentValues_$472_memory",
                      "typeString": "struct LTVDecisionEngineTypes.CommitmentValues memory"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "2625:98:2"
                },
                {
                  "assignments": [
                    656
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 656,
                      "name": "order",
                      "nodeType": "VariableDeclaration",
                      "scope": 683,
                      "src": "2727:35:2",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_DebtOrder_$1069_memory_ptr",
                        "typeString": "struct OrderLibrary.DebtOrder"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 655,
                        "name": "OrderLibrary.DebtOrder",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 1069,
                        "src": "2727:22:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_DebtOrder_$1069_storage_ptr",
                          "typeString": "struct OrderLibrary.DebtOrder"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 659,
                  "initialValue": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "id": 657,
                      "name": "params",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 632,
                      "src": "2765:6:2",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Params_$455_memory_ptr",
                        "typeString": "struct LTVDecisionEngineTypes.Params memory"
                      }
                    },
                    "id": 658,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "order",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 454,
                    "src": "2765:12:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_DebtOrder_$1069_memory",
                      "typeString": "struct OrderLibrary.DebtOrder memory"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "2727:50:2"
                },
                {
                  "assignments": [
                    661
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 661,
                      "name": "creditorCommitmentHash",
                      "nodeType": "VariableDeclaration",
                      "scope": 683,
                      "src": "2782:30:2",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 660,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "2782:7:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 666,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 663,
                        "name": "commitmentValues",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 648,
                        "src": "2846:16:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_CommitmentValues_$472_memory_ptr",
                          "typeString": "struct LTVDecisionEngineTypes.CommitmentValues memory"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 664,
                        "name": "order",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 656,
                        "src": "2864:5:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_DebtOrder_$1069_memory_ptr",
                          "typeString": "struct OrderLibrary.DebtOrder memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_struct$_CommitmentValues_$472_memory_ptr",
                          "typeString": "struct LTVDecisionEngineTypes.CommitmentValues memory"
                        },
                        {
                          "typeIdentifier": "t_struct$_DebtOrder_$1069_memory_ptr",
                          "typeString": "struct OrderLibrary.DebtOrder memory"
                        }
                      ],
                      "id": 662,
                      "name": "hashCreditorCommitmentForOrder",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 205,
                      "src": "2815:30:2",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_struct$_CommitmentValues_$472_memory_ptr_$_t_struct$_DebtOrder_$1069_memory_ptr_$returns$_t_bytes32_$",
                        "typeString": "function (struct LTVDecisionEngineTypes.CommitmentValues memory,struct OrderLibrary.DebtOrder memory) view returns (bytes32)"
                      }
                    },
                    "id": 665,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2815:55:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "2782:88:2"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 671,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "UnaryOperation",
                        "operator": "!",
                        "prefix": true,
                        "src": "2927:40:2",
                        "subExpression": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 668,
                            "name": "debtOfferFilled",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 509,
                            "src": "2928:15:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$",
                              "typeString": "mapping(bytes32 => bool)"
                            }
                          },
                          "id": 670,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 669,
                            "name": "creditorCommitmentHash",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 661,
                            "src": "2944:22:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "2928:39:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 667,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        1322,
                        1323
                      ],
                      "referencedDeclaration": 1322,
                      "src": "2919:7:2",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 672,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2919:49:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 673,
                  "nodeType": "ExpressionStatement",
                  "src": "2919:49:2"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 678,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 674,
                        "name": "debtOfferCancelled",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 505,
                        "src": "2973:18:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$",
                          "typeString": "mapping(bytes32 => bool)"
                        }
                      },
                      "id": 676,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 675,
                        "name": "creditorCommitmentHash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 661,
                        "src": "2992:22:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "2973:42:2",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "74727565",
                      "id": 677,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "bool",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "3018:4:2",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      },
                      "value": "true"
                    },
                    "src": "2973:49:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 679,
                  "nodeType": "ExpressionStatement",
                  "src": "2973:49:2"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "hexValue": "74727565",
                    "id": 680,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "bool",
                    "lValueRequested": false,
                    "nodeType": "Literal",
                    "src": "3034:4:2",
                    "subdenomination": null,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    },
                    "value": "true"
                  },
                  "functionReturnParameters": 636,
                  "id": 681,
                  "nodeType": "Return",
                  "src": "3027:11:2"
                }
              ]
            },
            "documentation": null,
            "id": 683,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "cancelDebtOffer",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 633,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 632,
                  "name": "params",
                  "nodeType": "VariableDeclaration",
                  "scope": 683,
                  "src": "2485:36:2",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Params_$455_memory_ptr",
                    "typeString": "struct LTVDecisionEngineTypes.Params"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 631,
                    "name": "LTVDecisionEngineTypes.Params",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 455,
                    "src": "2485:29:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Params_$455_storage_ptr",
                      "typeString": "struct LTVDecisionEngineTypes.Params"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2484:38:2"
            },
            "payable": false,
            "returnParameters": {
              "id": 636,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 635,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 683,
                  "src": "2539:4:2",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 634,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "2539:4:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2538:6:2"
            },
            "scope": 684,
            "src": "2460:582:2",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          }
        ],
        "scope": 685,
        "src": "228:2816:2"
      }
    ],
    "src": "0:3045:2"
  },
  "compiler": {
    "name": "solc",
    "version": "0.4.24+commit.e67f0147.Emscripten.clang"
  },
  "networks": {
    "70": {
      "events": {},
      "links": {},
      "address": "0xee3d7131ce247032ba07d14f599e2aa81f06f288",
      "transactionHash": "0xb6aa01539fa5acf2ca8475697327501ca04818d52c15e2df4b2cfcf7755fd692"
    }
  },
  "schemaVersion": "2.0.1",
  "updatedAt": "2018-10-16T21:21:04.733Z"
}